From 9534188f1f27eda25506371a86be0e98ad8d4d82 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Tue, 21 Oct 2025 17:16:39 -0400 Subject: [PATCH 001/194] Add react precallgraphstep useRef --- .../2025-10-21-react-precallgraph-step.md | 4 ++++ .../semmle/javascript/frameworks/React.qll | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md diff --git a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md new file mode 100644 index 00000000000..efba56b3470 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added PreCallGraphStep flow model for React's `useRef` hook. \ No newline at end of file diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index d55ace8636d..946b09ffd44 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -612,6 +612,25 @@ private class UseStateStep extends PreCallGraphStep { } } +/** + * Step through a `useRef` call. + * + * It returns a pair of the initial state, and an object with a single property (current) potentially containing an input value. + * + * For example: + * ```js + * const inputRef1 = useRef(initialValue); + * ``` + */ +private class UseRefStep extends PreCallGraphStep { + override predicate step(DataFlow::Node pred, DataFlow::Node succ) { + exists(DataFlow::CallNode call | call = react().getAMemberCall("useRef") | + pred = call.getArgument(0) and // initial state + succ = call.getAPropertyRead("current") + ) + } +} + /** * A step through a React context object. * From dd6db165504476a6b93702a2d9f429cced89ef85 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Wed, 22 Oct 2025 16:51:03 -0400 Subject: [PATCH 002/194] Add DomValueSource for react useRef output (object's prop named current) --- .../change-notes/2025-10-21-react-precallgraph-step.md | 3 ++- .../ql/lib/semmle/javascript/frameworks/React.qll | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md index efba56b3470..e28a900e8d9 100644 --- a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md +++ b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md @@ -1,4 +1,5 @@ --- category: minorAnalysis --- -* Added PreCallGraphStep flow model for React's `useRef` hook. \ No newline at end of file +* Added `PreCallGraphStep` flow model for React's `useRef` hook. +* Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. \ No newline at end of file diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index 946b09ffd44..05d8db6a075 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -804,6 +804,16 @@ private class ReactRouterLocationSource extends DOM::LocationSource::Range { } } +private class UseRefDomValueSource extends DOM::DomValueSource::Range { + UseRefDomValueSource() { + exists(DataFlow::PropRead current, UseRefStep step, string prop | current = this | + step.step(_, current) and + current.mayHavePropertyName(prop) and + prop = "current" + ) + } +} + /** * Gets a reference to a function which, if called with a React component, returns wrapped * version of that component, which we model as a direct reference to the underlying component. From 7f8ccb7d46509e464160d7667cf0d734a95fa858 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Wed, 22 Oct 2025 17:15:59 -0400 Subject: [PATCH 003/194] Simplify addition --- javascript/ql/lib/semmle/javascript/frameworks/React.qll | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index 05d8db6a075..c68b6846a5b 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -806,10 +806,9 @@ private class ReactRouterLocationSource extends DOM::LocationSource::Range { private class UseRefDomValueSource extends DOM::DomValueSource::Range { UseRefDomValueSource() { - exists(DataFlow::PropRead current, UseRefStep step, string prop | current = this | + exists(DataFlow::PropRead current, UseRefStep step | current = this | step.step(_, current) and - current.mayHavePropertyName(prop) and - prop = "current" + current.mayHavePropertyName("current") ) } } From ee60f8e6c6eb6002b37d2b7d2c1c681c6c5cef13 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Thu, 23 Oct 2025 09:57:10 -0400 Subject: [PATCH 004/194] Update javascript/ql/lib/semmle/javascript/frameworks/React.qll Co-authored-by: Asger F --- .../ql/lib/semmle/javascript/frameworks/React.qll | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index c68b6846a5b..1c321ae1c12 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -806,10 +806,12 @@ private class ReactRouterLocationSource extends DOM::LocationSource::Range { private class UseRefDomValueSource extends DOM::DomValueSource::Range { UseRefDomValueSource() { - exists(DataFlow::PropRead current, UseRefStep step | current = this | - step.step(_, current) and - current.mayHavePropertyName("current") - ) + this = + any(JsxAttribute attrib | attrib.getName() = "ref") + .getValue() + .flow() + .getALocalSource() + .getAPropertyRead("current") } } From 7b8a3d044ea3cd32fa4f4a82a3005691613ed742 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Tue, 28 Oct 2025 11:33:45 -0400 Subject: [PATCH 005/194] Update javascript/ql/lib/semmle/javascript/frameworks/React.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- javascript/ql/lib/semmle/javascript/frameworks/React.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index 1c321ae1c12..42885f6b9cb 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -615,7 +615,7 @@ private class UseStateStep extends PreCallGraphStep { /** * Step through a `useRef` call. * - * It returns a pair of the initial state, and an object with a single property (current) potentially containing an input value. + * It returns an object with a single property (`current`) initialized to the initial value. * * For example: * ```js From cdc44c326769ce346dd3e3b828a63facaf9032a1 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 14 Nov 2025 09:58:52 +0000 Subject: [PATCH 006/194] Model tornado websockets --- .../lib/semmle/python/frameworks/Tornado.qll | 59 +++++++++++++++++++ .../frameworks/tornado/routing_test.py | 22 +++++++ 2 files changed, 81 insertions(+) diff --git a/python/ql/lib/semmle/python/frameworks/Tornado.qll b/python/ql/lib/semmle/python/frameworks/Tornado.qll index 7cfe381b1f9..a6ed8292dd7 100644 --- a/python/ql/lib/semmle/python/frameworks/Tornado.qll +++ b/python/ql/lib/semmle/python/frameworks/Tornado.qll @@ -135,6 +135,8 @@ module Tornado { API::Node subclassRef() { result = web().getMember("RequestHandler").getASubclass*() or + result = WebSocket::WebSocketHandler::subclassRef() + or result = ModelOutput::getATypeNode("tornado.web.RequestHandler~Subclass").getASubclass*() } @@ -428,6 +430,42 @@ module Tornado { } } } + + // --------------------------------------------------------------------------- + // tornado.websocket + // --------------------------------------------------------------------------- + /** Gets a reference to the `tornado.websocket` module. */ + API::Node websocket() { result = Tornado::tornado().getMember("websocket") } + + module WebSocket { + module WebSocketHandler { + /** Gets a reference to the `tornado.websocket.WebSocketHandler` class or any subclass. */ + API::Node subclassRef() { + result = websocket().getMember("WebSocketHandler").getASubclass*() + or + result = + ModelOutput::getATypeNode("tornado.websocket.WebSocketHandler~Subclass").getASubclass*() + } + + class WebSocketHandlerClass extends Web::RequestHandler::RequestHandlerClass { + WebSocketHandlerClass() { this.getParent() = subclassRef().asSource().asExpr() } + + override Function getARequestHandler() { + result = super.getARequestHandler() + or + result = this.getAMethod() and + result.getName() = "open" + } + + /** Gets a function that could handle incoming websocket events, if any. */ + Function getAWebSocketEventHandler() { + result = this.getAMethod() and + result.getName() = + ["on_message", "on_close", "on_ping", "on_pong", "select_subprotocol", "check_origin"] + } + } + } + } } // --------------------------------------------------------------------------- @@ -542,6 +580,27 @@ module Tornado { override string getFramework() { result = "Tornado" } } + /** A request handler for WebSocket events */ + private class TornadoWebSocketEventHandler extends Http::Server::RequestHandler::Range { + TornadoWebSocketEventHandler() { + exists(TornadoModule::WebSocket::WebSocketHandler::WebSocketHandlerClass cls | + cls.getAWebSocketEventHandler() = this + ) + } + + override Parameter getARoutedParameter() { + // The `open` method is handled as a normal request handler in `TornadoRouteSetup` or `TornadoRequestHandlerWithoutKnownRoute`. + // For other event handlers (such as `on_message`), all parameters should be remote flow sources, as they are not affected by routing. + result in [ + this.getArg(_), this.getArgByName(_), this.getVararg().(Parameter), + this.getKwarg().(Parameter) + ] and + not result = this.getArg(0) + } + + override string getFramework() { result = "Tornado" } + } + // --------------------------------------------------------------------------- // Response modeling // --------------------------------------------------------------------------- diff --git a/python/ql/test/library-tests/frameworks/tornado/routing_test.py b/python/ql/test/library-tests/frameworks/tornado/routing_test.py index 2b596c20ce5..931be7b4bb6 100644 --- a/python/ql/test/library-tests/frameworks/tornado/routing_test.py +++ b/python/ql/test/library-tests/frameworks/tornado/routing_test.py @@ -54,6 +54,27 @@ class PossiblyNotRouted(tornado.web.RequestHandler): def get(self): # $ requestHandler self.write("NotRouted") # $ HttpResponse +class WebSocket(tornado.websocket.WebSocketHandler): + def open(self, x): # $ requestHandler routedParameter=x + self.write_message("WebSocket open {}".format(x)) + + def on_message(self, data): # $ requestHandler routedParameter=data + self.write_message("WebSocket on_message {}".format(data)) + + def on_ping(self, data): # $ requestHandler routedParameter=data + print("ping", data) + + def on_pong(self, data): # $ requestHandler routedParameter=data + print("pong", data) + + def select_subprotocol(self, subs): # $ requestHandler routedParameter=subs + print("select_subprotocol", subs) + + def check_origin(self, origin): # $ requestHandler routedParameter=origin + print("check_origin", origin) + return True + + def make_app(): # see https://www.tornadoweb.org/en/stable/routing.html for even more examples @@ -74,6 +95,7 @@ def make_app(): (tornado.routing.HostMatches(r"(localhost|127\.0\.0\.1)"), [ ("/only-localhost", OnlyLocalhost) # $ routeSetup="/only-localhost" ]), + (r"/websocket/([0-9]+)", WebSocket), # $ routeSetup="/websocket/([0-9]+)" ], debug=True, From 9c3f4e2bfb990d023f3dc1ec4c3a33d7a0c819e4 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 20 Nov 2025 10:59:05 +0000 Subject: [PATCH 007/194] Add changenote --- python/ql/lib/change-notes/2025-11-22-tornado-websockets.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2025-11-22-tornado-websockets.md diff --git a/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md b/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md new file mode 100644 index 00000000000..8ba2ef549ee --- /dev/null +++ b/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Additional models for remote flow sources for `tornado.websocket.WebSocketHandler` have been added. \ No newline at end of file From 2c22f948523949c3d07f2a1daabedd3d4af497ad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:10:43 +0000 Subject: [PATCH 008/194] Initial plan From 9b65a33b4ac254b130cb8c131a4a336e256b88ab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:32:39 +0000 Subject: [PATCH 009/194] Add ECB and CBC block mode test cases Co-authored-by: geoffw0 <40627776+geoffw0@users.noreply.github.com> --- .../CWE-327/BrokenCryptoAlgorithm/Cargo.lock | 10 +++++++ .../CWE-327/BrokenCryptoAlgorithm/options.yml | 1 + .../BrokenCryptoAlgorithm/test_cipher.rs | 30 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock index 708b79ed46d..a47021d54b4 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock @@ -76,6 +76,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "ecb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7" +dependencies = [ + "cipher", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -146,6 +155,7 @@ dependencies = [ "cbc", "cipher", "des", + "ecb", "rabbit", "rc2", "rc4", diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml index 5a3cf0cab12..139cb084be2 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml @@ -8,3 +8,4 @@ qltest_dependencies: - rc2 = { version = "0.8.1" } - rc5 = { version = "0.0.1" } - cbc = { version = "0.1.2" } + - ecb = { version = "0.1.2" } diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs index 61471ac99ec..ca25a9e28e0 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs @@ -145,3 +145,33 @@ fn test_cbc( let des_cipher4 = cbc::Encryptor::::new(key.into(), iv.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] _ = des_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); } + +type MyDesEcbEncryptor = ecb::Encryptor; + +fn test_ecb( + key: &[u8], key128: &[u8;16], + input: &[u8], data: &mut [u8] +) { + let data_len = data.len(); + + // aes with ECB (weak block mode) + let aes_cipher1 = ecb::Encryptor::::new(key128.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); + + // des with ECB (broken cipher + weak block mode) + let des_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = des_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); + + let des_cipher2 = MyDesEcbEncryptor::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = des_cipher2.encrypt_padded_mut::(data, data_len).unwrap(); + + let des_cipher3 = ecb::Encryptor::::new_from_slice(&key).unwrap(); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = des_cipher3.encrypt_padded_mut::(data, data_len).unwrap(); + + let des_cipher4 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = des_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); + + // rc2 with ECB (broken cipher + weak block mode) + let rc2_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = rc2_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); +} From dada49f402c9d9e1843707e5acf5ed8d1c8a2f89 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 24 Nov 2025 13:57:43 +0000 Subject: [PATCH 010/194] Fix qldoc and tests --- python/ql/lib/semmle/python/frameworks/Tornado.qll | 11 +++++++++-- .../library-tests/frameworks/tornado/routing_test.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/Tornado.qll b/python/ql/lib/semmle/python/frameworks/Tornado.qll index a6ed8292dd7..61cf7df316e 100644 --- a/python/ql/lib/semmle/python/frameworks/Tornado.qll +++ b/python/ql/lib/semmle/python/frameworks/Tornado.qll @@ -437,7 +437,13 @@ module Tornado { /** Gets a reference to the `tornado.websocket` module. */ API::Node websocket() { result = Tornado::tornado().getMember("websocket") } + /** Provides models for the `tornado.websocket` module */ module WebSocket { + /** + * Provides models for the `tornado.websocket.WebSocketHandler` class and subclasses. + * + * See https://www.tornadoweb.org/en/stable/websocket.html#tornado.websocket.WebSocketHandler. + */ module WebSocketHandler { /** Gets a reference to the `tornado.websocket.WebSocketHandler` class or any subclass. */ API::Node subclassRef() { @@ -447,6 +453,7 @@ module Tornado { ModelOutput::getATypeNode("tornado.websocket.WebSocketHandler~Subclass").getASubclass*() } + /** A subclass of `tornado.websocket.WebSocketHandler`. */ class WebSocketHandlerClass extends Web::RequestHandler::RequestHandlerClass { WebSocketHandlerClass() { this.getParent() = subclassRef().asSource().asExpr() } @@ -457,7 +464,7 @@ module Tornado { result.getName() = "open" } - /** Gets a function that could handle incoming websocket events, if any. */ + /** Gets a function that could handle incoming WebSocket events, if any. */ Function getAWebSocketEventHandler() { result = this.getAMethod() and result.getName() = @@ -580,7 +587,7 @@ module Tornado { override string getFramework() { result = "Tornado" } } - /** A request handler for WebSocket events */ + /** A request handler for WebSocket events. */ private class TornadoWebSocketEventHandler extends Http::Server::RequestHandler::Range { TornadoWebSocketEventHandler() { exists(TornadoModule::WebSocket::WebSocketHandler::WebSocketHandlerClass cls | diff --git a/python/ql/test/library-tests/frameworks/tornado/routing_test.py b/python/ql/test/library-tests/frameworks/tornado/routing_test.py index 931be7b4bb6..94824e6e862 100644 --- a/python/ql/test/library-tests/frameworks/tornado/routing_test.py +++ b/python/ql/test/library-tests/frameworks/tornado/routing_test.py @@ -1,5 +1,6 @@ import tornado.web import tornado.routing +import tornado.websocket class FooHandler(tornado.web.RequestHandler): @@ -56,7 +57,7 @@ class PossiblyNotRouted(tornado.web.RequestHandler): class WebSocket(tornado.websocket.WebSocketHandler): def open(self, x): # $ requestHandler routedParameter=x - self.write_message("WebSocket open {}".format(x)) + self.write_message("WebSocket open {}".format(x)) def on_message(self, data): # $ requestHandler routedParameter=data self.write_message("WebSocket on_message {}".format(data)) @@ -74,7 +75,6 @@ class WebSocket(tornado.websocket.WebSocketHandler): print("check_origin", origin) return True - def make_app(): # see https://www.tornadoweb.org/en/stable/routing.html for even more examples From 5893dc699d33bed003292bc2658c5ea059ad63c6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 24 Nov 2025 16:16:20 +0000 Subject: [PATCH 011/194] Rust: Change the majority of variant tests to be on AES not DES, since the focus of these new tests should be the block mode not the encryption algorithm. --- .../BrokenCryptoAlgorithm/test_cipher.rs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs index ca25a9e28e0..17db0f9ceb1 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs @@ -146,7 +146,7 @@ fn test_cbc( _ = des_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); } -type MyDesEcbEncryptor = ecb::Encryptor; +type MyAesEcbEncryptor = ecb::Encryptor; fn test_ecb( key: &[u8], key128: &[u8;16], @@ -158,19 +158,19 @@ fn test_ecb( let aes_cipher1 = ecb::Encryptor::::new(key128.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] _ = aes_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); + let aes_cipher2 = MyAesEcbEncryptor::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher2.encrypt_padded_mut::(data, data_len).unwrap(); + + let aes_cipher3 = ecb::Encryptor::::new_from_slice(&key).unwrap(); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher3.encrypt_padded_mut::(data, data_len).unwrap(); + + let aes_cipher4 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); + // des with ECB (broken cipher + weak block mode) let des_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] _ = des_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); - let des_cipher2 = MyDesEcbEncryptor::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] - _ = des_cipher2.encrypt_padded_mut::(data, data_len).unwrap(); - - let des_cipher3 = ecb::Encryptor::::new_from_slice(&key).unwrap(); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] - _ = des_cipher3.encrypt_padded_mut::(data, data_len).unwrap(); - - let des_cipher4 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] - _ = des_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); - // rc2 with ECB (broken cipher + weak block mode) let rc2_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] _ = rc2_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); From 7cf3964e44a0c5b2de48853f60d857335f08e104 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 1 Dec 2025 20:27:48 +0000 Subject: [PATCH 012/194] Update expectations --- .../ql/test/library-tests/frameworks/tornado/routing_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/test/library-tests/frameworks/tornado/routing_test.py b/python/ql/test/library-tests/frameworks/tornado/routing_test.py index 94824e6e862..1cff63921da 100644 --- a/python/ql/test/library-tests/frameworks/tornado/routing_test.py +++ b/python/ql/test/library-tests/frameworks/tornado/routing_test.py @@ -57,10 +57,10 @@ class PossiblyNotRouted(tornado.web.RequestHandler): class WebSocket(tornado.websocket.WebSocketHandler): def open(self, x): # $ requestHandler routedParameter=x - self.write_message("WebSocket open {}".format(x)) + self.write_message("WebSocket open {}".format(x)) # $ MISSING: HttpResponse def on_message(self, data): # $ requestHandler routedParameter=data - self.write_message("WebSocket on_message {}".format(data)) + self.write_message("WebSocket on_message {}".format(data)) # $ MISSING: HttpResponse def on_ping(self, data): # $ requestHandler routedParameter=data print("ping", data) From a7066ec758c005f0f1233d2b2dc3658479a0c72d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 25 Nov 2025 15:51:27 +0100 Subject: [PATCH 013/194] C#: Add object initializer test. --- .../test/library-tests/obinit/Flow.expected | 18 +++++++++++ csharp/ql/test/library-tests/obinit/Flow.ql | 22 ++++++++++++++ csharp/ql/test/library-tests/obinit/obinit.cs | 30 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 csharp/ql/test/library-tests/obinit/Flow.expected create mode 100644 csharp/ql/test/library-tests/obinit/Flow.ql create mode 100644 csharp/ql/test/library-tests/obinit/obinit.cs diff --git a/csharp/ql/test/library-tests/obinit/Flow.expected b/csharp/ql/test/library-tests/obinit/Flow.expected new file mode 100644 index 00000000000..dea9d8df930 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.expected @@ -0,0 +1,18 @@ +edges +| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | provenance | | +| obinit.cs:5:27:5:34 | "source" : String | obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | provenance | | +| obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | provenance | | +| obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | provenance | | +| obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | provenance | | +| obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:20 | access to field s | provenance | | +nodes +| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | +| obinit.cs:5:27:5:34 | "source" : String | semmle.label | "source" : String | +| obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | semmle.label | this [Return] : A [field s] : String | +| obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | +| obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | semmle.label | object creation of type A : A [field s] : String | +| obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | +| obinit.cs:21:18:21:20 | access to field s | semmle.label | access to field s | +subpaths +#select +| obinit.cs:21:18:21:20 | access to field s | diff --git a/csharp/ql/test/library-tests/obinit/Flow.ql b/csharp/ql/test/library-tests/obinit/Flow.ql new file mode 100644 index 00000000000..93c4bd24e5a --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.ql @@ -0,0 +1,22 @@ +import csharp + +module FlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr().(StringLiteral).getValue() = "source" + } + + predicate isSink(DataFlow::Node sink) { + exists(MethodCall mc | + mc.getTarget().getUndecoratedName() = "Sink" and + mc.getAnArgument() = sink.asExpr() + ) + } +} + +module Flow = DataFlow::Global; + +import Flow::PathGraph + +from DataFlow::Node source, DataFlow::Node sink +where Flow::flow(source, sink) +select sink diff --git a/csharp/ql/test/library-tests/obinit/obinit.cs b/csharp/ql/test/library-tests/obinit/obinit.cs new file mode 100644 index 00000000000..e4e851ed1d8 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/obinit.cs @@ -0,0 +1,30 @@ +namespace ObInit { + public class A { + int x = 1; + + public string s = "source"; + + public A() { } + + public A(int y) { } + + public A(int y, int z) : this(y) { } + } + + public class B : A { + public B() : base(10) { } + + static void Sink(string s) { } + + static void Foo() { + A a = new A(); + Sink(a.s); + + A a2 = new A(0, 0); + Sink(a2.s); + + B b = new B(); + Sink(b.s); + } + } +} From 9414cfbd03d2e2013046785a1ad874a420e59ced Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 25 Nov 2025 15:52:34 +0100 Subject: [PATCH 014/194] C#: Add extractor support for object initializer methods. --- .../Entities/Constructor.cs | 24 ++++++++ .../Entities/IMethodEntity.cs | 9 +++ .../Entities/Method.cs | 2 +- .../Entities/ObjectInitMethod.cs | 56 +++++++++++++++++++ .../Semmle.Extraction.CSharp/Trap/Tuples.cs | 6 +- 5 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs index 2c3b25b2e1c..14d9b548015 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs @@ -74,6 +74,7 @@ namespace Semmle.Extraction.CSharp.Entities { case SyntaxKind.BaseConstructorInitializer: initializerType = Symbol.ContainingType.BaseType!; + ExtractObjectInitCall(trapFile); break; case SyntaxKind.ThisConstructorInitializer: initializerType = Symbol.ContainingType; @@ -90,10 +91,12 @@ namespace Semmle.Extraction.CSharp.Entities var primaryInfo = Context.GetSymbolInfo(primaryInitializer); var primarySymbol = primaryInfo.Symbol; + ExtractObjectInitCall(trapFile); ExtractSourceInitializer(trapFile, primarySymbol?.ContainingType, (IMethodSymbol?)primarySymbol, primaryInitializer.ArgumentList, primaryInitializer.GetLocation()); } else if (Symbol.MethodKind is MethodKind.Constructor) { + ExtractObjectInitCall(trapFile); var baseType = Symbol.ContainingType.BaseType; if (baseType is null) { @@ -127,6 +130,27 @@ namespace Semmle.Extraction.CSharp.Entities } } + private void ExtractObjectInitCall(TextWriter trapFile) + { + var target = ObjectInitMethod.Create(Context, ContainingType!); + + var type = Context.Compilation.GetSpecialType(SpecialType.System_Void); + + var info = new ExpressionInfo(Context, + AnnotatedTypeSymbol.CreateNotAnnotated(type), + Location, + Kinds.ExprKind.METHOD_INVOCATION, + this, + -2, + isCompilerGenerated: true, + null); + var obinitCall = new Expression(info); + + trapFile.expr_call(obinitCall, target); + + Expressions.This.CreateImplicit(Context, Symbol.ContainingType, Location, obinitCall, -1); + } + private void ExtractSourceInitializer(TextWriter trapFile, ITypeSymbol? type, IMethodSymbol? symbol, ArgumentListSyntax arguments, Microsoft.CodeAnalysis.Location location) { var initInfo = new ExpressionInfo(Context, diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs new file mode 100644 index 00000000000..278f2b18798 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs @@ -0,0 +1,9 @@ +namespace Semmle.Extraction.CSharp.Entities +{ + /// + /// Marker interface for method entities. + /// + public interface IMethodEntity : IEntity + { + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs index c1b0f1a65bc..c92c561f31b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs @@ -9,7 +9,7 @@ using Semmle.Extraction.CSharp.Populators; namespace Semmle.Extraction.CSharp.Entities { - internal abstract class Method : CachedSymbol, IExpressionParentEntity, IStatementParentEntity + internal abstract class Method : CachedSymbol, IExpressionParentEntity, IStatementParentEntity, IMethodEntity { protected Method(Context cx, IMethodSymbol init) : base(cx, init) { } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs new file mode 100644 index 00000000000..d690e19e08a --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs @@ -0,0 +1,56 @@ +using System.IO; +using Microsoft.CodeAnalysis; + +namespace Semmle.Extraction.CSharp.Entities +{ + internal sealed class ObjectInitMethod : CachedEntity, IMethodEntity + { + Type ContainingType { get; } + + private ObjectInitMethod(Context cx, Type containingType) + : base(cx) + { + this.ContainingType = containingType; + } + + public string Name => ""; + + public static ObjectInitMethod Create(Context cx, Type containingType) + { + return ObjectInitMethodFactory.Instance.CreateEntity(cx, (typeof(ObjectInitMethod), containingType), containingType); + } + + public override void Populate(TextWriter trapFile) + { + var returnType = Type.Create(Context, Context.Compilation.GetSpecialType(SpecialType.System_Void)); + + trapFile.methods(this, Name, ContainingType, returnType.TypeRef, this); + + trapFile.compiler_generated(this); + + trapFile.method_location(this, Context.CreateLocation(ReportingLocation)); + } + + public override void WriteId(EscapingTextWriter trapFile) + { + trapFile.WriteSubId(ContainingType); + trapFile.Write("."); + trapFile.Write(Name); + trapFile.Write(";method"); + } + + public override Microsoft.CodeAnalysis.Location? ReportingLocation => ContainingType.ReportingLocation; + + public override bool NeedsPopulation => true; + + public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.NoLabel; + + private class ObjectInitMethodFactory : CachedEntityFactory + { + public static ObjectInitMethodFactory Instance { get; } = new ObjectInitMethodFactory(); + + public override ObjectInitMethod Create(Context cx, Type containingType) => + new ObjectInitMethod(cx, containingType); + } + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs index 8960b6adb67..b789eaa2e9c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs @@ -175,7 +175,7 @@ namespace Semmle.Extraction.CSharp internal static void expr_argument_name(this TextWriter trapFile, Expression expr, string name) => trapFile.WriteTuple("expr_argument_name", expr, name); - internal static void expr_call(this TextWriter trapFile, Expression expr, Method target) => + internal static void expr_call(this TextWriter trapFile, Expression expr, IMethodEntity target) => trapFile.WriteTuple("expr_call", expr, target); internal static void expr_flowstate(this TextWriter trapFile, Expression expr, int flowState) => @@ -247,10 +247,10 @@ namespace Semmle.Extraction.CSharp internal static void localvars(this TextWriter trapFile, LocalVariable key, VariableKind kind, string name, int @var, Type type, Expression expr) => trapFile.WriteTuple("localvars", key, (int)kind, name, @var, type, expr); - internal static void method_location(this TextWriter trapFile, Method method, Location location) => + internal static void method_location(this TextWriter trapFile, IMethodEntity method, Location location) => trapFile.WriteTuple("method_location", method, location); - internal static void methods(this TextWriter trapFile, Method method, string name, Type declType, Type retType, Method originalDefinition) => + internal static void methods(this TextWriter trapFile, IMethodEntity method, string name, Type declType, Type retType, IMethodEntity originalDefinition) => trapFile.WriteTuple("methods", method, name, declType, retType, originalDefinition); internal static void modifiers(this TextWriter trapFile, Label entity, string modifier) => From 24a575a7a51f0d4d522ec8103f20e8aa0d533f4c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 26 Nov 2025 15:24:22 +0100 Subject: [PATCH 015/194] C#: Replace initializer splitting with ObjectInitMethod. --- csharp/ql/lib/semmle/code/csharp/Callable.qll | 17 +- .../semmle/code/csharp/ExprOrStmtParent.qll | 5 +- .../internal/ControlFlowGraphImpl.qll | 68 +++++--- .../csharp/controlflow/internal/Splitting.qll | 156 ++---------------- .../dataflow/internal/DataFlowDispatch.qll | 2 +- .../dataflow/internal/DataFlowPrivate.qll | 28 +++- .../Declarations/NoConstantsOnly.ql | 3 +- .../test/library-tests/obinit/Flow.expected | 4 +- .../test/library-tests/obinit/ObInit.expected | 25 +++ csharp/ql/test/library-tests/obinit/ObInit.ql | 28 ++++ 10 files changed, 159 insertions(+), 177 deletions(-) create mode 100644 csharp/ql/test/library-tests/obinit/ObInit.expected create mode 100644 csharp/ql/test/library-tests/obinit/ObInit.ql diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index 44e7c3cf4ca..49a2271b27c 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -281,7 +281,6 @@ class Method extends Callable, Virtualizable, Attributable, @method { /** Holds if this method has a `params` parameter. */ predicate hasParams() { exists(this.getParamsType()) } - // Remove when `Callable.isOverridden()` is removed override predicate fromSource() { Callable.super.fromSource() and not this.isCompilerGenerated() @@ -317,6 +316,19 @@ class ExtensionMethod extends Method { override string getAPrimaryQlClass() { result = "ExtensionMethod" } } +/** + * An object initializer method. + * + * This is an extractor-synthesized method that executes the field + * initializers. Note that the AST nodes for the field initializers are nested + * directly under the class, and therefore this method has no body in the AST. + * On the other hand, this provides the unique enclosing callable for the field + * initializers and their control flow graph. + */ +class ObjectInitMethod extends Method { + ObjectInitMethod() { this.getName() = "" } +} + /** * A constructor, for example `public C() { }` on line 2 in * @@ -350,6 +362,9 @@ class Constructor extends Callable, Member, Attributable, @constructor { */ ConstructorInitializer getInitializer() { result = this.getChildExpr(-1) } + /** Gets the object initializer call of this constructor, if any. */ + MethodCall getObjectInitializerCall() { result = this.getChildExpr(-2) } + /** Holds if this constructor has an initializer. */ predicate hasInitializer() { exists(this.getInitializer()) } diff --git a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll index be79c579513..aa834ef9103 100644 --- a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll +++ b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll @@ -55,7 +55,8 @@ class TopLevelExprParent extends Element, @top_level_expr_parent { /** INTERNAL: Do not use. */ Expr getExpressionBody(Callable c) { result = c.getAChildExpr() and - not result = c.(Constructor).getInitializer() + not result = c.(Constructor).getInitializer() and + not result = c.(Constructor).getObjectInitializerCall() } /** INTERNAL: Do not use. */ @@ -211,6 +212,8 @@ private module Cached { enclosingBody(cfe, getBody(c)) or parent*(enclosingStart(cfe), c.(Constructor).getInitializer()) + or + parent*(cfe, c.(Constructor).getObjectInitializerCall()) } /** Holds if the enclosing statement of expression `e` is `s`. */ diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 5f62d6d21df..abf506786af 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -19,7 +19,7 @@ class CfgScope extends Element, @top_level_exprorstmt_parent { any(Callable c | c.(Constructor).hasInitializer() or - InitializerSplitting::constructorInitializes(c, _) + InitializerSplitting::obinitInitializes(c, _) or c.hasBody() ) @@ -146,14 +146,16 @@ private predicate expr_parent_top_level_adjusted2( predicate scopeFirst(CfgScope scope, AstNode first) { scope = any(Callable c | - if exists(c.(Constructor).getInitializer()) - then first(c.(Constructor).getInitializer(), first) + if exists(c.(Constructor).getObjectInitializerCall()) + then first(c.(Constructor).getObjectInitializerCall(), first) else - if InitializerSplitting::constructorInitializes(c, _) - then first(InitializerSplitting::constructorInitializeOrder(c, _, 0), first) + if exists(c.(Constructor).getInitializer()) + then first(c.(Constructor).getInitializer(), first) else first(c.getBody(), first) ) or + first(InitializerSplitting::initializedInstanceMemberOrder(scope, _, 0), first) + or expr_parent_top_level_adjusted2(any(Expr e | first(e, first)), _, scope) and not scope instanceof Callable } @@ -165,14 +167,33 @@ predicate scopeLast(CfgScope scope, AstNode last, Completion c) { last(callable.getBody(), last, c) and not c instanceof GotoCompletion or - last(InitializerSplitting::lastConstructorInitializer(scope, _), last, c) and + last(callable.(Constructor).getInitializer(), last, c) and not callable.hasBody() ) or + last(InitializerSplitting::lastInitializer(scope, _), last, c) + or expr_parent_top_level_adjusted2(any(Expr e | last(e, last, c)), _, scope) and not scope instanceof Callable } +private class ObjectInitTree extends ControlFlowTree instanceof ObjectInitMethod { + final override predicate propagatesAbnormal(AstNode child) { none() } + + final override predicate first(AstNode first) { none() } + + final override predicate last(AstNode last, Completion c) { none() } + + final override predicate succ(AstNode pred, AstNode succ, Completion c) { + exists(CompilationExt comp, int i | + // Flow from one member initializer to the next + last(InitializerSplitting::initializedInstanceMemberOrder(this, comp, i), pred, c) and + c instanceof NormalCompletion and + first(InitializerSplitting::initializedInstanceMemberOrder(this, comp, i + 1), succ) + ) + } +} + private class ConstructorTree extends ControlFlowTree instanceof Constructor { final override predicate propagatesAbnormal(AstNode child) { none() } @@ -187,18 +208,23 @@ private class ConstructorTree extends ControlFlowTree instanceof Constructor { comp = getCompilation(result.getFile()) } + pragma[noinline] + private MethodCall getObjectInitializerCall(CompilationExt comp) { + result = super.getObjectInitializerCall() and + comp = getCompilation(result.getFile()) + } + + pragma[noinline] + private ConstructorInitializer getInitializer(CompilationExt comp) { + result = super.getInitializer() and + comp = getCompilation(result.getFile()) + } + final override predicate succ(AstNode pred, AstNode succ, Completion c) { - exists(CompilationExt comp, int i, AssignExpr ae | - ae = InitializerSplitting::constructorInitializeOrder(this, comp, i) and - last(ae, pred, c) and - c instanceof NormalCompletion - | - // Flow from one member initializer to the next - first(InitializerSplitting::constructorInitializeOrder(this, comp, i + 1), succ) - or - // Flow from last member initializer to constructor body - ae = InitializerSplitting::lastConstructorInitializer(this, comp) and - first(this.getBody(comp), succ) + exists(CompilationExt comp | + last(this.getObjectInitializerCall(comp), pred, c) and + c instanceof NormalCompletion and + first(this.getInitializer(comp), succ) ) } } @@ -837,13 +863,7 @@ module Expressions { last(this, pred, c) and con = super.getConstructor() and comp = getCompilation(this.getFile()) and - c instanceof NormalCompletion - | - // Flow from constructor initializer to first member initializer - first(InitializerSplitting::constructorInitializeOrder(con, comp, 0), succ) - or - // Flow from constructor initializer to first element of constructor body - not exists(InitializerSplitting::constructorInitializeOrder(con, comp, _)) and + c instanceof NormalCompletion and first(con.getBody(comp), succ) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll index 63d2c181da4..9bf030b737b 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -22,14 +22,10 @@ private module Cached { } cached - newtype TSplitKind = - TInitializerSplitKind() or - TConditionalCompletionSplitKind() + newtype TSplitKind = TConditionalCompletionSplitKind() cached - newtype TSplit = - TInitializerSplit(Constructor c) { InitializerSplitting::constructorInitializes(c, _) } or - TConditionalCompletionSplit(ConditionalCompletion c) + newtype TSplit = TConditionalCompletionSplit(ConditionalCompletion c) } import Cached @@ -44,8 +40,6 @@ class Split extends TSplit { } module InitializerSplitting { - private import semmle.code.csharp.ExprOrStmtParent - /** * A non-static member with an initializer, for example a field `int Field = 0`. */ @@ -60,40 +54,28 @@ module InitializerSplitting { /** Gets the initializer expression. */ AssignExpr getInitializer() { expr_parent_top_level(result, _, this) } - - /** - * Gets a control flow element that is a syntactic descendant of the - * initializer expression. - */ - AstNode getAnInitializerDescendant() { - result = this.getInitializer() - or - result = this.getAnInitializerDescendant().getAChild() - } } /** - * Holds if `c` is a non-static constructor that performs the initialization + * Holds if `obinit` is an object initializer method that performs the initialization * of a member via assignment `init`. */ - predicate constructorInitializes(InstanceConstructor c, AssignExpr init) { + predicate obinitInitializes(ObjectInitMethod obinit, AssignExpr init) { exists(InitializedInstanceMember m | - c.isUnboundDeclaration() and - c.getDeclaringType().getAMember() = m and - not c.getInitializer().isThis() and + obinit.getDeclaringType().getAMember() = m and init = m.getInitializer() ) } /** - * Gets the `i`th member initializer expression for non-static constructor `c` + * Gets the `i`th member initializer expression for object initializer method `obinit` * in compilation `comp`. */ - AssignExpr constructorInitializeOrder(Constructor c, CompilationExt comp, int i) { - constructorInitializes(c, result) and + AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { + obinitInitializes(obinit, result) and result = rank[i + 1](AssignExpr ae0, Location l | - constructorInitializes(c, ae0) and + obinitInitializes(obinit, ae0) and l = ae0.getLocation() and getCompilation(l.getFile()) = comp | @@ -105,122 +87,12 @@ module InitializerSplitting { * Gets the last member initializer expression for non-static constructor `c` * in compilation `comp`. */ - AssignExpr lastConstructorInitializer(Constructor c, CompilationExt comp) { + AssignExpr lastInitializer(ObjectInitMethod obinit, CompilationExt comp) { exists(int i | - result = constructorInitializeOrder(c, comp, i) and - not exists(constructorInitializeOrder(c, comp, i + 1)) + result = initializedInstanceMemberOrder(obinit, comp, i) and + not exists(initializedInstanceMemberOrder(obinit, comp, i + 1)) ) } - - /** - * A split for non-static member initializers belonging to a given non-static - * constructor. For example, in - * - * ```csharp - * class C - * { - * int Field1 = 0; - * int Field2 = Field1 + 1; - * int Field3; - * - * public C() - * { - * Field3 = 2; - * } - * - * public C(int i) - * { - * Field3 = 3; - * } - * } - * ``` - * - * the initializer expressions `Field1 = 0` and `Field2 = Field1 + 1` are split - * on the two constructors. This is in order to generate CFGs for the two - * constructors that mimic - * - * ```csharp - * public C() - * { - * Field1 = 0; - * Field2 = Field1 + 1; - * Field3 = 2; - * } - * ``` - * - * and - * - * ```csharp - * public C() - * { - * Field1 = 0; - * Field2 = Field1 + 1; - * Field3 = 3; - * } - * ``` - * - * respectively. - */ - private class InitializerSplit extends Split, TInitializerSplit { - private Constructor c; - - InitializerSplit() { this = TInitializerSplit(c) } - - /** Gets the constructor. */ - Constructor getConstructor() { result = c } - - override string toString() { result = "" } - } - - private class InitializerSplitKind extends SplitKind, TInitializerSplitKind { - override int getListOrder() { result = 0 } - - override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } - - override string toString() { result = "Initializer" } - } - - int getNextListOrder() { result = 1 } - - private class InitializerSplitImpl extends SplitImpl instanceof InitializerSplit { - override InitializerSplitKind getKind() { any() } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - exists(ConstructorInitializer ci | - last(ci, pred, c) and - succ(pred, succ, c) and - succ = any(InitializedInstanceMember m).getAnInitializerDescendant() and - super.getConstructor() = ci.getConstructor() - ) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { - scopeFirst(scope, first) and - scope = super.getConstructor() and - first = any(InitializedInstanceMember m).getAnInitializerDescendant() - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - this.appliesTo(pred) and - succ(pred, succ, c) and - not succ = any(InitializedInstanceMember m).getAnInitializerDescendant() and - succ.(ControlFlowElement).getEnclosingCallable() = super.getConstructor() - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - this.appliesTo(last) and - scopeLast(scope, last, c) and - scope = super.getConstructor() - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - this.appliesSucc(pred, succ, c) and - succ = - any(InitializedInstanceMember m | - constructorInitializes(super.getConstructor(), m.getInitializer()) - ).getAnInitializerDescendant() - } - } } module ConditionalCompletionSplitting { @@ -249,7 +121,7 @@ module ConditionalCompletionSplitting { } private class ConditionalCompletionSplitKind_ extends SplitKind, TConditionalCompletionSplitKind { - override int getListOrder() { result = InitializerSplitting::getNextListOrder() } + override int getListOrder() { result = 0 } override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } @@ -312,6 +184,4 @@ module ConditionalCompletionSplitting { ) } } - - int getNextListOrder() { result = InitializerSplitting::getNextListOrder() + 1 } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index 9ba96154820..31956756c60 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -16,7 +16,7 @@ private import semmle.code.csharp.internal.Location */ Callable getCallableForDataFlow(Callable c) { result = c.getUnboundDeclaration() and - result.hasBody() and + (result.hasBody() or result instanceof ObjectInitMethod) and result.getFile().fromSource() } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 4f7f0141da2..3aaff74da17 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -178,12 +178,24 @@ private module ThisFlow { cfn = n.(InstanceParameterAccessPreNode).getUnderlyingControlFlowNode() } + private predicate primaryConstructorThisAccess(Node n, BasicBlock bb, int ppos) { + exists(Parameter p | + n.(PrimaryConstructorThisAccessPreNode).getParameter() = p and + bb.getCallable() = p.getCallable() and + ppos = p.getPosition() + ) + } + + private int numberOfPrimaryConstructorParameters(BasicBlock bb) { + result = strictcount(int primaryParamPos | primaryConstructorThisAccess(_, bb, primaryParamPos)) + } + private predicate thisAccess(Node n, BasicBlock bb, int i) { thisAccess(n, bb.getNode(i)) or - exists(Parameter p | n.(PrimaryConstructorThisAccessPreNode).getParameter() = p | - bb.getCallable() = p.getCallable() and - i = p.getPosition() + 1 + exists(int ppos | + primaryConstructorThisAccess(n, bb, ppos) and + i = ppos - numberOfPrimaryConstructorParameters(bb) ) or exists(DataFlowCallable c, ControlFlow::BasicBlocks::EntryBlock entry | @@ -195,8 +207,11 @@ private module ThisFlow { // entry definition. In case `c` doesn't have multiple bodies, the line below // is simply the same as `bb = entry`, because `entry.getFirstNode().getASuccessor()` // will be in the entry block. - bb = succ.getBasicBlock() and - i = -1 + bb = succ.getBasicBlock() + | + i = -1 - numberOfPrimaryConstructorParameters(bb) + or + not exists(numberOfPrimaryConstructorParameters(bb)) and i = -1 ) ) } @@ -3070,6 +3085,9 @@ predicate allowParameterReturnInSelf(ParameterNode p) { or VariableCapture::Flow::heuristicAllowInstanceParameterReturnInSelf(p.(DelegateSelfReferenceNode) .getCallable()) + or + // Allow field initializers to access Primary Constructor parameters + p.getEnclosingCallable() instanceof ObjectInitMethod } /** An approximated `Content`. */ diff --git a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql index 8ae848feaeb..dbef9b714ef 100644 --- a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql +++ b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql @@ -28,6 +28,7 @@ where c.getAMember() instanceof ConstantField and forex(Member m | m = c.getAMember() | m instanceof ConstantField or - m instanceof Constructor + m instanceof Constructor or + m.isCompilerGenerated() ) select c, "Class '" + c.getName() + "' only declares common constants." diff --git a/csharp/ql/test/library-tests/obinit/Flow.expected b/csharp/ql/test/library-tests/obinit/Flow.expected index dea9d8df930..619154a60d2 100644 --- a/csharp/ql/test/library-tests/obinit/Flow.expected +++ b/csharp/ql/test/library-tests/obinit/Flow.expected @@ -1,6 +1,7 @@ edges -| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | provenance | | +| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | provenance | | | obinit.cs:5:27:5:34 | "source" : String | obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | provenance | | +| obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | provenance | | | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | provenance | | | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | provenance | | | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | provenance | | @@ -8,6 +9,7 @@ edges nodes | obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | | obinit.cs:5:27:5:34 | "source" : String | semmle.label | "source" : String | +| obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | semmle.label | this [Return] : A [field s] : String | | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | semmle.label | object creation of type A : A [field s] : String | diff --git a/csharp/ql/test/library-tests/obinit/ObInit.expected b/csharp/ql/test/library-tests/obinit/ObInit.expected new file mode 100644 index 00000000000..38dd8268680 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/ObInit.expected @@ -0,0 +1,25 @@ +method +| obinit.cs:2:18:2:18 | | obinit.cs:2:18:2:18 | A | +| obinit.cs:14:18:14:18 | | obinit.cs:14:18:14:18 | B | +call +| obinit.cs:7:16:7:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:7:16:7:16 | A | +| obinit.cs:9:16:9:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:9:16:9:16 | A | +| obinit.cs:15:16:15:16 | call to method | obinit.cs:14:18:14:18 | | obinit.cs:15:16:15:16 | B | +cfg +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | this access | obinit.cs:3:17:3:17 | 1 | normal | 0 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 2 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:17 | ... = ... | normal | 1 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 3 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:34 | ... = ... | normal | 4 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to constructor Object | obinit.cs:7:20:7:22 | {...} | normal | 2 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to method | obinit.cs:7:16:7:16 | call to constructor Object | normal | 1 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | this access | obinit.cs:7:16:7:16 | call to method | normal | 0 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to constructor Object | obinit.cs:9:25:9:27 | {...} | normal | 2 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to method | obinit.cs:9:16:9:16 | call to constructor Object | normal | 1 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | this access | obinit.cs:9:16:9:16 | call to method | normal | 0 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:34:11:37 | call to constructor A | obinit.cs:11:42:11:44 | {...} | normal | 1 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:39:11:39 | access to parameter y | obinit.cs:11:34:11:37 | call to constructor A | normal | 0 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | call to method | obinit.cs:15:27:15:28 | 10 | normal | 1 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | this access | obinit.cs:15:16:15:16 | call to method | normal | 0 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:22:15:25 | call to constructor A | obinit.cs:15:31:15:33 | {...} | normal | 3 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:27:15:28 | 10 | obinit.cs:15:22:15:25 | call to constructor A | normal | 2 | diff --git a/csharp/ql/test/library-tests/obinit/ObInit.ql b/csharp/ql/test/library-tests/obinit/ObInit.ql new file mode 100644 index 00000000000..cfd21d14b5e --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/ObInit.ql @@ -0,0 +1,28 @@ +import csharp +import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl +import semmle.code.csharp.controlflow.internal.Completion +import semmle.code.csharp.dataflow.internal.DataFlowPrivate +import semmle.code.csharp.dataflow.internal.DataFlowDispatch + +query predicate method(ObjectInitMethod m, RefType t) { m.getDeclaringType() = t } + +query predicate call(Call c, ObjectInitMethod m, Callable src) { + c.getTarget() = m and c.getEnclosingCallable() = src +} + +predicate scope(Callable callable, AstNode n, int i) { + (callable instanceof ObjectInitMethod or callable instanceof Constructor) and + scopeFirst(callable, n) and + i = 0 + or + exists(AstNode prev | + scope(callable, prev, i - 1) and + succ(prev, n, _) and + i < 30 + ) +} + +query predicate cfg(Callable callable, AstNode pred, AstNode succ, Completion c, int i) { + scope(callable, pred, i) and + succ(pred, succ, c) +} From 85121e88b4b1fee1cc565461c13e238e289eddff Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 27 Nov 2025 11:14:55 +0100 Subject: [PATCH 016/194] C#: Move and rename module. --- .../internal/ControlFlowGraphImpl.qll | 67 +++++++++++++++++-- .../csharp/controlflow/internal/Splitting.qll | 56 ---------------- 2 files changed, 61 insertions(+), 62 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index abf506786af..66b1a9d195c 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -6,10 +6,65 @@ import csharp private import codeql.controlflow.Cfg as CfgShared private import Completion -private import Splitting private import semmle.code.csharp.ExprOrStmtParent private import semmle.code.csharp.commons.Compilation +private module Initializers { + /** + * A non-static member with an initializer, for example a field `int Field = 0`. + */ + class InitializedInstanceMember extends Member { + InitializedInstanceMember() { + exists(AssignExpr ae | + not this.isStatic() and + expr_parent_top_level(ae, _, this) and + not ae = any(Callable c).getExpressionBody() + ) + } + + /** Gets the initializer expression. */ + AssignExpr getInitializer() { expr_parent_top_level(result, _, this) } + } + + /** + * Holds if `obinit` is an object initializer method that performs the initialization + * of a member via assignment `init`. + */ + predicate obinitInitializes(ObjectInitMethod obinit, AssignExpr init) { + exists(InitializedInstanceMember m | + obinit.getDeclaringType().getAMember() = m and + init = m.getInitializer() + ) + } + + /** + * Gets the `i`th member initializer expression for object initializer method `obinit` + * in compilation `comp`. + */ + AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { + obinitInitializes(obinit, result) and + result = + rank[i + 1](AssignExpr ae0, Location l | + obinitInitializes(obinit, ae0) and + l = ae0.getLocation() and + getCompilation(l.getFile()) = comp + | + ae0 order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() + ) + } + + /** + * Gets the last member initializer expression for non-static constructor `c` + * in compilation `comp`. + */ + AssignExpr lastInitializer(ObjectInitMethod obinit, CompilationExt comp) { + exists(int i | + result = initializedInstanceMemberOrder(obinit, comp, i) and + not exists(initializedInstanceMemberOrder(obinit, comp, i + 1)) + ) + } +} + /** An element that defines a new CFG scope. */ class CfgScope extends Element, @top_level_exprorstmt_parent { CfgScope() { @@ -19,7 +74,7 @@ class CfgScope extends Element, @top_level_exprorstmt_parent { any(Callable c | c.(Constructor).hasInitializer() or - InitializerSplitting::obinitInitializes(c, _) + Initializers::obinitInitializes(c, _) or c.hasBody() ) @@ -154,7 +209,7 @@ predicate scopeFirst(CfgScope scope, AstNode first) { else first(c.getBody(), first) ) or - first(InitializerSplitting::initializedInstanceMemberOrder(scope, _, 0), first) + first(Initializers::initializedInstanceMemberOrder(scope, _, 0), first) or expr_parent_top_level_adjusted2(any(Expr e | first(e, first)), _, scope) and not scope instanceof Callable @@ -171,7 +226,7 @@ predicate scopeLast(CfgScope scope, AstNode last, Completion c) { not callable.hasBody() ) or - last(InitializerSplitting::lastInitializer(scope, _), last, c) + last(Initializers::lastInitializer(scope, _), last, c) or expr_parent_top_level_adjusted2(any(Expr e | last(e, last, c)), _, scope) and not scope instanceof Callable @@ -187,9 +242,9 @@ private class ObjectInitTree extends ControlFlowTree instanceof ObjectInitMethod final override predicate succ(AstNode pred, AstNode succ, Completion c) { exists(CompilationExt comp, int i | // Flow from one member initializer to the next - last(InitializerSplitting::initializedInstanceMemberOrder(this, comp, i), pred, c) and + last(Initializers::initializedInstanceMemberOrder(this, comp, i), pred, c) and c instanceof NormalCompletion and - first(InitializerSplitting::initializedInstanceMemberOrder(this, comp, i + 1), succ) + first(Initializers::initializedInstanceMemberOrder(this, comp, i + 1), succ) ) } } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll index 9bf030b737b..87579a075f9 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -39,62 +39,6 @@ class Split extends TSplit { string toString() { none() } } -module InitializerSplitting { - /** - * A non-static member with an initializer, for example a field `int Field = 0`. - */ - class InitializedInstanceMember extends Member { - InitializedInstanceMember() { - exists(AssignExpr ae | - not this.isStatic() and - expr_parent_top_level(ae, _, this) and - not ae = any(Callable c).getExpressionBody() - ) - } - - /** Gets the initializer expression. */ - AssignExpr getInitializer() { expr_parent_top_level(result, _, this) } - } - - /** - * Holds if `obinit` is an object initializer method that performs the initialization - * of a member via assignment `init`. - */ - predicate obinitInitializes(ObjectInitMethod obinit, AssignExpr init) { - exists(InitializedInstanceMember m | - obinit.getDeclaringType().getAMember() = m and - init = m.getInitializer() - ) - } - - /** - * Gets the `i`th member initializer expression for object initializer method `obinit` - * in compilation `comp`. - */ - AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { - obinitInitializes(obinit, result) and - result = - rank[i + 1](AssignExpr ae0, Location l | - obinitInitializes(obinit, ae0) and - l = ae0.getLocation() and - getCompilation(l.getFile()) = comp - | - ae0 order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() - ) - } - - /** - * Gets the last member initializer expression for non-static constructor `c` - * in compilation `comp`. - */ - AssignExpr lastInitializer(ObjectInitMethod obinit, CompilationExt comp) { - exists(int i | - result = initializedInstanceMemberOrder(obinit, comp, i) and - not exists(initializedInstanceMemberOrder(obinit, comp, i + 1)) - ) - } -} - module ConditionalCompletionSplitting { /** * A split for conditional completions. For example, in From 02e5f4545a7da94bbc3d9283fe728380c07183d9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 27 Nov 2025 13:54:26 +0100 Subject: [PATCH 017/194] C#: Fixup test --- csharp/ql/test/library-tests/generics/Generics.expected | 1 + csharp/ql/test/library-tests/generics/Generics.ql | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/csharp/ql/test/library-tests/generics/Generics.expected b/csharp/ql/test/library-tests/generics/Generics.expected index d390859b4df..8e82103a19e 100644 --- a/csharp/ql/test/library-tests/generics/Generics.expected +++ b/csharp/ql/test/library-tests/generics/Generics.expected @@ -31,6 +31,7 @@ test14 test15 | generics.cs:7:23:7:40 | GenericDelegate | test16 +| generics.cs:135:11:135:16 | Subtle | generics.cs:135:11:135:16 | | | generics.cs:135:11:135:16 | Subtle | generics.cs:138:21:138:25 | fs`1 | | generics.cs:135:11:135:16 | Subtle | generics.cs:140:21:140:25 | fs`1 | | generics.cs:135:11:135:16 | Subtle | generics.cs:142:21:142:22 | fs | diff --git a/csharp/ql/test/library-tests/generics/Generics.ql b/csharp/ql/test/library-tests/generics/Generics.ql index ab1f0af982a..95ae84ebd9a 100644 --- a/csharp/ql/test/library-tests/generics/Generics.ql +++ b/csharp/ql/test/library-tests/generics/Generics.ql @@ -118,7 +118,7 @@ query predicate test15(ConstructedDelegateType d) { query predicate test16(Class c, Method m) { c.hasName("Subtle") and - count(c.getAMethod()) = 3 and + count(c.getAMethod()) = 4 and m = c.getAMethod() } From 541dce4d177b15097b054db4bd5db42b7c92b22b Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 27 Nov 2025 14:18:17 +0100 Subject: [PATCH 018/194] C#: Accept PrintAst index shift. --- .../library-tests/arguments/PrintAst.expected | 42 ++-- .../assignments/PrintAst.expected | 8 +- .../attributes/PrintAst.expected | 54 ++--- .../library-tests/comments/PrintAst.expected | 60 ++--- .../constructors/PrintAst.expected | 14 +- .../conversion/operator/PrintAst.expected | 8 +- .../library-tests/csharp11/PrintAst.expected | 198 +++++++-------- .../library-tests/csharp6/PrintAst.expected | 30 +-- .../library-tests/csharp7.1/PrintAst.expected | 4 +- .../library-tests/csharp7.2/PrintAst.expected | 18 +- .../library-tests/csharp7.3/PrintAst.expected | 8 +- .../library-tests/csharp7/PrintAst.expected | 64 ++--- .../library-tests/csharp8/PrintAst.expected | 202 ++++++++-------- .../library-tests/csharp9/PrintAst.expected | 226 +++++++++--------- .../implicittostring/PrintAst.expected | 16 +- .../dataflow/tuples/PrintAst.expected | 30 +-- .../definitions/PrintAst.expected | 64 ++--- .../library-tests/delegates/PrintAst.expected | 34 +-- .../library-tests/dynamic/PrintAst.expected | 18 +- .../library-tests/enums/PrintAst.expected | 4 +- .../library-tests/events/PrintAst.expected | 32 +-- .../exceptions/PrintAst.expected | 38 +-- .../expressions/PrintAst.expected | 192 +++++++-------- .../library-tests/fields/PrintAst.expected | 54 ++--- .../library-tests/generics/PrintAst.expected | 94 ++++---- .../test/library-tests/goto/PrintAst.expected | 2 +- .../library-tests/indexers/PrintAst.expected | 26 +- .../initializers/PrintAst.expected | 14 +- .../test/library-tests/linq/PrintAst.expected | 10 +- .../library-tests/members/PrintAst.expected | 44 ++-- .../library-tests/methods/PrintAst.expected | 50 ++-- .../namespaces/PrintAst.expected | 2 +- .../nestedtypes/PrintAst.expected | 26 +- .../library-tests/operators/PrintAst.expected | 20 +- .../library-tests/partial/PrintAst.expected | 26 +- .../properties/PrintAst.expected | 46 ++-- .../statements/PrintAst.expected | 60 ++--- .../stringinterpolation/PrintAst.expected | 2 +- .../library-tests/types/PrintAst.expected | 76 +++--- .../library-tests/unsafe/PrintAst.expected | 8 +- 40 files changed, 962 insertions(+), 962 deletions(-) diff --git a/csharp/ql/test/library-tests/arguments/PrintAst.expected b/csharp/ql/test/library-tests/arguments/PrintAst.expected index b63b49cc7f5..fbf61c14743 100644 --- a/csharp/ql/test/library-tests/arguments/PrintAst.expected +++ b/csharp/ql/test/library-tests/arguments/PrintAst.expected @@ -1,6 +1,6 @@ arguments.cs: # 4| [Class] ArgumentsTest -# 6| 4: [InstanceConstructor] ArgumentsTest +# 6| 5: [InstanceConstructor] ArgumentsTest #-----| 2: (Parameters) # 6| 0: [Parameter] x # 6| -1: [TypeMention] int @@ -9,7 +9,7 @@ arguments.cs: # 6| -1: [TypeMention] int # 6| 1: [IntLiteral] 0 # 7| 4: [BlockStmt] {...} -# 10| 5: [InstanceConstructor] ArgumentsTest +# 10| 6: [InstanceConstructor] ArgumentsTest #-----| 2: (Parameters) # 10| 0: [Parameter] x # 10| -1: [TypeMention] int @@ -22,7 +22,7 @@ arguments.cs: # 12| 0: [AssignExpr] ... = ... # 12| 0: [ParameterAccess] access to parameter y # 12| 1: [ParameterAccess] access to parameter x -# 15| 6: [Method] f1 +# 15| 7: [Method] f1 # 15| -1: [TypeMention] Void #-----| 2: (Parameters) # 15| 0: [Parameter] x @@ -32,7 +32,7 @@ arguments.cs: # 15| -1: [TypeMention] int # 15| 1: [IntLiteral] 2 # 16| 4: [BlockStmt] {...} -# 19| 7: [Method] f2 +# 19| 8: [Method] f2 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x @@ -46,7 +46,7 @@ arguments.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [ParameterAccess] access to parameter y # 21| 1: [ParameterAccess] access to parameter x -# 24| 8: [Method] f +# 24| 9: [Method] f # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -73,7 +73,7 @@ arguments.cs: # 31| -1: [TypeMention] ArgumentsTest # 31| 0: [IntLiteral] 10 # 31| 1: [IntLiteral] 5 -# 34| 9: [Method] f3 +# 34| 10: [Method] f3 # 34| -1: [TypeMention] Void #-----| 2: (Parameters) # 34| 0: [Parameter] o @@ -135,7 +135,7 @@ arguments.cs: # 43| 1: [LocalVariableAccess] access to local variable s1 # 43| 2: [CastExpr] (...) ... # 43| 1: [LocalVariableAccess] access to local variable s2 -# 46| 10: [Method] f4 +# 46| 11: [Method] f4 # 46| -1: [TypeMention] Void #-----| 2: (Parameters) # 46| 0: [Parameter] args @@ -150,13 +150,13 @@ arguments.cs: # 48| -1: [ArrayInitializer] { ..., ... } # 48| 0: [NullLiteral] null # 48| 1: [NullLiteral] null -# 51| 11: [Property] Prop +# 51| 12: [Property] Prop # 51| -1: [TypeMention] int # 51| 3: [Getter] get_Prop # 51| 4: [Setter] set_Prop #-----| 2: (Parameters) # 51| 0: [Parameter] value -# 53| 12: [Indexer] Item +# 53| 13: [Indexer] Item # 53| -1: [TypeMention] int #-----| 1: (Parameters) # 53| 0: [Parameter] a @@ -176,7 +176,7 @@ arguments.cs: # 53| 1: [Parameter] b # 53| 2: [Parameter] value # 53| 4: [BlockStmt] {...} -# 55| 13: [Method] f5 +# 55| 14: [Method] f5 # 55| -1: [TypeMention] Void # 56| 4: [BlockStmt] {...} # 57| 0: [ExprStmt] ...; @@ -237,14 +237,14 @@ arguments.cs: # 65| 0: [IntLiteral] 15 # 65| 1: [IntLiteral] 16 # 65| 1: [LocalVariableAccess] access to local variable tuple -# 69| 14: [Method] f6 +# 69| 15: [Method] f6 # 69| -1: [TypeMention] Void #-----| 0: (Attributes) # 68| 1: [DefaultAttribute] [My(...)] # 68| -1: [TypeMention] MyAttribute # 68| 0: [BoolLiteral] false # 69| 4: [BlockStmt] {...} -# 72| 15: [Method] f7 +# 72| 16: [Method] f7 # 72| -1: [TypeMention] Void #-----| 0: (Attributes) # 71| 1: [DefaultAttribute] [My(...)] @@ -253,7 +253,7 @@ arguments.cs: # 71| 1: [StringLiteralUtf16] "" # 71| 2: [IntLiteral] 0 # 72| 4: [BlockStmt] {...} -# 74| 17: [Method] f8`1 +# 74| 18: [Method] f8`1 # 74| -1: [TypeMention] Void #-----| 1: (Type parameters) # 74| 0: [TypeParameter] T @@ -337,7 +337,7 @@ arguments.cs: # 86| 1: [IntLiteral] 1 # 86| 1: [CastExpr] (...) ... # 86| 1: [IntLiteral] 2 -# 89| 19: [Method] f9`1 +# 89| 20: [Method] f9`1 # 89| -1: [TypeMention] Void #-----| 1: (Type parameters) # 89| 0: [TypeParameter] T @@ -406,7 +406,7 @@ arguments.cs: # 100| 1: [ElementInitializer] call to method Add # 100| 0: [CastExpr] (...) ... # 100| 1: [IntLiteral] 2 -# 103| 20: [Method] f10 +# 103| 21: [Method] f10 # 103| -1: [TypeMention] Void #-----| 2: (Parameters) # 103| 0: [Parameter] o @@ -465,22 +465,22 @@ arguments.cs: # 116| [Class] MyAttribute #-----| 3: (Base types) # 116| 0: [TypeMention] Attribute -# 118| 4: [Field] x +# 118| 5: [Field] x # 118| -1: [TypeMention] int -# 119| 5: [Property] y +# 119| 6: [Property] y # 119| -1: [TypeMention] string # 119| 3: [Getter] get_y # 119| 4: [Setter] set_y #-----| 2: (Parameters) # 119| 0: [Parameter] value -# 120| 6: [InstanceConstructor] MyAttribute +# 120| 7: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 120| 0: [Parameter] b # 120| -1: [TypeMention] bool # 120| 4: [BlockStmt] {...} lambdas.cs: # 3| [Class] LambdaArgumentsTest -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -546,13 +546,13 @@ lambdas.cs: # 17| 0: [IntLiteral] 7 # 17| 1: [IntLiteral] 8 # 17| 2: [IntLiteral] 9 -# 20| 6: [DelegateType] MyDelegate +# 20| 7: [DelegateType] MyDelegate #-----| 2: (Parameters) # 20| 0: [Parameter] x # 20| -1: [TypeMention] int # 20| 1: [Parameter] y # 20| -1: [TypeMention] int -# 22| 7: [Method] M2 +# 22| 8: [Method] M2 # 22| -1: [TypeMention] Void # 23| 4: [BlockStmt] {...} # 24| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/assignments/PrintAst.expected b/csharp/ql/test/library-tests/assignments/PrintAst.expected index e309da37a0e..bece0312d15 100644 --- a/csharp/ql/test/library-tests/assignments/PrintAst.expected +++ b/csharp/ql/test/library-tests/assignments/PrintAst.expected @@ -1,6 +1,6 @@ Assignments.cs: # 1| [Class] Assignments -# 3| 5: [Method] M +# 3| 6: [Method] M # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -40,7 +40,7 @@ Assignments.cs: # 14| 0: [Parameter] sender # 14| 1: [Parameter] e # 14| 4: [BlockStmt] {...} -# 17| 6: [AddOperator] + +# 17| 7: [AddOperator] + # 17| -1: [TypeMention] Assignments #-----| 2: (Parameters) # 17| 0: [Parameter] x @@ -50,13 +50,13 @@ Assignments.cs: # 18| 4: [BlockStmt] {...} # 19| 0: [ReturnStmt] return ...; # 19| 0: [ParameterAccess] access to parameter x -# 22| 7: [DelegateType] EventHandler +# 22| 8: [DelegateType] EventHandler #-----| 2: (Parameters) # 22| 0: [Parameter] sender # 22| -1: [TypeMention] object # 22| 1: [Parameter] e # 22| -1: [TypeMention] object -# 23| 8: [Event] Event +# 23| 9: [Event] Event # 23| -1: [TypeMention] EventHandler # 23| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) diff --git a/csharp/ql/test/library-tests/attributes/PrintAst.expected b/csharp/ql/test/library-tests/attributes/PrintAst.expected index 00412ae011a..e16a6ff8a92 100644 --- a/csharp/ql/test/library-tests/attributes/PrintAst.expected +++ b/csharp/ql/test/library-tests/attributes/PrintAst.expected @@ -102,7 +102,7 @@ attributes.cs: # 45| 0: [TypeMention] AttributeTargets #-----| 3: (Base types) # 46| 0: [TypeMention] Attribute -# 49| 5: [Method] foo +# 49| 6: [Method] foo # 49| -1: [TypeMention] Void #-----| 0: (Attributes) # 48| 1: [DefaultAttribute] [Conditional(...)] @@ -110,7 +110,7 @@ attributes.cs: # 48| 0: [StringLiteralUtf16] "DEBUG2" # 49| 4: [BlockStmt] {...} # 52| [Class] Bar -# 54| 5: [Method] inc +# 54| 6: [Method] inc # 54| -1: [TypeMention] int #-----| 2: (Parameters) # 54| 0: [Parameter] x @@ -123,14 +123,14 @@ attributes.cs: # 54| 0: [AddExpr] ... + ... # 54| 0: [ParameterAccess] access to parameter x # 54| 1: [IntLiteral] 1 -# 57| 6: [Method] M1 +# 57| 7: [Method] M1 # 57| -1: [TypeMention] Void #-----| 0: (Attributes) # 56| 1: [DefaultAttribute] [My(...)] # 56| -1: [TypeMention] MyAttribute # 56| 0: [BoolLiteral] false # 57| 4: [BlockStmt] {...} -# 61| 7: [Method] M2 +# 61| 8: [Method] M2 # 61| -1: [TypeMention] Void #-----| 0: (Attributes) # 59| 1: [DefaultAttribute] [My(...)] @@ -148,15 +148,15 @@ attributes.cs: # 64| [Class] MyAttribute #-----| 3: (Base types) # 64| 0: [TypeMention] Attribute -# 66| 4: [Field] x +# 66| 5: [Field] x # 66| -1: [TypeMention] int -# 67| 5: [Property] y +# 67| 6: [Property] y # 67| -1: [TypeMention] string # 67| 3: [Getter] get_y # 67| 4: [Setter] set_y #-----| 2: (Parameters) # 67| 0: [Parameter] value -# 68| 6: [InstanceConstructor] MyAttribute +# 68| 7: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 68| 0: [Parameter] b # 68| -1: [TypeMention] bool @@ -167,14 +167,14 @@ attributes.cs: # 73| [Class] ArgsAttribute #-----| 3: (Base types) # 73| 0: [TypeMention] Attribute -# 75| 4: [Property] Prop +# 75| 5: [Property] Prop # 75| -1: [TypeMention] Object[] # 75| 1: [TypeMention] object # 75| 3: [Getter] get_Prop # 75| 4: [Setter] set_Prop #-----| 2: (Parameters) # 75| 0: [Parameter] value -# 76| 5: [InstanceConstructor] ArgsAttribute +# 76| 6: [InstanceConstructor] ArgsAttribute #-----| 2: (Parameters) # 76| 0: [Parameter] i # 76| -1: [TypeMention] int @@ -216,7 +216,7 @@ attributes.cs: # 79| 1: [TypeofExpr] typeof(...) # 79| 0: [TypeAccess] access to type Int32 # 79| 0: [TypeMention] int -# 84| 5: [Method] SomeMethod +# 84| 6: [Method] SomeMethod # 84| -1: [TypeMention] int #-----| 0: (Attributes) # 82| 1: [DefaultAttribute] [Args(...)] @@ -279,13 +279,13 @@ attributes.cs: # 87| [Class] My2Attribute #-----| 3: (Base types) # 87| 0: [TypeMention] Attribute -# 89| 4: [Property] X +# 89| 5: [Property] X # 89| -1: [TypeMention] int # 89| 3: [Getter] get_X # 89| 4: [Setter] set_X #-----| 2: (Parameters) # 89| 0: [Parameter] value -# 90| 5: [InstanceConstructor] My2Attribute +# 90| 6: [InstanceConstructor] My2Attribute #-----| 2: (Parameters) # 90| 0: [Parameter] a # 90| -1: [TypeMention] bool @@ -301,7 +301,7 @@ attributes.cs: # 93| [Class] My3Attribute #-----| 3: (Base types) # 93| 0: [TypeMention] Attribute -# 95| 4: [InstanceConstructor] My3Attribute +# 95| 5: [InstanceConstructor] My3Attribute #-----| 2: (Parameters) # 95| 0: [Parameter] x # 95| -1: [TypeMention] int @@ -323,7 +323,7 @@ attributes.cs: # 104| 0: [Parameter] message # 104| -1: [TypeMention] string # 106| [Class] MyAttributeUsage -# 110| 5: [AddOperator] + +# 110| 6: [AddOperator] + # 110| -1: [TypeMention] int #-----| 0: (Attributes) # 108| 1: [DefaultAttribute] [My3(...)] @@ -338,7 +338,7 @@ attributes.cs: # 110| 1: [Parameter] b # 110| -1: [TypeMention] MyAttributeUsage # 110| 4: [IntLiteral] 0 -# 113| 6: [Indexer] Item +# 113| 7: [Indexer] Item # 113| -1: [TypeMention] int #-----| 0: (Attributes) # 112| 1: [DefaultAttribute] [My3(...)] @@ -376,9 +376,9 @@ attributes.cs: # 120| 0: [IntLiteral] 10 # 121| 4: [BlockStmt] {...} # 121| 0: [ReturnStmt] return ...; -# 124| 7: [Field] p +# 124| 8: [Field] p # 124| -1: [TypeMention] int -# 126| 8: [Property] Prop1 +# 126| 9: [Property] Prop1 # 126| -1: [TypeMention] int #-----| 0: (Attributes) # 125| 1: [DefaultAttribute] [My3(...)] @@ -412,10 +412,10 @@ attributes.cs: # 134| 0: [FieldAccess] access to field p # 134| 1: [ParameterAccess] access to parameter value # 138| [Class] Class1 -# 140| 5: [Class] ParamsAttribute +# 140| 6: [Class] ParamsAttribute #-----| 3: (Base types) # 140| 0: [TypeMention] Attribute -# 142| 4: [InstanceConstructor] ParamsAttribute +# 142| 5: [InstanceConstructor] ParamsAttribute #-----| 2: (Parameters) # 142| 0: [Parameter] s1 # 142| -1: [TypeMention] string @@ -425,7 +425,7 @@ attributes.cs: # 142| -1: [TypeMention] Int32[] # 142| 1: [TypeMention] int # 142| 4: [BlockStmt] {...} -# 146| 6: [Method] M1 +# 146| 7: [Method] M1 # 146| -1: [TypeMention] Void #-----| 0: (Attributes) # 145| 1: [DefaultAttribute] [Params(...)] @@ -436,7 +436,7 @@ attributes.cs: # 145| 3: [IntLiteral] 2 # 145| 4: [IntLiteral] 3 # 146| 4: [BlockStmt] {...} -# 149| 7: [Method] M2 +# 149| 8: [Method] M2 # 149| -1: [TypeMention] Void #-----| 0: (Attributes) # 148| 1: [DefaultAttribute] [Params(...)] @@ -447,7 +447,7 @@ attributes.cs: # 148| 3: [IntLiteral] 2 # 148| 4: [IntLiteral] 3 # 149| 4: [BlockStmt] {...} -# 152| 8: [Method] M3 +# 152| 9: [Method] M3 # 152| -1: [TypeMention] Void #-----| 0: (Attributes) # 151| 1: [DefaultAttribute] [Params(...)] @@ -456,7 +456,7 @@ attributes.cs: # 151| 1: [StringLiteralUtf16] "b" # 151| 2: [IntLiteral] 1 # 152| 4: [BlockStmt] {...} -# 155| 9: [Method] M4 +# 155| 10: [Method] M4 # 155| -1: [TypeMention] Void #-----| 0: (Attributes) # 154| 1: [DefaultAttribute] [Params(...)] @@ -472,7 +472,7 @@ attributes.cs: # 158| 1: [DefaultAttribute] [Experimental(...)] # 158| -1: [TypeMention] ExperimentalAttribute # 158| 0: [StringLiteralUtf16] "MyExperimentalClassId" -# 162| 5: [Method] MyExperimentalMethod +# 162| 6: [Method] MyExperimentalMethod # 162| -1: [TypeMention] Void #-----| 0: (Attributes) # 161| 1: [DefaultAttribute] [Experimental(...)] @@ -480,7 +480,7 @@ attributes.cs: # 161| 0: [StringLiteralUtf16] "MyExperimentalMethodId" # 162| 4: [BlockStmt] {...} # 165| [Class] MyOverloadResolutionClass -# 168| 5: [Method] M +# 168| 6: [Method] M # 168| -1: [TypeMention] Void #-----| 0: (Attributes) # 167| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] @@ -492,7 +492,7 @@ attributes.cs: # 168| -1: [TypeMention] Int32[] # 168| 1: [TypeMention] int # 168| 4: [BlockStmt] {...} -# 171| 6: [Method] M +# 171| 7: [Method] M # 171| -1: [TypeMention] Void #-----| 0: (Attributes) # 170| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] @@ -503,7 +503,7 @@ attributes.cs: # 171| -1: [TypeMention] IEnumerable # 171| 1: [TypeMention] int # 171| 4: [BlockStmt] {...} -# 174| 7: [Method] M +# 174| 8: [Method] M # 174| -1: [TypeMention] Void #-----| 0: (Attributes) # 173| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] diff --git a/csharp/ql/test/library-tests/comments/PrintAst.expected b/csharp/ql/test/library-tests/comments/PrintAst.expected index 68c2c582e37..9bc446858ee 100644 --- a/csharp/ql/test/library-tests/comments/PrintAst.expected +++ b/csharp/ql/test/library-tests/comments/PrintAst.expected @@ -1,19 +1,19 @@ comments1.cs: # 9| [Class] C # 34| [Class] Foo -# 39| 5: [Field] x +# 39| 6: [Field] x # 39| -1: [TypeMention] int -# 42| 6: [Field] y +# 42| 7: [Field] y # 42| -1: [TypeMention] int -# 43| 7: [Field] z +# 43| 8: [Field] z # 43| -1: [TypeMention] int comments2.cs: # 11| [Class] C2 -# 13| 4: [Field] field1 +# 13| 5: [Field] field1 # 13| -1: [TypeMention] int -# 14| 5: [Field] field2 +# 14| 6: [Field] field2 # 14| -1: [TypeMention] int -# 19| 6: [Method] f +# 19| 7: [Method] f # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 23| 0: [ExprStmt] ...; @@ -21,7 +21,7 @@ comments2.cs: # 26| 1: [ExprStmt] ...; # 26| 0: [MethodCall] call to method g # 26| 0: [IntLiteral] 2 -# 29| 7: [Method] g +# 29| 8: [Method] g # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] x @@ -37,8 +37,8 @@ comments2.cs: # 34| -1: [TypeMention] int # 34| 0: [LocalVariableAccess] access to local variable z # 34| 1: [IntLiteral] 0 -# 40| 8: [Class] C3 -# 48| 9: [Property] S1 +# 40| 9: [Class] C3 +# 48| 10: [Property] S1 # 48| -1: [TypeMention] string # 52| 3: [Getter] get_S1 # 52| 4: [BlockStmt] {...} @@ -48,15 +48,15 @@ comments2.cs: #-----| 2: (Parameters) # 53| 0: [Parameter] value # 54| 4: [BlockStmt] {...} -# 61| 10: [Enum] Values +# 61| 11: [Enum] Values # 66| 5: [Field] First # 67| 6: [Field] Second # 73| 7: [Field] Third -# 79| 11: [InstanceConstructor] C2 +# 79| 12: [InstanceConstructor] C2 # 80| 4: [BlockStmt] {...} -# 85| 12: [Destructor] ~C2 +# 85| 13: [Destructor] ~C2 # 86| 4: [BlockStmt] {...} -# 90| 13: [AddOperator] + +# 90| 14: [AddOperator] + # 90| -1: [TypeMention] int #-----| 2: (Parameters) # 90| 0: [Parameter] x @@ -66,7 +66,7 @@ comments2.cs: # 91| 4: [BlockStmt] {...} # 92| 0: [ReturnStmt] return ...; # 92| 0: [IntLiteral] 2 -# 95| 14: [Method] f +# 95| 15: [Method] f # 95| -1: [TypeMention] Void #-----| 2: (Parameters) # 96| 0: [Parameter] x @@ -74,8 +74,8 @@ comments2.cs: # 97| 1: [Parameter] y # 97| -1: [TypeMention] int # 99| 4: [BlockStmt] {...} -# 103| 15: [DelegateType] D -# 107| 16: [Event] E +# 103| 16: [DelegateType] D +# 107| 17: [Event] E # 107| -1: [TypeMention] D # 107| 3: [AddEventAccessor] add_E #-----| 2: (Parameters) @@ -83,7 +83,7 @@ comments2.cs: # 107| 4: [RemoveEventAccessor] remove_E #-----| 2: (Parameters) # 107| 0: [Parameter] value -# 110| 17: [Method] gen +# 110| 18: [Method] gen # 110| -1: [TypeMention] Void # 111| 4: [BlockStmt] {...} # 112| 0: [LocalVariableDeclStmt] ... ...; @@ -110,12 +110,12 @@ comments2.cs: # 115| -1: [TypeMention] int # 115| 0: [LocalVariableAccess] access to local variable t4 # 115| 1: [MethodCall] call to method GenericFn -# 119| 20: [Class] GenericClass`1 +# 119| 21: [Class] GenericClass`1 #-----| 1: (Type parameters) # 119| 0: [TypeParameter] T -# 121| 5: [Field] f +# 121| 6: [Field] f # 121| -1: [TypeMention] int -# 125| 23: [Method] GenericFn`1 +# 125| 24: [Method] GenericFn`1 # 125| -1: [TypeMention] int #-----| 1: (Type parameters) # 125| 0: [TypeParameter] T @@ -129,7 +129,7 @@ comments2.cs: # 128| 0: [IntLiteral] 0 trivia.cs: # 14| [Class] Tr1 -# 16| 5: [Method] M1 +# 16| 6: [Method] M1 # 16| -1: [TypeMention] Void # 17| 4: [BlockStmt] {...} comments1.cs: @@ -155,7 +155,7 @@ trivia.cs: # 28| 0: [LocalVariableDeclExpr] Double d # 28| 0: [TypeMention] double # 32| [Class] Tr2 -# 34| 5: [Method] M1 +# 34| 6: [Method] M1 # 34| -1: [TypeMention] Void # 35| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -165,11 +165,11 @@ trivia.cs: # 39| 0: [LocalVariableDeclExpr] Int32 j # 39| 0: [TypeMention] int # 45| [Class] Tr3 -# 47| 5: [Method] M1 +# 47| 6: [Method] M1 # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 61| [Class] Tr4 -# 63| 5: [Method] M1 +# 63| 6: [Method] M1 # 63| -1: [TypeMention] Void # 64| 4: [BlockStmt] {...} # 73| 0: [LocalVariableDeclStmt] ... ...; @@ -178,25 +178,25 @@ trivia.cs: # 73| 0: [LocalVariableAccess] access to local variable i # 73| 1: [IntLiteral] 1 # 80| [Class] Tr5 -# 83| 5: [Method] M1 +# 83| 6: [Method] M1 # 83| -1: [TypeMention] Void # 84| 4: [BlockStmt] {...} -# 88| 6: [Method] M2 +# 88| 7: [Method] M2 # 88| -1: [TypeMention] Void # 89| 4: [BlockStmt] {...} -# 92| 7: [Field] F1 +# 92| 8: [Field] F1 # 92| -1: [TypeMention] int # 94| 1: [IntLiteral] 10 -# 98| 8: [Field] F2 +# 98| 9: [Field] F2 # 98| -1: [TypeMention] int # 98| 1: [IntLiteral] 0 -# 100| 9: [Property] P1 +# 100| 10: [Property] P1 # 100| -1: [TypeMention] int # 102| 3: [Getter] get_P1 # 104| 4: [Setter] set_P1 #-----| 2: (Parameters) # 104| 0: [Parameter] value -# 108| 10: [Property] P2 +# 108| 11: [Property] P2 # 108| -1: [TypeMention] int # 108| 3: [Getter] get_P2 # 108| 4: [Setter] set_P2 diff --git a/csharp/ql/test/library-tests/constructors/PrintAst.expected b/csharp/ql/test/library-tests/constructors/PrintAst.expected index fc5c19ac2df..000ae29f2c2 100644 --- a/csharp/ql/test/library-tests/constructors/PrintAst.expected +++ b/csharp/ql/test/library-tests/constructors/PrintAst.expected @@ -1,16 +1,16 @@ constructors.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Class -# 5| 4: [InstanceConstructor] Class +# 5| 5: [InstanceConstructor] Class # 6| 4: [BlockStmt] {...} -# 8| 5: [InstanceConstructor] Class +# 8| 6: [InstanceConstructor] Class #-----| 2: (Parameters) # 8| 0: [Parameter] i # 8| -1: [TypeMention] int # 9| 4: [BlockStmt] {...} -# 11| 6: [StaticConstructor] Class +# 11| 7: [StaticConstructor] Class # 12| 4: [BlockStmt] {...} -# 14| 7: [Destructor] ~Class +# 14| 8: [Destructor] ~Class # 15| 4: [BlockStmt] {...} # 16| 0: [LocalVariableDeclStmt] ... ...; # 16| 0: [LocalVariableDeclAndInitExpr] Int32 i = ... @@ -19,13 +19,13 @@ constructors.cs: # 16| 1: [IntLiteral] 0 # 21| [NamespaceDeclaration] namespace ... { ... } # 23| 1: [Class] C1 -# 23| 4: [InstanceConstructor,PrimaryConstructor] C1 +# 23| 5: [InstanceConstructor,PrimaryConstructor] C1 #-----| 2: (Parameters) # 23| 0: [Parameter] o # 23| -1: [TypeMention] object # 23| 1: [Parameter] s # 23| -1: [TypeMention] string -# 25| 5: [InstanceConstructor] C1 +# 25| 6: [InstanceConstructor] C1 #-----| 2: (Parameters) # 25| 0: [Parameter] o # 25| -1: [TypeMention] object @@ -36,7 +36,7 @@ constructors.cs: # 28| 2: [Class] C2 #-----| 3: (Base types) # 28| 0: [TypeMention] C1 -# 28| 4: [InstanceConstructor,PrimaryConstructor] C2 +# 28| 5: [InstanceConstructor,PrimaryConstructor] C2 #-----| 2: (Parameters) # 28| 0: [Parameter] o # 28| -1: [TypeMention] object diff --git a/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected b/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected index 47f1db09efe..89a12e9a170 100644 --- a/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected +++ b/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected @@ -1,6 +1,6 @@ Operator.cs: # 3| [Class] C -# 5| 5: [ImplicitConversionOperator] implicit conversion +# 5| 6: [ImplicitConversionOperator] implicit conversion # 5| -1: [TypeMention] C #-----| 2: (Parameters) # 5| 0: [Parameter] i @@ -8,11 +8,11 @@ Operator.cs: # 5| 4: [BlockStmt] {...} # 5| 0: [ReturnStmt] return ...; # 5| 0: [NullLiteral] null -# 7| 6: [Field] x1 +# 7| 7: [Field] x1 # 7| -1: [TypeMention] int -# 8| 7: [Field] x2 +# 8| 8: [Field] x2 # 8| -1: [TypeMention] C -# 11| 8: [Method] M +# 11| 9: [Method] M # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [ExprStmt] ...; diff --git a/csharp/ql/test/library-tests/csharp11/PrintAst.expected b/csharp/ql/test/library-tests/csharp11/PrintAst.expected index 1de7ff42928..391c41540ec 100644 --- a/csharp/ql/test/library-tests/csharp11/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp11/PrintAst.expected @@ -1,10 +1,10 @@ CheckedOperators.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Number -# 5| 4: [Property] Value +# 5| 5: [Property] Value # 5| -1: [TypeMention] int # 5| 3: [Getter] get_Value -# 7| 5: [InstanceConstructor] Number +# 7| 6: [InstanceConstructor] Number #-----| 2: (Parameters) # 7| 0: [Parameter] n # 7| -1: [TypeMention] int @@ -12,7 +12,7 @@ CheckedOperators.cs: # 7| 0: [PropertyCall] access to property Value # 7| -1: [ThisAccess] this access # 7| 1: [ParameterAccess] access to parameter n -# 9| 6: [CheckedAddOperator] checked + +# 9| 7: [CheckedAddOperator] checked + # 9| -1: [TypeMention] Number #-----| 2: (Parameters) # 9| 0: [Parameter] n1 @@ -27,7 +27,7 @@ CheckedOperators.cs: # 10| -1: [ParameterAccess] access to parameter n1 # 10| 1: [PropertyCall] access to property Value # 10| -1: [ParameterAccess] access to parameter n2 -# 12| 7: [AddOperator] + +# 12| 8: [AddOperator] + # 12| -1: [TypeMention] Number #-----| 2: (Parameters) # 12| 0: [Parameter] n1 @@ -41,7 +41,7 @@ CheckedOperators.cs: # 13| -1: [ParameterAccess] access to parameter n1 # 13| 1: [PropertyCall] access to property Value # 13| -1: [ParameterAccess] access to parameter n2 -# 15| 8: [CheckedSubOperator] checked - +# 15| 9: [CheckedSubOperator] checked - # 15| -1: [TypeMention] Number #-----| 2: (Parameters) # 15| 0: [Parameter] n1 @@ -56,7 +56,7 @@ CheckedOperators.cs: # 16| -1: [ParameterAccess] access to parameter n1 # 16| 1: [PropertyCall] access to property Value # 16| -1: [ParameterAccess] access to parameter n2 -# 18| 9: [SubOperator] - +# 18| 10: [SubOperator] - # 18| -1: [TypeMention] Number #-----| 2: (Parameters) # 18| 0: [Parameter] n1 @@ -70,7 +70,7 @@ CheckedOperators.cs: # 19| -1: [ParameterAccess] access to parameter n1 # 19| 1: [PropertyCall] access to property Value # 19| -1: [ParameterAccess] access to parameter n2 -# 21| 10: [CheckedMulOperator] checked * +# 21| 11: [CheckedMulOperator] checked * # 21| -1: [TypeMention] Number #-----| 2: (Parameters) # 21| 0: [Parameter] n1 @@ -85,7 +85,7 @@ CheckedOperators.cs: # 22| -1: [ParameterAccess] access to parameter n1 # 22| 1: [PropertyCall] access to property Value # 22| -1: [ParameterAccess] access to parameter n2 -# 24| 11: [MulOperator] * +# 24| 12: [MulOperator] * # 24| -1: [TypeMention] Number #-----| 2: (Parameters) # 24| 0: [Parameter] n1 @@ -99,7 +99,7 @@ CheckedOperators.cs: # 25| -1: [ParameterAccess] access to parameter n1 # 25| 1: [PropertyCall] access to property Value # 25| -1: [ParameterAccess] access to parameter n2 -# 27| 12: [CheckedDivOperator] checked / +# 27| 13: [CheckedDivOperator] checked / # 27| -1: [TypeMention] Number #-----| 2: (Parameters) # 27| 0: [Parameter] n1 @@ -114,7 +114,7 @@ CheckedOperators.cs: # 28| -1: [ParameterAccess] access to parameter n1 # 28| 1: [PropertyCall] access to property Value # 28| -1: [ParameterAccess] access to parameter n2 -# 30| 13: [DivOperator] / +# 30| 14: [DivOperator] / # 30| -1: [TypeMention] Number #-----| 2: (Parameters) # 30| 0: [Parameter] n1 @@ -128,7 +128,7 @@ CheckedOperators.cs: # 31| -1: [ParameterAccess] access to parameter n1 # 31| 1: [PropertyCall] access to property Value # 31| -1: [ParameterAccess] access to parameter n2 -# 33| 14: [CheckedMinusOperator] checked - +# 33| 15: [CheckedMinusOperator] checked - # 33| -1: [TypeMention] Number #-----| 2: (Parameters) # 33| 0: [Parameter] n @@ -139,7 +139,7 @@ CheckedOperators.cs: # 34| 0: [UnaryMinusExpr] -... # 34| 0: [PropertyCall] access to property Value # 34| -1: [ParameterAccess] access to parameter n -# 36| 15: [MinusOperator] - +# 36| 16: [MinusOperator] - # 36| -1: [TypeMention] Number #-----| 2: (Parameters) # 36| 0: [Parameter] n @@ -149,7 +149,7 @@ CheckedOperators.cs: # 37| 0: [UnaryMinusExpr] -... # 37| 0: [PropertyCall] access to property Value # 37| -1: [ParameterAccess] access to parameter n -# 39| 16: [CheckedIncrementOperator] checked ++ +# 39| 17: [CheckedIncrementOperator] checked ++ # 39| -1: [TypeMention] Number #-----| 2: (Parameters) # 39| 0: [Parameter] n @@ -161,7 +161,7 @@ CheckedOperators.cs: # 40| 0: [PropertyCall] access to property Value # 40| -1: [ParameterAccess] access to parameter n # 40| 1: [IntLiteral] 1 -# 42| 17: [IncrementOperator] ++ +# 42| 18: [IncrementOperator] ++ # 42| -1: [TypeMention] Number #-----| 2: (Parameters) # 42| 0: [Parameter] n @@ -172,7 +172,7 @@ CheckedOperators.cs: # 43| 0: [PropertyCall] access to property Value # 43| -1: [ParameterAccess] access to parameter n # 43| 1: [IntLiteral] 1 -# 45| 18: [CheckedDecrementOperator] checked -- +# 45| 19: [CheckedDecrementOperator] checked -- # 45| -1: [TypeMention] Number #-----| 2: (Parameters) # 45| 0: [Parameter] n @@ -184,7 +184,7 @@ CheckedOperators.cs: # 46| 0: [PropertyCall] access to property Value # 46| -1: [ParameterAccess] access to parameter n # 46| 1: [IntLiteral] 1 -# 48| 19: [DecrementOperator] -- +# 48| 20: [DecrementOperator] -- # 48| -1: [TypeMention] Number #-----| 2: (Parameters) # 48| 0: [Parameter] n @@ -195,7 +195,7 @@ CheckedOperators.cs: # 49| 0: [PropertyCall] access to property Value # 49| -1: [ParameterAccess] access to parameter n # 49| 1: [IntLiteral] 1 -# 51| 20: [ExplicitConversionOperator] explicit conversion +# 51| 21: [ExplicitConversionOperator] explicit conversion # 51| -1: [TypeMention] short #-----| 2: (Parameters) # 51| 0: [Parameter] n @@ -205,7 +205,7 @@ CheckedOperators.cs: # 52| 0: [TypeMention] short # 52| 1: [PropertyCall] access to property Value # 52| -1: [ParameterAccess] access to parameter n -# 54| 21: [CheckedExplicitConversionOperator] checked explicit conversion +# 54| 22: [CheckedExplicitConversionOperator] checked explicit conversion # 54| -1: [TypeMention] short #-----| 2: (Parameters) # 54| 0: [Parameter] n @@ -240,22 +240,22 @@ FileScoped1.cs: # 19| [Enum] E1 # 21| [DelegateType] D1 # 23| [RecordClass] R1 -# 23| 12: [NEOperator] != +# 23| 13: [NEOperator] != #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 13: [EQOperator] == +# 23| 14: [EQOperator] == #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 14: [Property] EqualityContract +# 23| 15: [Property] EqualityContract # 23| 3: [Getter] get_EqualityContract # 25| [RecordStruct] RS1 -# 25| 10: [NEOperator] != +# 25| 11: [NEOperator] != #-----| 2: (Parameters) # 25| 0: [Parameter] left # 25| 1: [Parameter] right -# 25| 11: [EQOperator] == +# 25| 12: [EQOperator] == #-----| 2: (Parameters) # 25| 0: [Parameter] left # 25| 1: [Parameter] right @@ -280,22 +280,22 @@ FileScoped2.cs: # 17| [Enum] E1 # 19| [DelegateType] D1 # 21| [RecordClass] R1 -# 21| 12: [NEOperator] != +# 21| 13: [NEOperator] != #-----| 2: (Parameters) # 21| 0: [Parameter] left # 21| 1: [Parameter] right -# 21| 13: [EQOperator] == +# 21| 14: [EQOperator] == #-----| 2: (Parameters) # 21| 0: [Parameter] left # 21| 1: [Parameter] right -# 21| 14: [Property] EqualityContract +# 21| 15: [Property] EqualityContract # 21| 3: [Getter] get_EqualityContract # 23| [RecordStruct] RS1 -# 23| 10: [NEOperator] != +# 23| 11: [NEOperator] != #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 11: [EQOperator] == +# 23| 12: [EQOperator] == #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right @@ -333,21 +333,21 @@ GenericAttribute.cs: #-----| 3: (Base types) # 7| 0: [TypeMention] Attribute # 9| [Class] TestGenericAttribute -# 13| 5: [Method] M1 +# 13| 6: [Method] M1 # 13| -1: [TypeMention] Void #-----| 0: (Attributes) # 12| 1: [GenericDefaultAttribute] [MyGeneric(...)] # 12| 0: [TypeMention] MyGenericAttribute # 12| 1: [TypeMention] int # 13| 4: [BlockStmt] {...} -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] Void #-----| 0: (Attributes) # 15| 1: [GenericDefaultAttribute] [MyGeneric(...)] # 15| 0: [TypeMention] MyGenericAttribute # 15| 1: [TypeMention] string # 16| 4: [BlockStmt] {...} -# 19| 7: [Method] M3 +# 19| 8: [Method] M3 # 19| -1: [TypeMention] Void #-----| 0: (Attributes) # 18| 1: [GenericDefaultAttribute] [MyGeneric2(...)] @@ -355,7 +355,7 @@ GenericAttribute.cs: # 18| 1: [TypeMention] int # 18| 2: [TypeMention] string # 19| 4: [BlockStmt] {...} -# 22| 8: [Method] M4 +# 22| 9: [Method] M4 # 22| -1: [TypeMention] int #-----| 0: (Attributes) # 21| 1: [GenericReturnAttribute] [return: MyGeneric(...)] @@ -366,7 +366,7 @@ GenericAttribute.cs: # 22| 0: [IntLiteral] 0 ListPattern.cs: # 3| [Class] ListPattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -430,7 +430,7 @@ ListPattern.cs: # 13| 1: [ConstantPatternExpr,IntLiteral] 5 # 13| 2: [ConstantPatternExpr,IntLiteral] 2 # 13| 1: [BlockStmt] {...} -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] Void #-----| 2: (Parameters) # 16| 0: [Parameter] x @@ -482,19 +482,19 @@ ListPattern.cs: # 35| 15: [BreakStmt] break; NameofScope.cs: # 3| [Class] MyAttributeTestClass -# 5| 5: [Class] MyAttribute +# 5| 6: [Class] MyAttribute #-----| 3: (Base types) # 5| 0: [TypeMention] Attribute -# 7| 4: [Field] S +# 7| 5: [Field] S # 7| -1: [TypeMention] string -# 8| 5: [InstanceConstructor] MyAttribute +# 8| 6: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 8| 0: [Parameter] s # 8| -1: [TypeMention] string # 8| 4: [AssignExpr] ... = ... # 8| 0: [FieldAccess] access to field S # 8| 1: [ParameterAccess] access to parameter s -# 12| 6: [Method] M1`1 +# 12| 7: [Method] M1`1 # 12| -1: [TypeMention] Void #-----| 0: (Attributes) # 11| 1: [DefaultAttribute] [My(...)] @@ -508,7 +508,7 @@ NameofScope.cs: # 12| 0: [Parameter] x # 12| -1: [TypeMention] string # 12| 4: [BlockStmt] {...} -# 15| 7: [Method] M2 +# 15| 8: [Method] M2 # 15| -1: [TypeMention] string #-----| 0: (Attributes) # 14| 1: [ReturnAttribute] [return: My(...)] @@ -519,7 +519,7 @@ NameofScope.cs: # 15| 0: [Parameter] y # 15| -1: [TypeMention] string # 15| 4: [ParameterAccess] access to parameter y -# 17| 8: [Method] M3 +# 17| 9: [Method] M3 # 17| -1: [TypeMention] object #-----| 2: (Parameters) # 17| 0: [Parameter] z @@ -530,7 +530,7 @@ NameofScope.cs: # 17| 0: [NameOfExpr] nameof(...) # 17| 0: [ParameterAccess] access to parameter z # 17| 4: [ParameterAccess] access to parameter z -# 19| 9: [Method] M4`1 +# 19| 10: [Method] M4`1 # 19| -1: [TypeMention] object #-----| 1: (Type parameters) # 19| 0: [TypeParameter] S @@ -546,7 +546,7 @@ NameofScope.cs: # 19| 4: [ParameterAccess] access to parameter z NativeInt.cs: # 1| [Class] NativeInt -# 3| 5: [Method] M1 +# 3| 6: [Method] M1 # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -579,7 +579,7 @@ NativeInt.cs: # 9| 1: [IntLiteral] 0 Operators.cs: # 2| [Class] MyClass -# 4| 5: [Method] M1 +# 4| 6: [Method] M1 # 4| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} # 6| 0: [LocalVariableDeclStmt] ... ...; @@ -618,7 +618,7 @@ Operators.cs: # 13| 0: [LocalVariableAccess] access to local variable z # 13| 1: [IntLiteral] 5 # 17| [Class] MyOperatorClass -# 19| 5: [UnsignedRightShiftOperator] >>> +# 19| 6: [UnsignedRightShiftOperator] >>> # 19| -1: [TypeMention] MyOperatorClass #-----| 2: (Parameters) # 19| 0: [Parameter] a @@ -630,7 +630,7 @@ Operators.cs: # 19| 0: [NullLiteral] null PatternMatchSpan.cs: # 3| [Class] PatternMatchSpan -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Void #-----| 2: (Parameters) # 6| 0: [Parameter] x1 @@ -642,7 +642,7 @@ PatternMatchSpan.cs: # 8| 0: [ParameterAccess] access to parameter x1 # 8| 1: [ConstantPatternExpr,StringLiteralUtf16] "ABC" # 8| 1: [BlockStmt] {...} -# 11| 6: [Method] M2 +# 11| 7: [Method] M2 # 11| -1: [TypeMention] Void #-----| 2: (Parameters) # 11| 0: [Parameter] x2 @@ -687,7 +687,7 @@ RelaxedShift.cs: # 7| -1: [TypeMention] TOther # 10| [Class] Number #-----| 3: (Base types) -# 12| 5: [LeftShiftOperator] << +# 12| 6: [LeftShiftOperator] << # 12| -1: [TypeMention] Number #-----| 2: (Parameters) # 12| 0: [Parameter] value @@ -695,7 +695,7 @@ RelaxedShift.cs: # 12| 1: [Parameter] shiftAmount # 12| -1: [TypeMention] string # 12| 4: [ParameterAccess] access to parameter value -# 14| 6: [RightShiftOperator] >> +# 14| 7: [RightShiftOperator] >> # 14| -1: [TypeMention] Number #-----| 2: (Parameters) # 14| 0: [Parameter] value @@ -703,7 +703,7 @@ RelaxedShift.cs: # 14| 1: [Parameter] shiftAmount # 14| -1: [TypeMention] string # 14| 4: [ParameterAccess] access to parameter value -# 16| 7: [UnsignedRightShiftOperator] >>> +# 16| 8: [UnsignedRightShiftOperator] >>> # 16| -1: [TypeMention] Number #-----| 2: (Parameters) # 16| 0: [Parameter] value @@ -712,7 +712,7 @@ RelaxedShift.cs: # 16| -1: [TypeMention] string # 16| 4: [ParameterAccess] access to parameter value # 19| [Class] TestRelaxedShift -# 21| 5: [Method] M1 +# 21| 6: [Method] M1 # 21| -1: [TypeMention] Void # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; @@ -756,23 +756,23 @@ RelaxedShift.cs: # 30| 1: [StringLiteralUtf16] "3" RequiredMembers.cs: # 4| [Class] ClassRequiredMembers -# 6| 4: [Field] RequiredField +# 6| 5: [Field] RequiredField # 6| -1: [TypeMention] object -# 7| 5: [Property] RequiredProperty +# 7| 6: [Property] RequiredProperty # 7| -1: [TypeMention] string # 7| 3: [Getter] get_RequiredProperty # 7| 4: [Setter] set_RequiredProperty #-----| 2: (Parameters) # 7| 0: [Parameter] value -# 8| 6: [Property] VirtualProperty +# 8| 7: [Property] VirtualProperty # 8| -1: [TypeMention] object # 8| 3: [Getter] get_VirtualProperty # 8| 4: [Setter] set_VirtualProperty #-----| 2: (Parameters) # 8| 0: [Parameter] value -# 10| 7: [InstanceConstructor] ClassRequiredMembers +# 10| 8: [InstanceConstructor] ClassRequiredMembers # 10| 4: [BlockStmt] {...} -# 13| 8: [InstanceConstructor] ClassRequiredMembers +# 13| 9: [InstanceConstructor] ClassRequiredMembers #-----| 0: (Attributes) # 12| 1: [DefaultAttribute] [SetsRequiredMembers(...)] # 12| 0: [TypeMention] SetsRequiredMembersAttribute @@ -793,16 +793,16 @@ RequiredMembers.cs: # 20| [Class] ClassRequiredMembersSub #-----| 3: (Base types) # 20| 0: [TypeMention] ClassRequiredMembers -# 22| 4: [Property] VirtualProperty +# 22| 5: [Property] VirtualProperty # 22| -1: [TypeMention] object # 22| 3: [Getter] get_VirtualProperty # 22| 4: [Setter] set_VirtualProperty #-----| 2: (Parameters) # 22| 0: [Parameter] value -# 24| 5: [InstanceConstructor] ClassRequiredMembersSub +# 24| 6: [InstanceConstructor] ClassRequiredMembersSub # 24| 3: [ConstructorInitializer] call to constructor ClassRequiredMembers # 24| 4: [BlockStmt] {...} -# 27| 6: [InstanceConstructor] ClassRequiredMembersSub +# 27| 7: [InstanceConstructor] ClassRequiredMembersSub #-----| 0: (Attributes) # 26| 1: [DefaultAttribute] [SetsRequiredMembers(...)] # 26| 0: [TypeMention] SetsRequiredMembersAttribute @@ -822,24 +822,24 @@ RequiredMembers.cs: # 29| 0: [PropertyCall] access to property VirtualProperty # 29| 1: [ParameterAccess] access to parameter virtualProperty # 33| [RecordClass] RecordRequiredMembers -# 33| 12: [NEOperator] != +# 33| 13: [NEOperator] != #-----| 2: (Parameters) # 33| 0: [Parameter] left # 33| 1: [Parameter] right -# 33| 13: [EQOperator] == +# 33| 14: [EQOperator] == #-----| 2: (Parameters) # 33| 0: [Parameter] left # 33| 1: [Parameter] right -# 33| 14: [Property] EqualityContract +# 33| 15: [Property] EqualityContract # 33| 3: [Getter] get_EqualityContract -# 35| 15: [Property] X +# 35| 16: [Property] X # 35| -1: [TypeMention] object # 35| 3: [Getter] get_X # 35| 4: [Setter] set_X #-----| 2: (Parameters) # 35| 0: [Parameter] value # 38| [Struct] StructRequiredMembers -# 40| 5: [Property] Y +# 40| 6: [Property] Y # 40| -1: [TypeMention] string # 40| 3: [Getter] get_Y # 40| 4: [Setter] set_Y @@ -849,7 +849,7 @@ Scoped.cs: # 1| [Struct] S1 # 2| [RefStruct] S2 # 7| [Class] ScopedModifierTest -# 9| 5: [Method] M1 +# 9| 6: [Method] M1 # 9| -1: [TypeMention] int #-----| 2: (Parameters) # 9| 0: [Parameter] x1 @@ -860,7 +860,7 @@ Scoped.cs: # 13| 0: [ReturnStmt] return ...; # 13| 0: [RefExpr] ref ... # 13| 0: [ParameterAccess] access to parameter y1 -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] int #-----| 2: (Parameters) # 16| 0: [Parameter] x2 @@ -875,7 +875,7 @@ Scoped.cs: # 21| 1: [ReturnStmt] return ...; # 21| 0: [RefExpr] ref ... # 21| 0: [ParameterAccess] access to parameter y2 -# 24| 7: [Method] M3 +# 24| 8: [Method] M3 # 24| -1: [TypeMention] int #-----| 2: (Parameters) # 24| 0: [Parameter] x3 @@ -883,7 +883,7 @@ Scoped.cs: # 25| 4: [BlockStmt] {...} # 27| 0: [ReturnStmt] return ...; # 27| 0: [ParameterAccess] access to parameter x3 -# 30| 8: [Method] M4 +# 30| 9: [Method] M4 # 30| -1: [TypeMention] S1 #-----| 2: (Parameters) # 30| 0: [Parameter] x4 @@ -891,7 +891,7 @@ Scoped.cs: # 31| 4: [BlockStmt] {...} # 33| 0: [ReturnStmt] return ...; # 33| 0: [ParameterAccess] access to parameter x4 -# 36| 9: [Method] M5 +# 36| 10: [Method] M5 # 36| -1: [TypeMention] S2 #-----| 2: (Parameters) # 36| 0: [Parameter] x5 @@ -900,7 +900,7 @@ Scoped.cs: # 40| 0: [ReturnStmt] return ...; # 40| 0: [ObjectCreation] object creation of type S2 # 40| 0: [TypeMention] S2 -# 43| 10: [Method] M6 +# 43| 11: [Method] M6 # 43| -1: [TypeMention] S2 #-----| 2: (Parameters) # 43| 0: [Parameter] x6 @@ -909,7 +909,7 @@ Scoped.cs: # 47| 0: [ReturnStmt] return ...; # 47| 0: [ObjectCreation] object creation of type S2 # 47| 0: [TypeMention] S2 -# 50| 11: [Method] Locals +# 50| 12: [Method] Locals # 50| -1: [TypeMention] S2 # 51| 4: [BlockStmt] {...} # 52| 0: [LocalVariableDeclStmt] ... ...; @@ -928,7 +928,7 @@ Scoped.cs: # 56| 0: [LocalVariableAccess] access to local variable y7 SignAnalysis.cs: # 1| [Class] MySignAnalysis -# 4| 5: [Method] UnsignedRightShiftSign +# 4| 6: [Method] UnsignedRightShiftSign # 4| -1: [TypeMention] Void #-----| 2: (Parameters) # 4| 0: [Parameter] x @@ -1109,27 +1109,27 @@ StaticInterfaceMembers.cs: # 23| 0: [TypeMention] T # 26| [Class] Complex #-----| 3: (Base types) -# 28| 4: [Property] Real +# 28| 5: [Property] Real # 28| -1: [TypeMention] double # 28| 2: [DoubleLiteral] 0 # 28| 3: [Getter] get_Real # 28| 4: [Setter] set_Real #-----| 2: (Parameters) # 28| 0: [Parameter] value -# 29| 5: [Property] Imaginary +# 29| 6: [Property] Imaginary # 29| -1: [TypeMention] double # 29| 2: [DoubleLiteral] 0 # 29| 3: [Getter] get_Imaginary # 29| 4: [Setter] set_Imaginary #-----| 2: (Parameters) # 29| 0: [Parameter] value -# 31| 6: [InstanceConstructor] Complex +# 31| 7: [InstanceConstructor] Complex # 31| 4: [BlockStmt] {...} -# 33| 7: [Method] Zero +# 33| 8: [Method] Zero # 33| -1: [TypeMention] Complex # 33| 4: [ObjectCreation] object creation of type Complex # 33| 0: [TypeMention] Complex -# 35| 8: [IncrementOperator] ++ +# 35| 9: [IncrementOperator] ++ # 35| -1: [TypeMention] Complex #-----| 2: (Parameters) # 35| 0: [Parameter] other @@ -1147,7 +1147,7 @@ StaticInterfaceMembers.cs: # 36| 0: [PropertyCall] access to property Imaginary # 36| 1: [PropertyCall] access to property Imaginary # 36| -1: [ParameterAccess] access to parameter other -# 38| 9: [DecrementOperator] -- +# 38| 10: [DecrementOperator] -- # 38| -1: [TypeMention] Complex #-----| 2: (Parameters) # 38| 0: [Parameter] other @@ -1165,7 +1165,7 @@ StaticInterfaceMembers.cs: # 39| 0: [PropertyCall] access to property Imaginary # 39| 1: [PropertyCall] access to property Imaginary # 39| -1: [ParameterAccess] access to parameter other -# 41| 10: [AddOperator] + +# 41| 11: [AddOperator] + # 41| -1: [TypeMention] Complex #-----| 2: (Parameters) # 41| 0: [Parameter] left @@ -1189,7 +1189,7 @@ StaticInterfaceMembers.cs: # 42| -1: [ParameterAccess] access to parameter left # 42| 1: [PropertyCall] access to property Imaginary # 42| -1: [ParameterAccess] access to parameter right -# 44| 11: [SubOperator] - +# 44| 12: [SubOperator] - # 44| -1: [TypeMention] Complex #-----| 2: (Parameters) # 44| 0: [Parameter] left @@ -1213,7 +1213,7 @@ StaticInterfaceMembers.cs: # 45| -1: [ParameterAccess] access to parameter left # 45| 1: [PropertyCall] access to property Imaginary # 45| -1: [ParameterAccess] access to parameter right -# 47| 12: [ExplicitConversionOperator] explicit conversion +# 47| 13: [ExplicitConversionOperator] explicit conversion # 47| -1: [TypeMention] int #-----| 2: (Parameters) # 47| 0: [Parameter] n @@ -1223,7 +1223,7 @@ StaticInterfaceMembers.cs: # 47| 0: [TypeMention] int # 47| 1: [PropertyCall] access to property Real # 47| -1: [ParameterAccess] access to parameter n -# 49| 13: [ExplicitConversionOperator] explicit conversion +# 49| 14: [ExplicitConversionOperator] explicit conversion # 49| -1: [TypeMention] short #-----| 2: (Parameters) # 49| 0: [Parameter] n @@ -1233,7 +1233,7 @@ StaticInterfaceMembers.cs: # 49| 0: [TypeMention] short # 49| 1: [PropertyCall] access to property Real # 49| -1: [ParameterAccess] access to parameter n -# 51| 14: [Method] Inc +# 51| 15: [Method] Inc # 51| -1: [TypeMention] INumber # 51| 1: [TypeMention] Complex # 51| -1: [TypeMention] Complex @@ -1253,7 +1253,7 @@ StaticInterfaceMembers.cs: # 52| 0: [PropertyCall] access to property Imaginary # 52| 1: [PropertyCall] access to property Imaginary # 52| -1: [ParameterAccess] access to parameter other -# 54| 15: [Method] Dec +# 54| 16: [Method] Dec # 54| -1: [TypeMention] INumber # 54| 1: [TypeMention] Complex # 54| -1: [TypeMention] Complex @@ -1273,7 +1273,7 @@ StaticInterfaceMembers.cs: # 55| 0: [PropertyCall] access to property Imaginary # 55| 1: [PropertyCall] access to property Imaginary # 55| -1: [ParameterAccess] access to parameter other -# 57| 16: [Method] Add +# 57| 17: [Method] Add # 57| -1: [TypeMention] Complex #-----| 2: (Parameters) # 57| 0: [Parameter] left @@ -1297,7 +1297,7 @@ StaticInterfaceMembers.cs: # 58| -1: [ParameterAccess] access to parameter left # 58| 1: [PropertyCall] access to property Imaginary # 58| -1: [ParameterAccess] access to parameter right -# 60| 17: [Method] Subtract +# 60| 18: [Method] Subtract # 60| -1: [TypeMention] Complex #-----| 2: (Parameters) # 60| 0: [Parameter] left @@ -1323,7 +1323,7 @@ StaticInterfaceMembers.cs: # 61| -1: [ParameterAccess] access to parameter right Strings.cs: # 3| [Class] MyTestClass -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] string #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -1342,7 +1342,7 @@ Strings.cs: # 11| 0: [DiscardPatternExpr] _ # 11| 2: [StringLiteralUtf16] "something else" # 12| 2: [StringLiteralUtf16] "." -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 18| 0: [LocalVariableDeclStmt] ... ...; @@ -1377,7 +1377,7 @@ Strings.cs: # 35| 3: [InterpolatedStringInsertExpr] {...} # 35| 0: [LocalVariableAccess] access to local variable message2 # 35| 4: [StringLiteralUtf16] "}" -# 40| 7: [Method] M3 +# 40| 8: [Method] M3 # 40| -1: [TypeMention] Void # 41| 4: [BlockStmt] {...} # 43| 0: [LocalVariableDeclStmt] ... ...; @@ -1407,30 +1407,30 @@ Struct.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] MyEmptyClass # 5| 2: [RefStruct] RefStruct -# 7| 5: [Field] MyInt +# 7| 6: [Field] MyInt # 7| -1: [TypeMention] int -# 8| 6: [Field] MyByte +# 8| 7: [Field] MyByte # 8| -1: [TypeMention] byte -# 9| 7: [Field] MyObject +# 9| 8: [Field] MyObject # 9| -1: [TypeMention] object -# 10| 8: [Field] MyEmptyClass +# 10| 9: [Field] MyEmptyClass # 10| -1: [TypeMention] MyEmptyClass -# 11| 9: [Field] MyReadonlyByte +# 11| 10: [Field] MyReadonlyByte # 11| -1: [TypeMention] byte -# 12| 10: [Field] MyReadonlyObject +# 12| 11: [Field] MyReadonlyObject # 12| -1: [TypeMention] object -# 13| 11: [Field] MyReadonlyString +# 13| 12: [Field] MyReadonlyString # 13| -1: [TypeMention] string StructDefault.cs: # 1| [Class] MyEmptyClass # 2| [Struct] StructDefaultValue -# 4| 5: [Field] X +# 4| 6: [Field] X # 4| -1: [TypeMention] int -# 5| 6: [Field] Y +# 5| 7: [Field] Y # 5| -1: [TypeMention] int -# 6| 7: [Field] Z +# 6| 8: [Field] Z # 6| -1: [TypeMention] MyEmptyClass -# 8| 8: [InstanceConstructor] StructDefaultValue +# 8| 9: [InstanceConstructor] StructDefaultValue #-----| 2: (Parameters) # 8| 0: [Parameter] x # 8| -1: [TypeMention] int diff --git a/csharp/ql/test/library-tests/csharp6/PrintAst.expected b/csharp/ql/test/library-tests/csharp6/PrintAst.expected index 424a18bcb02..78747650190 100644 --- a/csharp/ql/test/library-tests/csharp6/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp6/PrintAst.expected @@ -1,17 +1,17 @@ csharp6.cs: # 10| [Class] TestCSharp6 -# 12| 6: [Property] Value +# 12| 7: [Property] Value # 12| -1: [TypeMention] int # 15| 2: [IntLiteral] 20 # 14| 3: [Getter] get_Value -# 17| 7: [Method] Fn +# 17| 8: [Method] Fn # 17| -1: [TypeMention] Void #-----| 2: (Parameters) # 17| 0: [Parameter] x # 17| -1: [TypeMention] string # 17| 4: [MethodCall] call to method WriteLine # 17| 0: [ParameterAccess] access to parameter x -# 19| 8: [Method] Main +# 19| 9: [Method] Main # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 21| 0: [TryStmt] try {...} ... @@ -112,7 +112,7 @@ csharp6.cs: # 37| 1: [IntLiteral] 30 # 40| 3: [GeneralCatchClause] catch {...} # 41| 1: [BlockStmt] {...} -# 45| 9: [EQOperator] == +# 45| 10: [EQOperator] == # 45| -1: [TypeMention] bool #-----| 2: (Parameters) # 45| 0: [Parameter] t1 @@ -120,7 +120,7 @@ csharp6.cs: # 45| 1: [Parameter] t2 # 45| -1: [TypeMention] TestCSharp6 # 45| 4: [BoolLiteral] true -# 46| 10: [NEOperator] != +# 46| 11: [NEOperator] != # 46| -1: [TypeMention] bool #-----| 2: (Parameters) # 46| 0: [Parameter] t1 @@ -128,11 +128,11 @@ csharp6.cs: # 46| 1: [Parameter] t2 # 46| -1: [TypeMention] TestCSharp6 # 46| 4: [BoolLiteral] false -# 48| 11: [Property] ExprProperty +# 48| 12: [Property] ExprProperty # 48| -1: [TypeMention] int # 48| 3: [Getter] get_ExprProperty # 48| 4: [IntLiteral] 3 -# 50| 12: [Indexer] Item +# 50| 13: [Indexer] Item # 50| -1: [TypeMention] int #-----| 1: (Parameters) # 50| 0: [Parameter] i @@ -142,12 +142,12 @@ csharp6.cs: # 50| 0: [Parameter] i # 50| 4: [ParameterAccess] access to parameter i # 53| [Class] IndexInitializers -# 55| 5: [Class] Compound -# 57| 5: [Field] DictionaryField +# 55| 6: [Class] Compound +# 57| 6: [Field] DictionaryField # 57| -1: [TypeMention] Dictionary # 57| 1: [TypeMention] int # 57| 2: [TypeMention] string -# 58| 6: [Property] DictionaryProperty +# 58| 7: [Property] DictionaryProperty # 58| -1: [TypeMention] Dictionary # 58| 1: [TypeMention] int # 58| 2: [TypeMention] string @@ -155,27 +155,27 @@ csharp6.cs: # 58| 4: [Setter] set_DictionaryProperty #-----| 2: (Parameters) # 58| 0: [Parameter] value -# 59| 7: [Field] ArrayField +# 59| 8: [Field] ArrayField # 59| -1: [TypeMention] String[] # 59| 1: [TypeMention] string -# 60| 8: [Property] ArrayProperty +# 60| 9: [Property] ArrayProperty # 60| -1: [TypeMention] String[] # 60| 1: [TypeMention] string # 60| 3: [Getter] get_ArrayProperty # 60| 4: [Setter] set_ArrayProperty #-----| 2: (Parameters) # 60| 0: [Parameter] value -# 61| 9: [Field] ArrayField2 +# 61| 10: [Field] ArrayField2 # 61| -1: [TypeMention] String[,] # 61| 1: [TypeMention] string -# 62| 10: [Property] ArrayProperty2 +# 62| 11: [Property] ArrayProperty2 # 62| -1: [TypeMention] String[,] # 62| 1: [TypeMention] string # 62| 3: [Getter] get_ArrayProperty2 # 62| 4: [Setter] set_ArrayProperty2 #-----| 2: (Parameters) # 62| 0: [Parameter] value -# 65| 6: [Method] Test +# 65| 7: [Method] Test # 65| -1: [TypeMention] Void # 66| 4: [BlockStmt] {...} # 68| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected index 7f4e1467218..b33c09db0ec 100644 --- a/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected @@ -1,6 +1,6 @@ csharp71.cs: # 1| [Class] DefaultLiterals -# 3| 5: [Method] f +# 3| 6: [Method] f # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -50,7 +50,7 @@ csharp71.cs: # 15| 1: [CastExpr] (...) ... # 15| 1: [DefaultValueExpr] default # 19| [Class] IsConstants -# 21| 5: [Method] f +# 21| 6: [Method] f # 21| -1: [TypeMention] Void # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected index 834b03b4471..bbfb098c3af 100644 --- a/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected @@ -1,13 +1,13 @@ csharp72.cs: # 3| [Class] InModifiers -# 5| 5: [Struct] S -# 9| 6: [Method] F +# 5| 6: [Struct] S +# 9| 7: [Method] F # 9| -1: [TypeMention] Void #-----| 2: (Parameters) # 9| 0: [Parameter] s # 9| -1: [TypeMention] S # 10| 4: [BlockStmt] {...} -# 13| 7: [Method] CallF +# 13| 8: [Method] CallF # 13| -1: [TypeMention] Void # 14| 4: [BlockStmt] {...} # 15| 0: [LocalVariableDeclStmt] ... ...; @@ -20,26 +20,26 @@ csharp72.cs: # 16| 0: [MethodCall] call to method F # 16| 0: [LocalVariableAccess] access to local variable s # 20| [Class] RefReadonlyReturns -# 22| 5: [Field] s +# 22| 6: [Field] s # 22| -1: [TypeMention] int -# 24| 6: [Method] F +# 24| 7: [Method] F # 24| -1: [TypeMention] int # 25| 4: [BlockStmt] {...} # 26| 0: [ReturnStmt] return ...; # 26| 0: [RefExpr] ref ... # 26| 0: [FieldAccess] access to field s -# 29| 7: [DelegateType] Del +# 29| 8: [DelegateType] Del # 32| [Struct] ReadonlyStruct # 36| [RefStruct] RefStruct # 40| [RefStruct] ReadonlyRefStruct # 44| [Class] NumericLiterals -# 46| 5: [Field] binaryValue +# 46| 6: [Field] binaryValue # 46| -1: [TypeMention] int # 46| 1: [IntLiteral] 85 # 49| [Class] PrivateProtected -# 51| 5: [Field] X +# 51| 6: [Field] X # 51| -1: [TypeMention] int # 51| 1: [IntLiteral] 1 -# 53| 6: [Method] F +# 53| 7: [Method] F # 53| -1: [TypeMention] Void # 53| 4: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected index 70bfee85c04..29ad30dc223 100644 --- a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected @@ -1,6 +1,6 @@ csharp73.cs: # 3| [Class] StackAllocs -# 5| 5: [Method] Fn +# 5| 6: [Method] Fn # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -58,7 +58,7 @@ csharp73.cs: # 12| 1: [IntLiteral] 2 # 12| 2: [IntLiteral] 3 # 16| [Class] PinnedReference -# 18| 5: [Method] F +# 18| 6: [Method] F # 18| -1: [TypeMention] Void # 19| 4: [BlockStmt] {...} # 20| 0: [LocalVariableDeclStmt] ... ...; @@ -91,7 +91,7 @@ csharp73.cs: #-----| 1: (Type parameters) # 38| 0: [TypeParameter] T # 42| [Class] ExpressionVariables -# 44| 4: [InstanceConstructor] ExpressionVariables +# 44| 5: [InstanceConstructor] ExpressionVariables #-----| 2: (Parameters) # 44| 0: [Parameter] x # 44| -1: [TypeMention] int @@ -100,7 +100,7 @@ csharp73.cs: # 46| 0: [AssignExpr] ... = ... # 46| 0: [ParameterAccess] access to parameter x # 46| 1: [IntLiteral] 5 -# 49| 5: [InstanceConstructor] ExpressionVariables +# 49| 6: [InstanceConstructor] ExpressionVariables # 49| 3: [ConstructorInitializer] call to constructor ExpressionVariables # 49| 0: [LocalVariableAccess,LocalVariableDeclExpr] Int32 x # 50| 4: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/csharp7/PrintAst.expected b/csharp/ql/test/library-tests/csharp7/PrintAst.expected index bf0b07abbeb..47ab207bb55 100644 --- a/csharp/ql/test/library-tests/csharp7/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7/PrintAst.expected @@ -1,26 +1,26 @@ CSharp7.cs: # 5| [Class] Literals -# 7| 5: [Field] x +# 7| 6: [Field] x # 7| -1: [TypeMention] int # 7| 1: [IntLiteral] 11 -# 8| 6: [Field] y +# 8| 7: [Field] y # 8| -1: [TypeMention] int # 8| 1: [IntLiteral] 123456 -# 9| 7: [Field] z +# 9| 8: [Field] z # 9| -1: [TypeMention] int # 9| 1: [IntLiteral] 128 # 12| [Class] ExpressionBodiedMembers -# 14| 4: [Field] field +# 14| 5: [Field] field # 14| -1: [TypeMention] int # 14| 1: [IntLiteral] 0 -# 15| 5: [Method] Foo +# 15| 6: [Method] Foo # 15| -1: [TypeMention] int # 15| 4: [FieldAccess] access to field field -# 16| 6: [Property] P +# 16| 7: [Property] P # 16| -1: [TypeMention] int # 16| 3: [Getter] get_P # 16| 4: [IntLiteral] 5 -# 17| 7: [Property] Q +# 17| 8: [Property] Q # 17| -1: [TypeMention] int # 19| 3: [Getter] get_Q # 19| 4: [MethodCall] call to method Foo @@ -30,19 +30,19 @@ CSharp7.cs: # 20| 4: [AssignExpr] ... = ... # 20| 0: [FieldAccess] access to field field # 20| 1: [ParameterAccess] access to parameter value -# 22| 8: [InstanceConstructor] ExpressionBodiedMembers +# 22| 9: [InstanceConstructor] ExpressionBodiedMembers # 22| 3: [ConstructorInitializer] call to constructor ExpressionBodiedMembers # 22| 0: [IntLiteral] 1 # 22| 4: [BlockStmt] {...} -# 23| 9: [InstanceConstructor] ExpressionBodiedMembers +# 23| 10: [InstanceConstructor] ExpressionBodiedMembers #-----| 2: (Parameters) # 23| 0: [Parameter] x # 23| -1: [TypeMention] int # 23| 4: [MethodCall] call to method Foo -# 24| 10: [Destructor] ~ExpressionBodiedMembers +# 24| 11: [Destructor] ~ExpressionBodiedMembers # 24| 4: [MethodCall] call to method Foo # 27| [Class] ThrowExpr -# 29| 5: [Method] Throw +# 29| 6: [Method] Throw # 29| -1: [TypeMention] int #-----| 2: (Parameters) # 29| 0: [Parameter] i @@ -59,7 +59,7 @@ CSharp7.cs: # 31| -1: [TypeMention] ArgumentException # 31| 0: [StringLiteralUtf16] "i" # 35| [Class] OutVariables -# 37| 5: [Method] F +# 37| 6: [Method] F # 37| -1: [TypeMention] Void #-----| 2: (Parameters) # 37| 0: [Parameter] x @@ -69,7 +69,7 @@ CSharp7.cs: # 39| 0: [AssignExpr] ... = ... # 39| 0: [ParameterAccess] access to parameter x # 39| 1: [StringLiteralUtf16] "tainted" -# 42| 6: [Method] G +# 42| 7: [Method] G # 42| -1: [TypeMention] Void #-----| 2: (Parameters) # 42| 0: [Parameter] x @@ -81,7 +81,7 @@ CSharp7.cs: # 44| 0: [AssignExpr] ... = ... # 44| 0: [ParameterAccess] access to parameter y # 44| 1: [ParameterAccess] access to parameter x -# 47| 7: [Method] G +# 47| 8: [Method] G # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 49| 0: [ExprStmt] ...; @@ -116,7 +116,7 @@ CSharp7.cs: # 56| 0: [LocalVariableAccess] access to local variable t5 # 56| 1: [LocalVariableAccess] access to local variable t4 # 60| [Class] Tuples -# 62| 5: [Method] F +# 62| 6: [Method] F # 62| -1: [TypeMention] (int, int) # 62| 1: [TypeMention] int # 62| 2: [TypeMention] int @@ -125,7 +125,7 @@ CSharp7.cs: # 64| 0: [TupleExpr] (..., ...) # 64| 0: [IntLiteral] 1 # 64| 1: [IntLiteral] 2 -# 67| 6: [Method] Expressions +# 67| 7: [Method] Expressions # 67| -1: [TypeMention] Void # 68| 4: [BlockStmt] {...} # 69| 0: [ExprStmt] ...; @@ -203,7 +203,7 @@ CSharp7.cs: # 77| 1: [TupleExpr] (..., ...) # 77| 0: [StringLiteralUtf16] "" # 77| 1: [LocalVariableAccess] access to local variable x -# 80| 7: [Method] I +# 80| 8: [Method] I # 80| -1: [TypeMention] string #-----| 2: (Parameters) # 80| 0: [Parameter] x @@ -214,7 +214,7 @@ CSharp7.cs: # 82| -1: [TupleExpr] (..., ...) # 82| 0: [ParameterAccess] access to parameter x # 82| 1: [IntLiteral] 2 -# 85| 8: [Method] TaintFlow +# 85| 9: [Method] TaintFlow # 85| -1: [TypeMention] Void # 86| 4: [BlockStmt] {...} # 87| 0: [LocalVariableDeclStmt] ... ...; @@ -242,7 +242,7 @@ CSharp7.cs: # 90| 1: [MethodCall] call to method I # 90| 0: [FieldAccess] access to field Item1 # 90| -1: [LocalVariableAccess] access to local variable t1 -# 93| 9: [Method] TupleExprNode +# 93| 10: [Method] TupleExprNode # 93| -1: [TypeMention] Void # 94| 4: [BlockStmt] {...} # 95| 0: [LocalVariableDeclStmt] ... ...; @@ -261,7 +261,7 @@ CSharp7.cs: # 96| 1: [TupleExpr] (..., ...) # 96| 0: [StringLiteralUtf16] "TupleExprNode2" # 96| 1: [IntLiteral] 2 -# 99| 10: [Method] TupleMemberAccess +# 99| 11: [Method] TupleMemberAccess # 99| -1: [TypeMention] Void # 100| 4: [BlockStmt] {...} # 101| 0: [LocalVariableDeclStmt] ... ...; @@ -282,7 +282,7 @@ CSharp7.cs: # 102| 1: [TupleExpr] (..., ...) # 102| 0: [StringLiteralUtf16] "TupleMemberAccess2" # 102| 1: [IntLiteral] 1 -# 105| 11: [Method] DefUse +# 105| 12: [Method] DefUse # 105| -1: [TypeMention] Void # 106| 4: [BlockStmt] {...} # 107| 0: [ExprStmt] ...; @@ -361,7 +361,7 @@ CSharp7.cs: # 121| 0: [LocalVariableAccess] access to local variable m12 # 121| 1: [StringLiteralUtf16] "DefUse3" # 125| [Class] LocalFunctions -# 127| 5: [Method] Main +# 127| 6: [Method] Main # 127| -1: [TypeMention] int # 128| 4: [BlockStmt] {...} # 129| 0: [LocalFunctionStmt] f1(...) @@ -462,7 +462,7 @@ CSharp7.cs: # 154| 0: [LocalFunctionCall] call to local function f1 # 154| -1: [LocalFunctionAccess] access to local function f1 # 154| 0: [IntLiteral] 2 -# 157| 6: [Method] Generics +# 157| 7: [Method] Generics # 157| -1: [TypeMention] Void # 158| 4: [BlockStmt] {...} # 159| 0: [LocalFunctionStmt] f(...) @@ -517,7 +517,7 @@ CSharp7.cs: # 170| -1: [LocalFunctionAccess] access to local function h # 170| 0: [StringLiteralUtf16] "" # 170| 1: [BoolLiteral] true -# 173| 7: [Method] GlobalFlow +# 173| 8: [Method] GlobalFlow # 173| -1: [TypeMention] Void # 174| 4: [BlockStmt] {...} # 175| 0: [LocalVariableDeclStmt] ... ...; @@ -571,7 +571,7 @@ CSharp7.cs: # 182| -1: [LocalFunctionAccess] access to local function h # 182| 0: [LocalVariableAccess] access to local variable src # 186| [Class] Refs -# 188| 5: [Method] F1 +# 188| 6: [Method] F1 # 188| -1: [TypeMention] Void # 189| 4: [BlockStmt] {...} # 190| 0: [LocalVariableDeclStmt] ... ...; @@ -634,7 +634,7 @@ CSharp7.cs: # 199| 0: [MethodCall] call to method F2 # 199| 0: [LocalVariableAccess] access to local variable r1 # 199| 1: [IntLiteral] 3 -# 202| 6: [Method] F2 +# 202| 7: [Method] F2 # 202| -1: [TypeMention] int #-----| 2: (Parameters) # 202| 0: [Parameter] p @@ -652,12 +652,12 @@ CSharp7.cs: # 205| 1: [ReturnStmt] return ...; # 205| 0: [RefExpr] ref ... # 205| 0: [ParameterAccess] access to parameter p -# 208| 7: [DelegateType] RefFn +# 208| 8: [DelegateType] RefFn #-----| 2: (Parameters) # 208| 0: [Parameter] p # 208| -1: [TypeMention] int # 211| [Class] Discards -# 213| 5: [Method] f +# 213| 6: [Method] f # 213| -1: [TypeMention] (int, double) # 213| 1: [TypeMention] int # 213| 2: [TypeMention] double @@ -673,7 +673,7 @@ CSharp7.cs: # 216| 0: [TupleExpr] (..., ...) # 216| 0: [IntLiteral] 0 # 216| 1: [DoubleLiteral] 0 -# 219| 6: [Method] Test +# 219| 7: [Method] Test # 219| -1: [TypeMention] Void # 220| 4: [BlockStmt] {...} # 221| 0: [ExprStmt] ...; @@ -703,7 +703,7 @@ CSharp7.cs: # 224| 1: [MethodCall] call to method f # 224| 0: [LocalVariableAccess,LocalVariableDeclExpr] Boolean z # 228| [Class] Patterns -# 230| 5: [Method] Test +# 230| 6: [Method] Test # 230| -1: [TypeMention] Void # 231| 4: [BlockStmt] {...} # 232| 0: [LocalVariableDeclStmt] ... ...; @@ -839,7 +839,7 @@ CSharp7.cs: # 272| 0: [StringLiteralUtf16] "Something else" # 273| 23: [BreakStmt] break; # 278| [Class] ForeachStatements -# 280| 5: [Method] Test +# 280| 6: [Method] Test # 280| -1: [TypeMention] Void # 281| 4: [BlockStmt] {...} # 282| 0: [LocalVariableDeclStmt] ... ...; @@ -883,7 +883,7 @@ CSharp7.cs: # 289| 1: [LocalVariableAccess] access to local variable list # 289| 2: [BlockStmt] {...} # 293| [Class] ForLoops -# 295| 5: [Method] Test +# 295| 6: [Method] Test # 295| -1: [TypeMention] Void # 296| 4: [BlockStmt] {...} # 297| 0: [ForStmt] for (...;...;...) ... diff --git a/csharp/ql/test/library-tests/csharp8/PrintAst.expected b/csharp/ql/test/library-tests/csharp8/PrintAst.expected index 4ec30c915b3..f5eb7caab57 100644 --- a/csharp/ql/test/library-tests/csharp8/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp8/PrintAst.expected @@ -1,12 +1,12 @@ AlternateInterpolatedStrings.cs: # 3| [Class] AlternateInterpolatedStrings -# 5| 5: [Field] s1 +# 5| 6: [Field] s1 # 5| -1: [TypeMention] string # 5| 1: [InterpolatedStringExpr] $"..." # 5| 0: [StringLiteralUtf16] "C:" # 5| 1: [InterpolatedStringInsertExpr] {...} # 5| 0: [IntLiteral] 12 -# 6| 6: [Field] s2 +# 6| 7: [Field] s2 # 6| -1: [TypeMention] string # 6| 1: [InterpolatedStringExpr] $"..." # 6| 0: [StringLiteralUtf16] "C:" @@ -14,7 +14,7 @@ AlternateInterpolatedStrings.cs: # 6| 0: [IntLiteral] 12 AsyncStreams.cs: # 6| [Class] AsyncStreams -# 8| 5: [Method] Items +# 8| 6: [Method] Items # 8| -1: [TypeMention] IAsyncEnumerable # 8| 1: [TypeMention] int # 8| 4: [BlockStmt] {...} @@ -30,7 +30,7 @@ AsyncStreams.cs: # 11| 0: [IntLiteral] 1000 # 12| 3: [YieldReturnStmt] yield return ...; # 12| 0: [IntLiteral] 3 -# 15| 6: [Method] F +# 15| 7: [Method] F # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [ForeachStmt] foreach (... ... in ...) ... @@ -103,11 +103,11 @@ DefaultInterfaceMethods.cs: # 20| [Class] Person #-----| 3: (Base types) # 20| 1: [TypeMention] IPerson -# 22| 5: [Property] Name +# 22| 6: [Property] Name # 22| -1: [TypeMention] string # 22| 3: [Getter] get_Name # 22| 4: [StringLiteralUtf16] "Petra" -# 24| 6: [Property] Greeting +# 24| 7: [Property] Greeting # 24| -1: [TypeMention] IPerson # 24| -1: [TypeMention] string # 24| 3: [Getter] get_Greeting @@ -116,14 +116,14 @@ DefaultInterfaceMethods.cs: #-----| 2: (Parameters) # 24| 0: [Parameter] value # 24| 4: [BlockStmt] {...} -# 26| 7: [Method] Greet +# 26| 8: [Method] Greet # 26| -1: [TypeMention] Void # 26| 4: [BlockStmt] {...} NameResolutionSuppressNullable.cs: # 5| [Class] MyClass2 -# 7| 5: [Field] s_signalMethod +# 7| 6: [Field] s_signalMethod # 7| -1: [TypeMention] WaitCallback -# 8| 6: [Property] SignalMethod +# 8| 7: [Property] SignalMethod # 8| -1: [TypeMention] WaitCallback # 8| 3: [Getter] get_SignalMethod # 8| 4: [MethodCall] call to method EnsureInitialized @@ -133,7 +133,7 @@ NameResolutionSuppressNullable.cs: # 8| -1: [TypeMention] WaitCallback # 8| 0: [SuppressNullableWarningExpr] ...! # 8| 0: [MethodAccess] access to method M1 -# 10| 8: [Method] EnsureInitialized`1 +# 10| 9: [Method] EnsureInitialized`1 # 10| -1: [TypeMention] T #-----| 1: (Type parameters) # 10| 0: [TypeParameter] T @@ -149,7 +149,7 @@ NameResolutionSuppressNullable.cs: # 10| 0: [ParameterAccess] access to parameter target # 10| 1: [DelegateCall] delegate call # 10| -1: [ParameterAccess] access to parameter valueFactory -# 12| 9: [Method] M1 +# 12| 10: [Method] M1 # 12| -1: [TypeMention] Void #-----| 2: (Parameters) # 12| 0: [Parameter] state @@ -157,7 +157,7 @@ NameResolutionSuppressNullable.cs: # 13| 4: [BlockStmt] {...} NullCoalescingAssignment.cs: # 3| [Class] NullCoalescingAssignment -# 5| 5: [Method] NullCoalescing +# 5| 6: [Method] NullCoalescing # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -171,19 +171,19 @@ NullCoalescingAssignment.cs: # 8| 1: [ThisAccess] this access NullableRefTypes.cs: # 6| [Class] MyClass -# 9| 5: [Field] A +# 9| 6: [Field] A # 9| -1: [TypeMention] MyClass -# 10| 6: [Field] B +# 10| 7: [Field] B # 10| -1: [TypeMention] MyClass -# 13| 7: [Property] C +# 13| 8: [Property] C # 13| -1: [TypeMention] MyClass # 13| 3: [Getter] get_C # 13| 4: [NullLiteral] null -# 14| 8: [Property] D +# 14| 9: [Property] D # 14| -1: [TypeMention] MyClass # 14| 3: [Getter] get_D # 14| 4: [ThisAccess] this access -# 17| 9: [Indexer] Item +# 17| 10: [Indexer] Item # 17| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 17| 0: [Parameter] i @@ -192,7 +192,7 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 17| 0: [Parameter] i # 17| 4: [NullLiteral] null -# 18| 10: [Indexer] Item +# 18| 11: [Indexer] Item # 18| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 18| 0: [Parameter] i @@ -201,7 +201,7 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 18| 0: [Parameter] i # 18| 4: [ThisAccess] this access -# 19| 11: [Indexer] Item +# 19| 12: [Indexer] Item # 19| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 19| 0: [Parameter] i @@ -210,19 +210,19 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 19| 0: [Parameter] i # 19| 4: [ThisAccess] this access -# 22| 12: [Field] G1 +# 22| 13: [Field] G1 # 22| -1: [TypeMention] MyClass[] # 22| 1: [TypeMention] MyClass -# 23| 13: [Field] G2 +# 23| 14: [Field] G2 # 23| -1: [TypeMention] MyClass[] # 23| 1: [TypeMention] MyClass -# 24| 14: [Field] G3 +# 24| 15: [Field] G3 # 24| -1: [TypeMention] MyClass[] # 24| 1: [TypeMention] MyClass -# 25| 15: [Field] H +# 25| 16: [Field] H # 25| -1: [TypeMention] MyClass[][] # 25| 1: [TypeMention] MyClass -# 26| 16: [Method] ArrayFn1 +# 26| 17: [Method] ArrayFn1 # 26| -1: [TypeMention] MyClass[] # 26| 1: [TypeMention] MyClass #-----| 2: (Parameters) @@ -231,7 +231,7 @@ NullableRefTypes.cs: # 26| 1: [TypeMention] MyClass # 26| 4: [ThrowExpr] throw ... # 26| 0: [NullLiteral] null -# 27| 17: [Method] ArrayFn2 +# 27| 18: [Method] ArrayFn2 # 27| -1: [TypeMention] MyClass[] # 27| 1: [TypeMention] MyClass #-----| 2: (Parameters) @@ -240,13 +240,13 @@ NullableRefTypes.cs: # 27| 1: [TypeMention] MyClass # 27| 4: [ThrowExpr] throw ... # 27| 0: [NullLiteral] null -# 30| 18: [Method] M +# 30| 19: [Method] M # 30| -1: [TypeMention] MyClass # 30| 4: [NullLiteral] null -# 31| 19: [Method] N +# 31| 20: [Method] N # 31| -1: [TypeMention] MyClass # 31| 4: [ThisAccess] this access -# 32| 20: [Method] O +# 32| 21: [Method] O # 32| -1: [TypeMention] Void #-----| 2: (Parameters) # 32| 0: [Parameter] a @@ -254,7 +254,7 @@ NullableRefTypes.cs: # 32| 1: [Parameter] b # 32| -1: [TypeMention] MyClass # 32| 4: [BlockStmt] {...} -# 35| 21: [Method] Locals +# 35| 22: [Method] Locals # 35| -1: [TypeMention] Void # 36| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -280,12 +280,12 @@ NullableRefTypes.cs: # 40| 0: [LocalVariableAccess] access to local variable d # 40| 1: [RefExpr] ref ... # 40| 0: [LocalVariableAccess] access to local variable b -# 44| 22: [DelegateType] Del1 -# 47| 23: [DelegateType] Del +# 44| 23: [DelegateType] Del1 +# 47| 24: [DelegateType] Del #-----| 2: (Parameters) # 47| 0: [Parameter] x # 47| -1: [TypeMention] MyClass -# 48| 24: [Event] P +# 48| 25: [Event] P # 48| -1: [TypeMention] Del # 48| 3: [AddEventAccessor] add_P #-----| 2: (Parameters) @@ -293,7 +293,7 @@ NullableRefTypes.cs: # 48| 4: [RemoveEventAccessor] remove_P #-----| 2: (Parameters) # 48| 0: [Parameter] value -# 51| 26: [Method] Q`1 +# 51| 27: [Method] Q`1 # 51| -1: [TypeMention] object #-----| 1: (Type parameters) # 51| 0: [TypeParameter] T @@ -301,23 +301,23 @@ NullableRefTypes.cs: # 51| 0: [Parameter] t # 51| -1: [TypeMention] T # 51| 4: [NullLiteral] null -# 54| 29: [Class] Generic`4 +# 54| 30: [Class] Generic`4 #-----| 1: (Type parameters) # 54| 0: [TypeParameter] T1 # 54| 1: [TypeParameter] T2 # 54| 2: [TypeParameter] T3 # 54| 3: [TypeParameter] T4 -# 58| 30: [Class] Generic2`2 +# 58| 31: [Class] Generic2`2 #-----| 1: (Type parameters) # 58| 0: [TypeParameter] T1 # 58| 1: [TypeParameter] T2 -# 65| 31: [Field] items2 +# 65| 32: [Field] items2 # 65| -1: [TypeMention] Generic # 65| 1: [TypeMention] MyClass # 65| 2: [TypeMention] MyClass # 65| 3: [TypeMention] IDisposable # 65| 4: [TypeMention] MyClass -# 67| 33: [Method] GenericFn`1 +# 67| 34: [Method] GenericFn`1 # 67| -1: [TypeMention] Void #-----| 1: (Type parameters) # 67| 0: [TypeParameter] T @@ -325,7 +325,7 @@ NullableRefTypes.cs: # 67| 0: [Parameter] x # 67| -1: [TypeMention] T # 68| 4: [BlockStmt] {...} -# 71| 34: [Method] CallF +# 71| 35: [Method] CallF # 71| -1: [TypeMention] MyStruct # 72| 4: [BlockStmt] {...} # 73| 0: [LocalVariableDeclStmt] ... ...; @@ -344,7 +344,7 @@ NullableRefTypes.cs: # 76| 0: [TypeAccess] access to type MyStruct # 76| 0: [TypeMention] MyStruct # 80| [Class] NullableRefTypes -# 82| 5: [Method] TestSuppressNullableWarningExpr +# 82| 6: [Method] TestSuppressNullableWarningExpr # 82| -1: [TypeMention] Void # 83| 4: [BlockStmt] {...} # 84| 0: [LocalVariableDeclStmt] ... ...; @@ -372,7 +372,7 @@ NullableRefTypes.cs: # 88| 0: [LocalVariableAccess] access to local variable y # 88| 1: [SuppressNullableWarningExpr] ...! # 88| 0: [LocalVariableAccess] access to local variable x -# 91| 6: [Method] FunctionInNullableContext +# 91| 7: [Method] FunctionInNullableContext # 91| -1: [TypeMention] Void # 92| 4: [BlockStmt] {...} # 93| 0: [LocalVariableDeclStmt] ... ...; @@ -398,49 +398,49 @@ NullableRefTypes.cs: # 96| 0: [TypeMention] Console # 96| 0: [LocalVariableAccess] access to local variable x # 100| [Class] RefTypes -# 103| 5: [Method] ReturnsRef1 +# 103| 6: [Method] ReturnsRef1 # 103| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 103| 0: [Parameter] r # 103| -1: [TypeMention] MyClass # 103| 4: [RefExpr] ref ... # 103| 0: [ParameterAccess] access to parameter r -# 104| 6: [Method] ReturnsRef2 +# 104| 7: [Method] ReturnsRef2 # 104| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 104| 0: [Parameter] r # 104| -1: [TypeMention] MyClass # 104| 4: [RefExpr] ref ... # 104| 0: [ParameterAccess] access to parameter r -# 105| 7: [Method] ReturnsRef3 +# 105| 8: [Method] ReturnsRef3 # 105| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 105| 0: [Parameter] r # 105| -1: [TypeMention] MyClass # 105| 4: [RefExpr] ref ... # 105| 0: [ParameterAccess] access to parameter r -# 106| 8: [Method] ReturnsRef4 +# 106| 9: [Method] ReturnsRef4 # 106| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 106| 0: [Parameter] r # 106| -1: [TypeMention] MyClass # 106| 4: [RefExpr] ref ... # 106| 0: [ParameterAccess] access to parameter r -# 107| 9: [Method] ReturnsRef5 +# 107| 10: [Method] ReturnsRef5 # 107| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 107| 0: [Parameter] r # 107| -1: [TypeMention] MyClass # 107| 4: [RefExpr] ref ... # 107| 0: [ParameterAccess] access to parameter r -# 108| 10: [Method] ReturnsRef6 +# 108| 11: [Method] ReturnsRef6 # 108| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 108| 0: [Parameter] r # 108| -1: [TypeMention] MyClass # 108| 4: [RefExpr] ref ... # 108| 0: [ParameterAccess] access to parameter r -# 110| 11: [Method] Parameters1 +# 110| 12: [Method] Parameters1 # 110| -1: [TypeMention] Void #-----| 2: (Parameters) # 110| 0: [Parameter] p1 @@ -449,99 +449,99 @@ NullableRefTypes.cs: # 110| -1: [TypeMention] MyClass # 110| 4: [ThrowExpr] throw ... # 110| 0: [NullLiteral] null -# 112| 12: [Field] Property +# 112| 13: [Field] Property # 112| -1: [TypeMention] MyClass -# 113| 13: [Property] RefProperty +# 113| 14: [Property] RefProperty # 113| -1: [TypeMention] MyClass # 113| 3: [Getter] get_RefProperty # 113| 4: [RefExpr] ref ... # 113| 0: [SuppressNullableWarningExpr] ...! # 113| 0: [FieldAccess] access to field Property # 116| [Class] ToStringWithTypes -# 118| 5: [Field] a +# 118| 6: [Field] a # 118| -1: [TypeMention] MyStruct? # 118| 1: [TypeMention] MyStruct -# 119| 6: [Field] b +# 119| 7: [Field] b # 119| -1: [TypeMention] MyStruct[] # 119| 1: [TypeMention] MyStruct -# 120| 7: [Field] c +# 120| 8: [Field] c # 120| -1: [TypeMention] Nullable[] # 120| 1: [TypeMention] MyStruct? # 120| 1: [TypeMention] MyStruct -# 121| 8: [Field] d +# 121| 9: [Field] d # 121| -1: [TypeMention] Nullable[] # 121| 1: [TypeMention] MyStruct? # 121| 1: [TypeMention] MyStruct -# 123| 9: [Field] e +# 123| 10: [Field] e # 123| -1: [TypeMention] MyClass -# 124| 10: [Field] f +# 124| 11: [Field] f # 124| -1: [TypeMention] MyClass[] # 124| 1: [TypeMention] MyClass -# 125| 11: [Field] g +# 125| 12: [Field] g # 125| -1: [TypeMention] MyClass[] # 125| 1: [TypeMention] MyClass -# 126| 12: [Field] h +# 126| 13: [Field] h # 126| -1: [TypeMention] MyClass[] # 126| 1: [TypeMention] MyClass -# 128| 13: [Field] i +# 128| 14: [Field] i # 128| -1: [TypeMention] MyClass[,][][,,] # 128| 1: [TypeMention] MyClass -# 129| 14: [Field] j +# 129| 15: [Field] j # 129| -1: [TypeMention] MyClass[,,][,][] # 129| 1: [TypeMention] MyClass -# 130| 15: [Field] k +# 130| 16: [Field] k # 130| -1: [TypeMention] MyClass[,,,][][,][,,] # 130| 1: [TypeMention] MyClass -# 131| 16: [Field] l +# 131| 17: [Field] l # 131| -1: [TypeMention] MyClass[,,][,,,][][,] # 131| 1: [TypeMention] MyClass # 136| [Class] ToStringWithTypes2 -# 138| 5: [Field] a +# 138| 6: [Field] a # 138| -1: [TypeMention] MyStruct? # 138| 1: [TypeMention] MyStruct -# 139| 6: [Field] b +# 139| 7: [Field] b # 139| -1: [TypeMention] MyStruct[] # 139| 1: [TypeMention] MyStruct -# 140| 7: [Field] c +# 140| 8: [Field] c # 140| -1: [TypeMention] Nullable[] # 140| 1: [TypeMention] MyStruct? # 140| 1: [TypeMention] MyStruct -# 141| 8: [Field] d +# 141| 9: [Field] d # 141| -1: [TypeMention] Nullable[] # 141| 1: [TypeMention] MyStruct? # 141| 1: [TypeMention] MyStruct -# 143| 9: [Field] e +# 143| 10: [Field] e # 143| -1: [TypeMention] MyClass -# 144| 10: [Field] f +# 144| 11: [Field] f # 144| -1: [TypeMention] MyClass[] # 144| 1: [TypeMention] MyClass -# 145| 11: [Field] g +# 145| 12: [Field] g # 145| -1: [TypeMention] MyClass[] # 145| 1: [TypeMention] MyClass -# 146| 12: [Field] h +# 146| 13: [Field] h # 146| -1: [TypeMention] MyClass[] # 146| 1: [TypeMention] MyClass -# 148| 13: [Field] i +# 148| 14: [Field] i # 148| -1: [TypeMention] MyClass[,][][,,] # 148| 1: [TypeMention] MyClass -# 149| 14: [Field] j +# 149| 15: [Field] j # 149| -1: [TypeMention] MyClass[,,][,][] # 149| 1: [TypeMention] MyClass -# 150| 15: [Field] k +# 150| 16: [Field] k # 150| -1: [TypeMention] MyClass[,,,][][,][,,] # 150| 1: [TypeMention] MyClass -# 151| 16: [Field] l +# 151| 17: [Field] l # 151| -1: [TypeMention] MyClass[,,][,,,][][,] # 151| 1: [TypeMention] MyClass # 154| [Class] DisabledNullability -# 156| 5: [Field] f1 +# 156| 6: [Field] f1 # 156| -1: [TypeMention] MyClass -# 157| 6: [Property] P +# 157| 7: [Property] P # 157| -1: [TypeMention] MyClass # 157| 3: [Getter] get_P # 157| 4: [ObjectCreation] object creation of type MyClass # 157| 0: [TypeMention] MyClass -# 158| 7: [Method] Fn +# 158| 8: [Method] Fn # 158| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 158| 0: [Parameter] p @@ -556,16 +556,16 @@ NullableRefTypes.cs: # 161| 0: [LocalVariableAccess] access to local variable a # 165| [Struct] MyStruct # 171| [Class] TestNullableFlowStates -# 173| 5: [Method] MaybeNull +# 173| 6: [Method] MaybeNull # 173| -1: [TypeMention] string -# 175| 6: [Method] Check +# 175| 7: [Method] Check # 175| -1: [TypeMention] Void #-----| 2: (Parameters) # 175| 0: [Parameter] isNull # 175| -1: [TypeMention] string -# 177| 7: [Method] Count +# 177| 8: [Method] Count # 177| -1: [TypeMention] int -# 179| 8: [Method] LoopUnrolling +# 179| 9: [Method] LoopUnrolling # 179| -1: [TypeMention] Void # 180| 4: [BlockStmt] {...} # 181| 0: [LocalVariableDeclStmt] ... ...; @@ -594,7 +594,7 @@ NullableRefTypes.cs: # 190| 3: [ExprStmt] ...; # 190| 0: [MethodCall] call to method Check # 190| 0: [LocalVariableAccess] access to local variable x -# 193| 9: [Method] ExceptionFlow +# 193| 10: [Method] ExceptionFlow # 193| -1: [TypeMention] Void # 194| 4: [BlockStmt] {...} # 195| 0: [LocalVariableDeclStmt] ... ...; @@ -615,7 +615,7 @@ NullableRefTypes.cs: # 206| 2: [ExprStmt] ...; # 206| 0: [MethodCall] call to method Check # 206| 0: [LocalVariableAccess] access to local variable y -# 209| 10: [Method] InvocationTest +# 209| 11: [Method] InvocationTest # 209| -1: [TypeMention] string #-----| 2: (Parameters) # 209| 0: [Parameter] o @@ -630,7 +630,7 @@ NullableRefTypes.cs: # 212| 1: [ReturnStmt] return ...; # 212| 0: [MethodCall] call to method ToString # 212| -1: [LocalVariableAccess] access to local variable t -# 215| 11: [Method] ElementTest +# 215| 12: [Method] ElementTest # 215| -1: [TypeMention] Void #-----| 2: (Parameters) # 215| 0: [Parameter] list @@ -663,13 +663,13 @@ NullableRefTypes.cs: # 220| 0: [LocalVariableAccess] access to local variable d # 220| 1: [FieldAccess] access to field Field # 220| -1: [MethodCall] call to method GetSelf -# 223| 12: [Method] GetSelf +# 223| 13: [Method] GetSelf # 223| -1: [TypeMention] TestNullableFlowStates -# 225| 13: [Field] Field +# 225| 14: [Field] Field # 225| -1: [TypeMention] string StaticLocalFunctions.cs: # 3| [Class] StaticLocalFunctions -# 5| 5: [Method] Fn +# 5| 6: [Method] Fn # 5| -1: [TypeMention] int #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -702,15 +702,15 @@ UnmanagedGenericStructs.cs: #-----| 1: (Type parameters) # 3| 0: [TypeParameter] T # 3| 1: [TypeParameter] U -# 5| 5: [Field] id +# 5| 6: [Field] id # 5| -1: [TypeMention] int -# 6| 6: [Field] value1 +# 6| 7: [Field] value1 # 6| -1: [TypeMention] T -# 7| 7: [Field] value2 +# 7| 8: [Field] value2 # 7| -1: [TypeMention] U UsingDeclarations.cs: # 4| [Class] UsingDeclarations -# 6| 5: [Method] TestUsingDeclarations +# 6| 6: [Method] TestUsingDeclarations # 6| -1: [TypeMention] Void # 7| 4: [BlockStmt] {...} # 8| 0: [UsingDeclStmt] using ... ...; @@ -762,7 +762,7 @@ UsingDeclarations.cs: # 15| 1: [EmptyStmt] ; patterns.cs: # 3| [Class] Patterns -# 5| 5: [Method] IsPatterns +# 5| 6: [Method] IsPatterns # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -836,7 +836,7 @@ patterns.cs: # 27| 3: [PropertyPatternExpr] { ... } # 27| 0: [DiscardPatternExpr,LabeledPatternExpr] _ # 28| 1: [BlockStmt] {...} -# 32| 6: [Method] SwitchStatements +# 32| 7: [Method] SwitchStatements # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -1019,7 +1019,7 @@ patterns.cs: # 94| 0: [ConstantPatternExpr,IntLiteral] 2 # 94| 1: [DiscardPatternExpr] _ # 94| 3: [BreakStmt] break; -# 98| 7: [Method] Expressions +# 98| 8: [Method] Expressions # 98| -1: [TypeMention] Void #-----| 2: (Parameters) # 98| 0: [Parameter] x @@ -1108,7 +1108,7 @@ patterns.cs: # 119| 2: [TupleExpr] (..., ...) # 119| 0: [IntLiteral] 0 # 119| 1: [IntLiteral] 0 -# 123| 8: [Method] Expressions2 +# 123| 9: [Method] Expressions2 # 123| -1: [TypeMention] Void #-----| 2: (Parameters) # 123| 0: [Parameter] o @@ -1203,18 +1203,18 @@ patterns.cs: # 147| -1: [TypeAccess] access to type Console # 147| 0: [TypeMention] Console # 147| 0: [StringLiteralUtf16] "Invalid operation" -# 151| 9: [Struct] MyStruct -# 153| 5: [Field] X +# 151| 10: [Struct] MyStruct +# 153| 6: [Field] X # 153| -1: [TypeMention] int -# 154| 6: [Property] Y +# 154| 7: [Property] Y # 154| -1: [TypeMention] int # 154| 3: [Getter] get_Y # 154| 4: [IntLiteral] 10 -# 156| 7: [Property] S +# 156| 8: [Property] S # 156| -1: [TypeMention] MyStruct # 156| 3: [Getter] get_S # 156| 4: [ThisAccess] this access -# 158| 8: [Method] Deconstruct +# 158| 9: [Method] Deconstruct # 158| -1: [TypeMention] Void #-----| 2: (Parameters) # 158| 0: [Parameter] x @@ -1230,12 +1230,12 @@ patterns.cs: # 161| 0: [AssignExpr] ... = ... # 161| 0: [ParameterAccess] access to parameter y # 161| 1: [PropertyCall] access to property Y -# 164| 9: [Method] Deconstruct +# 164| 10: [Method] Deconstruct # 164| -1: [TypeMention] Void # 165| 4: [BlockStmt] {...} ranges.cs: # 3| [Class] Ranges -# 5| 5: [Method] F +# 5| 6: [Method] F # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp9/PrintAst.expected b/csharp/ql/test/library-tests/csharp9/PrintAst.expected index e3b89de2009..459349fb9fc 100644 --- a/csharp/ql/test/library-tests/csharp9/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp9/PrintAst.expected @@ -1,17 +1,17 @@ AnonymousObjectCreation.cs: # 5| [Class] AnonObj -# 7| 5: [Field] l +# 7| 6: [Field] l # 7| -1: [TypeMention] List # 7| 1: [TypeMention] AnonObj # 7| 1: [CastExpr] (...) ... # 7| 1: [ObjectCreation] object creation of type List -# 9| 6: [Property] Prop1 +# 9| 7: [Property] Prop1 # 9| -1: [TypeMention] int # 9| 3: [Getter] get_Prop1 # 9| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 9| 0: [Parameter] value -# 11| 7: [Method] M1 +# 11| 8: [Method] M1 # 11| -1: [TypeMention] AnonObj #-----| 2: (Parameters) # 11| 0: [Parameter] t @@ -29,17 +29,17 @@ AnonymousObjectCreation.cs: # 14| 1: [ReturnStmt] return ...; # 14| 0: [CastExpr] (...) ... # 14| 1: [ObjectCreation] object creation of type AnonObj -# 17| 8: [DelegateType] D +# 17| 9: [DelegateType] D #-----| 2: (Parameters) # 17| 0: [Parameter] x # 17| -1: [TypeMention] int -# 19| 9: [Method] M2 +# 19| 10: [Method] M2 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x # 19| -1: [TypeMention] int # 19| 4: [BlockStmt] {...} -# 21| 10: [Method] GetM +# 21| 11: [Method] GetM # 21| -1: [TypeMention] D # 21| 4: [BlockStmt] {...} # 21| 0: [ReturnStmt] return ...; @@ -47,7 +47,7 @@ AnonymousObjectCreation.cs: # 21| 1: [ExplicitDelegateCreation] delegate creation of type D # 21| 0: [ImplicitDelegateCreation] delegate creation of type D # 21| 0: [MethodAccess] access to method M2 -# 23| 11: [Method] MethodAdd +# 23| 12: [Method] MethodAdd # 23| -1: [TypeMention] Void # 24| 4: [BlockStmt] {...} # 25| 0: [LocalVariableDeclStmt] ... ...; @@ -59,13 +59,13 @@ AnonymousObjectCreation.cs: # 25| 1: [ObjectCreation] object creation of type List BinaryPattern.cs: # 3| [Class] BinaryPattern -# 5| 5: [Property] P1 +# 5| 6: [Property] P1 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_P1 # 5| 4: [Setter] set_P1 #-----| 2: (Parameters) # 5| 0: [Parameter] value -# 7| 6: [Method] M1 +# 7| 7: [Method] M1 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -75,7 +75,7 @@ BinaryPattern.cs: # 8| 1: [OrPatternExpr] ... or ... # 8| 0: [CharLiteral,ConstantPatternExpr] a # 8| 1: [CharLiteral,ConstantPatternExpr] b -# 9| 7: [Method] M2 +# 9| 8: [Method] M2 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -91,7 +91,7 @@ BinaryPattern.cs: # 10| 0: [TypeMention] BinaryPattern # 10| 3: [PropertyPatternExpr] { ... } # 10| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1 -# 11| 8: [Method] M3 +# 11| 9: [Method] M3 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -103,7 +103,7 @@ BinaryPattern.cs: # 12| 0: [TypeMention] object # 12| 1: [VariablePatternExpr] BinaryPattern u # 12| 0: [TypeMention] BinaryPattern -# 14| 9: [Method] M4 +# 14| 10: [Method] M4 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i @@ -122,7 +122,7 @@ BinaryPattern.cs: # 19| 2: [StringLiteralUtf16] "other" CovariantReturn.cs: # 1| [Class] A -# 3| 5: [Method] M1 +# 3| 6: [Method] M1 # 3| -1: [TypeMention] A # 3| 4: [BlockStmt] {...} # 3| 0: [ThrowStmt] throw ...; @@ -130,14 +130,14 @@ CovariantReturn.cs: # 6| [Class] B #-----| 3: (Base types) # 6| 0: [TypeMention] A -# 8| 5: [Method] M1 +# 8| 6: [Method] M1 # 8| -1: [TypeMention] B # 8| 4: [BlockStmt] {...} # 8| 0: [ThrowStmt] throw ...; # 8| 0: [NullLiteral] null Discard.cs: # 3| [Class] Discard -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -227,7 +227,7 @@ ForeachExtension.cs: # 14| 0: [YieldReturnStmt] yield return ...; # 14| 0: [LocalVariableAccess] access to local variable i # 19| [Class] Program -# 21| 5: [Method] Main +# 21| 6: [Method] Main # 21| -1: [TypeMention] Task # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; @@ -273,7 +273,7 @@ ForeachExtension.cs: # 37| 1: [IntLiteral] 2 # 37| 2: [IntLiteral] 3 # 38| 2: [BlockStmt] {...} -# 42| 6: [Method] GetAsyncEnumerator +# 42| 7: [Method] GetAsyncEnumerator # 42| -1: [TypeMention] IAsyncEnumerator # 42| 1: [TypeMention] int # 43| 4: [BlockStmt] {...} @@ -289,7 +289,7 @@ ForeachExtension.cs: # 46| 0: [IntLiteral] 1 FunctionPointer.cs: # 3| [Class] FnPointer -# 5| 5: [Class] Program +# 5| 6: [Class] Program # 7| 5: [Field] pointer # 7| -1: [TypeMention] delegate* default # 7| 1: [AddressOfExpr] &... @@ -407,7 +407,7 @@ FunctionPointer.cs: # 48| 0: [TypeMention] A InitOnlyProperty.cs: # 3| [Class] Base -# 5| 5: [Property] Prop0 +# 5| 6: [Property] Prop0 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_Prop0 # 5| 4: [BlockStmt] {...} @@ -421,13 +421,13 @@ InitOnlyProperty.cs: # 5| 0: [AssignExpr] ... = ... # 5| 0: [PropertyCall] access to property Prop1 # 5| 1: [ParameterAccess] access to parameter value -# 6| 6: [Property] Prop1 +# 6| 7: [Property] Prop1 # 6| -1: [TypeMention] int # 6| 3: [Getter] get_Prop1 # 6| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 6| 0: [Parameter] value -# 7| 7: [Property] Prop2 +# 7| 8: [Property] Prop2 # 7| -1: [TypeMention] int # 7| 3: [Getter] get_Prop2 # 7| 4: [Setter] set_Prop2 @@ -436,13 +436,13 @@ InitOnlyProperty.cs: # 11| [Class] Derived #-----| 3: (Base types) # 11| 0: [TypeMention] Base -# 13| 5: [Property] Prop1 +# 13| 6: [Property] Prop1 # 13| -1: [TypeMention] int # 13| 3: [Getter] get_Prop1 # 13| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 13| 0: [Parameter] value -# 14| 6: [Property] Prop2 +# 14| 7: [Property] Prop2 # 14| -1: [TypeMention] int # 16| 3: [Getter] get_Prop2 # 16| 4: [BlockStmt] {...} @@ -466,7 +466,7 @@ InitOnlyProperty.cs: # 21| 0: [PropertyCall] access to property Prop0 # 21| 1: [ParameterAccess] access to parameter value # 26| [Class] C1 -# 28| 5: [Method] M1 +# 28| 6: [Method] M1 # 28| -1: [TypeMention] Void # 29| 4: [BlockStmt] {...} # 30| 0: [LocalVariableDeclStmt] ... ...; @@ -490,7 +490,7 @@ IsExternalInit.cs: # 6| 1: [Class] IsExternalInit LambdaModifier.cs: # 4| [Class] Class1 -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalFunctionStmt] m(...) @@ -550,7 +550,7 @@ LambdaModifier.cs: # 15| 0: [TypeMention] Task LocalFunction.cs: # 4| [Class] LocalFunction -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalVariableDeclStmt] ... ...; @@ -578,7 +578,7 @@ LocalFunction.cs: # 14| 0: [IntLiteral] 2 # 16| 3: [LocalFunctionStmt] localExtern(...) # 16| 0: [LocalFunction] localExtern -# 19| 6: [Method] M2 +# 19| 7: [Method] M2 # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 21| 0: [LocalFunctionStmt] dup(...) @@ -610,7 +610,7 @@ LocalFunction.cs: # 27| 1: [IntLiteral] 42 NativeInt.cs: # 3| [Class] NativeInt -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] j @@ -654,7 +654,7 @@ NativeInt.cs: # 12| 0: [TypeAccess] access to type IntPtr # 12| 0: [TypeMention] IntPtr # 12| 1: [IntLiteral] 42 -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [LocalVariableDeclStmt] ... ...; @@ -718,7 +718,7 @@ NativeInt.cs: ParenthesizedPattern.cs: # 3| [Class] T # 5| [Class] ParenthesizedPattern -# 7| 5: [Method] M1 +# 7| 6: [Method] M1 # 7| -1: [TypeMention] Void #-----| 2: (Parameters) # 7| 0: [Parameter] o @@ -738,7 +738,7 @@ ParenthesizedPattern.cs: # 13| 0: [VariablePatternExpr] Object p2 # 13| 3: [PropertyPatternExpr] { ... } # 14| 1: [BlockStmt] {...} -# 18| 6: [Method] M2 +# 18| 7: [Method] M2 # 18| -1: [TypeMention] Void #-----| 2: (Parameters) # 18| 0: [Parameter] o @@ -778,23 +778,23 @@ ParenthesizedPattern.cs: # 26| 2: [IntLiteral] 5 Record.cs: # 4| [RecordClass] Person -# 4| 11: [NEOperator] != +# 4| 12: [NEOperator] != #-----| 2: (Parameters) # 4| 0: [Parameter] left # 4| 1: [Parameter] right -# 4| 12: [EQOperator] == +# 4| 13: [EQOperator] == #-----| 2: (Parameters) # 4| 0: [Parameter] left # 4| 1: [Parameter] right -# 4| 13: [Property] EqualityContract +# 4| 14: [Property] EqualityContract # 4| 3: [Getter] get_EqualityContract -# 6| 14: [Property] LastName +# 6| 15: [Property] LastName # 6| -1: [TypeMention] string # 6| 3: [Getter] get_LastName -# 7| 15: [Property] FirstName +# 7| 16: [Property] FirstName # 7| -1: [TypeMention] string # 7| 3: [Getter] get_FirstName -# 9| 16: [InstanceConstructor] Person +# 9| 17: [InstanceConstructor] Person #-----| 2: (Parameters) # 9| 0: [Parameter] first # 9| -1: [TypeMention] string @@ -808,20 +808,20 @@ Record.cs: # 9| 0: [ParameterAccess] access to parameter first # 9| 1: [ParameterAccess] access to parameter last # 12| [RecordClass] Teacher -# 12| 12: [NEOperator] != +# 12| 13: [NEOperator] != #-----| 2: (Parameters) # 12| 0: [Parameter] left # 12| 1: [Parameter] right -# 12| 13: [EQOperator] == +# 12| 14: [EQOperator] == #-----| 2: (Parameters) # 12| 0: [Parameter] left # 12| 1: [Parameter] right -# 12| 14: [Property] EqualityContract +# 12| 15: [Property] EqualityContract # 12| 3: [Getter] get_EqualityContract -# 14| 15: [Property] Subject +# 14| 16: [Property] Subject # 14| -1: [TypeMention] string # 14| 3: [Getter] get_Subject -# 16| 16: [InstanceConstructor] Teacher +# 16| 17: [InstanceConstructor] Teacher #-----| 2: (Parameters) # 16| 0: [Parameter] first # 16| -1: [TypeMention] string @@ -836,20 +836,20 @@ Record.cs: # 17| 0: [PropertyCall] access to property Subject # 17| 1: [ParameterAccess] access to parameter sub # 20| [RecordClass] Student -# 20| 12: [NEOperator] != +# 20| 13: [NEOperator] != #-----| 2: (Parameters) # 20| 0: [Parameter] left # 20| 1: [Parameter] right -# 20| 13: [EQOperator] == +# 20| 14: [EQOperator] == #-----| 2: (Parameters) # 20| 0: [Parameter] left # 20| 1: [Parameter] right -# 20| 14: [Property] EqualityContract +# 20| 15: [Property] EqualityContract # 20| 3: [Getter] get_EqualityContract -# 22| 15: [Property] Level +# 22| 16: [Property] Level # 22| -1: [TypeMention] int # 22| 3: [Getter] get_Level -# 24| 16: [InstanceConstructor] Student +# 24| 17: [InstanceConstructor] Student #-----| 2: (Parameters) # 24| 0: [Parameter] first # 24| -1: [TypeMention] string @@ -864,44 +864,44 @@ Record.cs: # 24| 0: [PropertyCall] access to property Level # 24| 1: [ParameterAccess] access to parameter level # 27| [RecordClass] Person1 -# 27| 12: [NEOperator] != +# 27| 13: [NEOperator] != #-----| 2: (Parameters) # 27| 0: [Parameter] left # 27| 1: [Parameter] right -# 27| 13: [EQOperator] == +# 27| 14: [EQOperator] == #-----| 2: (Parameters) # 27| 0: [Parameter] left # 27| 1: [Parameter] right -# 27| 14: [Property] EqualityContract +# 27| 15: [Property] EqualityContract # 27| 3: [Getter] get_EqualityContract -# 27| 15: [InstanceConstructor,PrimaryConstructor] Person1 +# 27| 16: [InstanceConstructor,PrimaryConstructor] Person1 #-----| 2: (Parameters) # 27| 0: [Parameter] FirstName # 27| -1: [TypeMention] string # 27| 1: [Parameter] LastName # 27| -1: [TypeMention] string -# 27| 16: [Property] FirstName +# 27| 17: [Property] FirstName # 27| 3: [Getter] get_FirstName # 27| 4: [Setter] set_FirstName #-----| 2: (Parameters) # 27| 0: [Parameter] value -# 27| 17: [Property] LastName +# 27| 18: [Property] LastName # 27| 3: [Getter] get_LastName # 27| 4: [Setter] set_LastName #-----| 2: (Parameters) # 27| 0: [Parameter] value # 29| [RecordClass] Teacher1 -# 29| 13: [NEOperator] != +# 29| 14: [NEOperator] != #-----| 2: (Parameters) # 29| 0: [Parameter] left # 29| 1: [Parameter] right -# 29| 14: [EQOperator] == +# 29| 15: [EQOperator] == #-----| 2: (Parameters) # 29| 0: [Parameter] left # 29| 1: [Parameter] right -# 29| 15: [Property] EqualityContract +# 29| 16: [Property] EqualityContract # 29| 3: [Getter] get_EqualityContract -# 29| 16: [InstanceConstructor,PrimaryConstructor] Teacher1 +# 29| 17: [InstanceConstructor,PrimaryConstructor] Teacher1 #-----| 2: (Parameters) # 29| 0: [Parameter] FirstName # 29| -1: [TypeMention] string @@ -912,23 +912,23 @@ Record.cs: # 30| 3: [ConstructorInitializer] call to constructor Person1 # 30| 0: [ParameterAccess] access to parameter FirstName # 30| 1: [ParameterAccess] access to parameter LastName -# 29| 17: [Property] Subject +# 29| 18: [Property] Subject # 29| 3: [Getter] get_Subject # 29| 4: [Setter] set_Subject #-----| 2: (Parameters) # 29| 0: [Parameter] value # 32| [RecordClass] Student1 -# 32| 13: [NEOperator] != +# 32| 14: [NEOperator] != #-----| 2: (Parameters) # 32| 0: [Parameter] left # 32| 1: [Parameter] right -# 32| 14: [EQOperator] == +# 32| 15: [EQOperator] == #-----| 2: (Parameters) # 32| 0: [Parameter] left # 32| 1: [Parameter] right -# 32| 15: [Property] EqualityContract +# 32| 16: [Property] EqualityContract # 32| 3: [Getter] get_EqualityContract -# 32| 16: [InstanceConstructor,PrimaryConstructor] Student1 +# 32| 17: [InstanceConstructor,PrimaryConstructor] Student1 #-----| 2: (Parameters) # 32| 0: [Parameter] FirstName # 32| -1: [TypeMention] string @@ -939,61 +939,61 @@ Record.cs: # 33| 3: [ConstructorInitializer] call to constructor Person1 # 33| 0: [ParameterAccess] access to parameter FirstName # 33| 1: [ParameterAccess] access to parameter LastName -# 32| 17: [Property] Level +# 32| 18: [Property] Level # 32| 3: [Getter] get_Level # 32| 4: [Setter] set_Level #-----| 2: (Parameters) # 32| 0: [Parameter] value # 35| [RecordClass] Pet -# 35| 12: [NEOperator] != +# 35| 13: [NEOperator] != #-----| 2: (Parameters) # 35| 0: [Parameter] left # 35| 1: [Parameter] right -# 35| 13: [EQOperator] == +# 35| 14: [EQOperator] == #-----| 2: (Parameters) # 35| 0: [Parameter] left # 35| 1: [Parameter] right -# 35| 14: [Property] EqualityContract +# 35| 15: [Property] EqualityContract # 35| 3: [Getter] get_EqualityContract -# 35| 15: [InstanceConstructor,PrimaryConstructor] Pet +# 35| 16: [InstanceConstructor,PrimaryConstructor] Pet #-----| 2: (Parameters) # 35| 0: [Parameter] Name # 35| -1: [TypeMention] string -# 35| 16: [Property] Name +# 35| 17: [Property] Name # 35| 3: [Getter] get_Name # 35| 4: [Setter] set_Name #-----| 2: (Parameters) # 35| 0: [Parameter] value -# 37| 17: [Method] ShredTheFurniture +# 37| 18: [Method] ShredTheFurniture # 37| -1: [TypeMention] Void # 38| 4: [MethodCall] call to method WriteLine # 38| -1: [TypeAccess] access to type Console # 38| 0: [TypeMention] Console # 38| 0: [StringLiteralUtf16] "Shredding furniture" # 41| [RecordClass] Dog -# 41| 12: [NEOperator] != +# 41| 13: [NEOperator] != #-----| 2: (Parameters) # 41| 0: [Parameter] left # 41| 1: [Parameter] right -# 41| 13: [EQOperator] == +# 41| 14: [EQOperator] == #-----| 2: (Parameters) # 41| 0: [Parameter] left # 41| 1: [Parameter] right -# 41| 14: [InstanceConstructor,PrimaryConstructor] Dog +# 41| 15: [InstanceConstructor,PrimaryConstructor] Dog #-----| 2: (Parameters) # 41| 0: [Parameter] Name # 41| -1: [TypeMention] string # 41| 3: [ConstructorInitializer] call to constructor Pet # 41| 0: [ParameterAccess] access to parameter Name -# 41| 15: [Property] EqualityContract +# 41| 16: [Property] EqualityContract # 41| 3: [Getter] get_EqualityContract -# 43| 16: [Method] WagTail +# 43| 17: [Method] WagTail # 43| -1: [TypeMention] Void # 44| 4: [MethodCall] call to method WriteLine # 44| -1: [TypeAccess] access to type Console # 44| 0: [TypeMention] Console # 44| 0: [StringLiteralUtf16] "It's tail wagging time" -# 46| 17: [Method] ToString +# 46| 18: [Method] ToString # 46| -1: [TypeMention] string # 47| 4: [BlockStmt] {...} # 48| 0: [LocalVariableDeclStmt] ... ...; @@ -1013,37 +1013,37 @@ Record.cs: # 50| -1: [LocalVariableAccess] access to local variable s # 50| 1: [StringLiteralUtf16] " is a dog" # 54| [RecordClass] R1 -# 54| 12: [NEOperator] != +# 54| 13: [NEOperator] != #-----| 2: (Parameters) # 54| 0: [Parameter] left # 54| 1: [Parameter] right -# 54| 13: [EQOperator] == +# 54| 14: [EQOperator] == #-----| 2: (Parameters) # 54| 0: [Parameter] left # 54| 1: [Parameter] right -# 54| 14: [Property] EqualityContract +# 54| 15: [Property] EqualityContract # 54| 3: [Getter] get_EqualityContract -# 54| 15: [InstanceConstructor,PrimaryConstructor] R1 +# 54| 16: [InstanceConstructor,PrimaryConstructor] R1 #-----| 2: (Parameters) # 54| 0: [Parameter] A # 54| -1: [TypeMention] string -# 54| 16: [Property] A +# 54| 17: [Property] A # 54| 3: [Getter] get_A # 54| 4: [Setter] set_A #-----| 2: (Parameters) # 54| 0: [Parameter] value # 56| [RecordClass] R2 -# 56| 13: [NEOperator] != +# 56| 14: [NEOperator] != #-----| 2: (Parameters) # 56| 0: [Parameter] left # 56| 1: [Parameter] right -# 56| 14: [EQOperator] == +# 56| 15: [EQOperator] == #-----| 2: (Parameters) # 56| 0: [Parameter] left # 56| 1: [Parameter] right -# 56| 15: [Property] EqualityContract +# 56| 16: [Property] EqualityContract # 56| 3: [Getter] get_EqualityContract -# 56| 16: [InstanceConstructor,PrimaryConstructor] R2 +# 56| 17: [InstanceConstructor,PrimaryConstructor] R2 #-----| 2: (Parameters) # 56| 0: [Parameter] A # 56| -1: [TypeMention] string @@ -1051,13 +1051,13 @@ Record.cs: # 56| -1: [TypeMention] string # 56| 3: [ConstructorInitializer] call to constructor R1 # 56| 0: [ParameterAccess] access to parameter A -# 56| 17: [Property] B +# 56| 18: [Property] B # 56| 3: [Getter] get_B # 56| 4: [Setter] set_B #-----| 2: (Parameters) # 56| 0: [Parameter] value # 58| [Class] Record1 -# 60| 5: [Method] M1 +# 60| 6: [Method] M1 # 60| -1: [TypeMention] Void # 61| 4: [BlockStmt] {...} # 62| 0: [LocalVariableDeclStmt] ... ...; @@ -1084,7 +1084,7 @@ Record.cs: # 65| 0: [OperatorCall] call to operator == # 65| 0: [LocalVariableAccess] access to local variable student # 65| 1: [LocalVariableAccess] access to local variable person -# 68| 6: [Method] M2 +# 68| 7: [Method] M2 # 68| -1: [TypeMention] Void # 69| 4: [BlockStmt] {...} # 70| 0: [LocalVariableDeclStmt] ... ...; @@ -1140,7 +1140,7 @@ Record.cs: # 77| 1: [WithExpr] ... with { ... } # 77| 0: [LocalVariableAccess] access to local variable p1 # 77| 1: [ObjectInitializer] { ..., ... } -# 80| 7: [Method] M3 +# 80| 8: [Method] M3 # 80| -1: [TypeMention] Void # 81| 4: [BlockStmt] {...} # 82| 0: [LocalVariableDeclStmt] ... ...; @@ -1168,7 +1168,7 @@ Record.cs: # 84| 1: [StringLiteralUtf16] "C" RelationalPattern.cs: # 3| [Class] RelationalPattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] bool #-----| 2: (Parameters) # 5| 0: [Parameter] c @@ -1177,7 +1177,7 @@ RelationalPattern.cs: # 6| 0: [ParameterAccess] access to parameter c # 6| 1: [GEPattern] >= ... # 6| 0: [CharLiteral] a -# 7| 6: [Method] M2 +# 7| 7: [Method] M2 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -1186,7 +1186,7 @@ RelationalPattern.cs: # 8| 0: [ParameterAccess] access to parameter c # 8| 1: [GTPattern] > ... # 8| 0: [CharLiteral] a -# 9| 7: [Method] M3 +# 9| 8: [Method] M3 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -1195,7 +1195,7 @@ RelationalPattern.cs: # 10| 0: [ParameterAccess] access to parameter c # 10| 1: [LEPattern] <= ... # 10| 0: [CharLiteral] a -# 11| 8: [Method] M4 +# 11| 9: [Method] M4 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -1204,7 +1204,7 @@ RelationalPattern.cs: # 12| 0: [ParameterAccess] access to parameter c # 12| 1: [LTPattern] < ... # 12| 0: [CharLiteral] a -# 14| 9: [Method] M5 +# 14| 10: [Method] M5 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i @@ -1225,7 +1225,7 @@ RelationalPattern.cs: # 20| 2: [StringLiteralUtf16] "other" TargetType.cs: # 5| [Class] TargetType -# 7| 5: [Method] M2 +# 7| 6: [Method] M2 # 7| -1: [TypeMention] Void # 8| 4: [BlockStmt] {...} # 9| 0: [LocalVariableDeclStmt] ... ...; @@ -1356,7 +1356,7 @@ TargetType.cs: # 36| 0: [ObjectCreation] object creation of type TargetType # 36| 0: [TypeMention] TargetType # 37| 2: [IntLiteral] 12 -# 40| 6: [ImplicitConversionOperator] implicit conversion +# 40| 7: [ImplicitConversionOperator] implicit conversion # 40| -1: [TypeMention] int #-----| 2: (Parameters) # 40| 0: [Parameter] d @@ -1365,14 +1365,14 @@ TargetType.cs: TypeParameterNullability.cs: # 1| [Interface] I1 # 3| [Class] A2 -# 5| 5: [Method] F1`1 +# 5| 6: [Method] F1`1 # 5| -1: [TypeMention] Void #-----| 1: (Type parameters) # 5| 0: [TypeParameter] T #-----| 2: (Parameters) # 5| 0: [Parameter] t # 5| 4: [BlockStmt] {...} -# 6| 6: [Method] F2`1 +# 6| 7: [Method] F2`1 # 6| -1: [TypeMention] Void #-----| 1: (Type parameters) # 6| 0: [TypeParameter] T @@ -1381,28 +1381,28 @@ TypeParameterNullability.cs: # 6| -1: [TypeMention] T? # 6| 1: [TypeMention] T # 6| 4: [BlockStmt] {...} -# 7| 7: [Method] F3`1 +# 7| 8: [Method] F3`1 # 7| -1: [TypeMention] Void #-----| 1: (Type parameters) # 7| 0: [TypeParameter] T #-----| 2: (Parameters) # 7| 0: [Parameter] t # 7| 4: [BlockStmt] {...} -# 8| 8: [Method] F4`1 +# 8| 9: [Method] F4`1 # 8| -1: [TypeMention] Void #-----| 1: (Type parameters) # 8| 0: [TypeParameter] T #-----| 2: (Parameters) # 8| 0: [Parameter] t # 8| 4: [BlockStmt] {...} -# 9| 9: [Method] F5`1 +# 9| 10: [Method] F5`1 # 9| -1: [TypeMention] Void #-----| 1: (Type parameters) # 9| 0: [TypeParameter] T #-----| 2: (Parameters) # 9| 0: [Parameter] t # 9| 4: [BlockStmt] {...} -# 10| 10: [Method] F6`1 +# 10| 11: [Method] F6`1 # 10| -1: [TypeMention] Void #-----| 1: (Type parameters) # 10| 0: [TypeParameter] T @@ -1414,14 +1414,14 @@ TypeParameterNullability.cs: # 13| [Class] B2 #-----| 3: (Base types) # 13| 0: [TypeMention] A2 -# 15| 5: [Method] F1`1 +# 15| 6: [Method] F1`1 # 15| -1: [TypeMention] Void #-----| 1: (Type parameters) # 15| 0: [TypeParameter] T #-----| 2: (Parameters) # 15| 0: [Parameter] t # 15| 4: [BlockStmt] {...} -# 16| 6: [Method] F2`1 +# 16| 7: [Method] F2`1 # 16| -1: [TypeMention] Void #-----| 1: (Type parameters) # 16| 0: [TypeParameter] T @@ -1430,21 +1430,21 @@ TypeParameterNullability.cs: # 16| -1: [TypeMention] T? # 16| 1: [TypeMention] T # 16| 4: [BlockStmt] {...} -# 17| 7: [Method] F3`1 +# 17| 8: [Method] F3`1 # 17| -1: [TypeMention] Void #-----| 1: (Type parameters) # 17| 0: [TypeParameter] T #-----| 2: (Parameters) # 17| 0: [Parameter] t # 17| 4: [BlockStmt] {...} -# 18| 8: [Method] F4`1 +# 18| 9: [Method] F4`1 # 18| -1: [TypeMention] Void #-----| 1: (Type parameters) # 18| 0: [TypeParameter] T #-----| 2: (Parameters) # 18| 0: [Parameter] t # 18| 4: [BlockStmt] {...} -# 19| 9: [Method] F6`1 +# 19| 10: [Method] F6`1 # 19| -1: [TypeMention] Void #-----| 1: (Type parameters) # 19| 0: [TypeParameter] T @@ -1456,7 +1456,7 @@ TypeParameterNullability.cs: # 22| [Class] B3 #-----| 3: (Base types) # 22| 0: [TypeMention] A2 -# 24| 5: [Method] F2`1 +# 24| 6: [Method] F2`1 # 24| -1: [TypeMention] Void #-----| 1: (Type parameters) # 24| 0: [TypeParameter] T @@ -1467,7 +1467,7 @@ TypeParameterNullability.cs: # 24| 4: [BlockStmt] {...} TypePattern.cs: # 3| [Class] TypePattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] object #-----| 2: (Parameters) # 5| 0: [Parameter] o1 @@ -1516,13 +1516,13 @@ TypePattern.cs: # 14| 2: [LocalVariableAccess] access to local variable o UnaryPattern.cs: # 3| [Class] UnaryPattern -# 5| 5: [Property] P1 +# 5| 6: [Property] P1 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_P1 # 5| 4: [Setter] set_P1 #-----| 2: (Parameters) # 5| 0: [Parameter] value -# 7| 6: [Method] M1 +# 7| 7: [Method] M1 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -1531,7 +1531,7 @@ UnaryPattern.cs: # 8| 0: [ParameterAccess] access to parameter c # 8| 1: [NotPatternExpr] not ... # 8| 0: [CharLiteral,ConstantPatternExpr] a -# 9| 7: [Method] M2 +# 9| 8: [Method] M2 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -1540,7 +1540,7 @@ UnaryPattern.cs: # 10| 0: [ParameterAccess] access to parameter c # 10| 1: [NotPatternExpr] not ... # 10| 0: [ConstantPatternExpr,NullLiteral] null -# 11| 8: [Method] M3 +# 11| 9: [Method] M3 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -1554,7 +1554,7 @@ UnaryPattern.cs: # 12| 0: [TypeMention] UnaryPattern # 12| 3: [PropertyPatternExpr] { ... } # 12| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1 -# 14| 9: [Method] M4 +# 14| 10: [Method] M4 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i diff --git a/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected b/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected index cd7658f6f5e..3500820e250 100644 --- a/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected +++ b/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected @@ -1,19 +1,19 @@ implicitToString.cs: # 3| [Class] TestClass -# 5| 5: [Class] MyClass -# 5| 4: [InstanceConstructor,PrimaryConstructor] MyClass -# 7| 5: [Method] ToString +# 5| 6: [Class] MyClass +# 5| 5: [InstanceConstructor,PrimaryConstructor] MyClass +# 7| 6: [Method] ToString # 7| -1: [TypeMention] string # 8| 4: [BlockStmt] {...} # 9| 0: [ReturnStmt] return ...; # 9| 0: [StringLiteralUtf16] "tainted" -# 13| 6: [Method] Sink +# 13| 7: [Method] Sink # 13| -1: [TypeMention] Void #-----| 2: (Parameters) # 13| 0: [Parameter] o # 13| -1: [TypeMention] object # 13| 4: [BlockStmt] {...} -# 15| 7: [Method] M1 +# 15| 8: [Method] M1 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [LocalVariableDeclStmt] ... ...; @@ -33,7 +33,7 @@ implicitToString.cs: # 19| 2: [ExprStmt] ...; # 19| 0: [MethodCall] call to method Sink # 19| 0: [LocalVariableAccess] access to local variable x2 -# 22| 8: [Method] M2 +# 22| 9: [Method] M2 # 22| -1: [TypeMention] Void # 23| 4: [BlockStmt] {...} # 24| 0: [LocalVariableDeclStmt] ... ...; @@ -53,7 +53,7 @@ implicitToString.cs: # 26| 2: [ExprStmt] ...; # 26| 0: [MethodCall] call to method Sink # 26| 0: [LocalVariableAccess] access to local variable x2 -# 29| 9: [Method] M3 +# 29| 10: [Method] M3 # 29| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} # 31| 0: [LocalVariableDeclStmt] ... ...; @@ -74,7 +74,7 @@ implicitToString.cs: # 33| 2: [ExprStmt] ...; # 33| 0: [MethodCall] call to method Sink # 33| 0: [LocalVariableAccess] access to local variable x2 -# 36| 10: [Method] M4 +# 36| 11: [Method] M4 # 36| -1: [TypeMention] Void # 37| 4: [BlockStmt] {...} # 38| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected b/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected index 7cbddb9d3d5..11e14eeb6c5 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected @@ -1,6 +1,6 @@ Tuples.cs: # 3| [Class] Tuples -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -99,7 +99,7 @@ Tuples.cs: # 29| 0: [FieldAccess] access to field Item2 # 29| -1: [FieldAccess] access to field Item2 # 29| -1: [LocalVariableAccess] access to local variable x -# 32| 6: [Method] M2 +# 32| 7: [Method] M2 # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -144,7 +144,7 @@ Tuples.cs: # 40| 0: [MethodCall] call to method Sink # 40| 0: [FieldAccess] access to field Item10 # 40| -1: [LocalVariableAccess] access to local variable x -# 43| 7: [Method] M3 +# 43| 8: [Method] M3 # 43| -1: [TypeMention] Void # 44| 4: [BlockStmt] {...} # 45| 0: [LocalVariableDeclStmt] ... ...; @@ -201,7 +201,7 @@ Tuples.cs: # 52| 0: [CastExpr] (...) ... # 52| 1: [FieldAccess] access to field Item2 # 52| -1: [LocalVariableAccess] access to local variable y -# 55| 8: [Method] M4 +# 55| 9: [Method] M4 # 55| -1: [TypeMention] Void #-----| 2: (Parameters) # 55| 0: [Parameter] s @@ -352,34 +352,34 @@ Tuples.cs: # 91| 0: [MethodCall] call to method Sink # 91| 0: [CastExpr] (...) ... # 91| 1: [LocalVariableAccess] access to local variable q -# 95| 9: [RecordClass] R1 -# 95| 12: [NEOperator] != +# 95| 10: [RecordClass] R1 +# 95| 13: [NEOperator] != #-----| 2: (Parameters) # 95| 0: [Parameter] left # 95| 1: [Parameter] right -# 95| 13: [EQOperator] == +# 95| 14: [EQOperator] == #-----| 2: (Parameters) # 95| 0: [Parameter] left # 95| 1: [Parameter] right -# 95| 14: [Property] EqualityContract +# 95| 15: [Property] EqualityContract # 95| 3: [Getter] get_EqualityContract -# 95| 15: [InstanceConstructor,PrimaryConstructor] R1 +# 95| 16: [InstanceConstructor,PrimaryConstructor] R1 #-----| 2: (Parameters) # 95| 0: [Parameter] i # 95| -1: [TypeMention] string # 95| 1: [Parameter] j # 95| -1: [TypeMention] int -# 95| 16: [Property] i +# 95| 17: [Property] i # 95| 3: [Getter] get_i # 95| 4: [Setter] set_i #-----| 2: (Parameters) # 95| 0: [Parameter] value -# 95| 17: [Property] j +# 95| 18: [Property] j # 95| 3: [Getter] get_j # 95| 4: [Setter] set_j #-----| 2: (Parameters) # 95| 0: [Parameter] value -# 97| 10: [Method] M5 +# 97| 11: [Method] M5 # 97| -1: [TypeMention] Void # 98| 4: [BlockStmt] {...} # 99| 0: [LocalVariableDeclStmt] ... ...; @@ -428,7 +428,7 @@ Tuples.cs: # 111| 0: [CastExpr] (...) ... # 111| 1: [LocalVariableAccess] access to local variable y # 112| 3: [BreakStmt] break; -# 116| 11: [Method] M6 +# 116| 12: [Method] M6 # 116| -1: [TypeMention] Void # 117| 4: [BlockStmt] {...} # 118| 0: [LocalVariableDeclStmt] ... ...; @@ -504,13 +504,13 @@ Tuples.cs: # 134| 12: [ExprStmt] ...; # 134| 0: [MethodCall] call to method Sink # 134| 0: [LocalVariableAccess] access to local variable y4 -# 137| 12: [Method] Sink +# 137| 13: [Method] Sink # 137| -1: [TypeMention] Void #-----| 2: (Parameters) # 137| 0: [Parameter] o # 137| -1: [TypeMention] object # 137| 4: [BlockStmt] {...} -# 139| 15: [Method] Source`1 +# 139| 16: [Method] Source`1 # 139| -1: [TypeMention] T #-----| 1: (Type parameters) # 139| 0: [TypeParameter] T diff --git a/csharp/ql/test/library-tests/definitions/PrintAst.expected b/csharp/ql/test/library-tests/definitions/PrintAst.expected index 9b5606d30f5..28196c75a85 100644 --- a/csharp/ql/test/library-tests/definitions/PrintAst.expected +++ b/csharp/ql/test/library-tests/definitions/PrintAst.expected @@ -17,15 +17,15 @@ definitions.cs: # 15| 1: [IntLiteral] 2 # 15| 7: [Field] e3 # 18| 3: [Class] C1 -# 20| 4: [InstanceConstructor] C1 +# 20| 5: [InstanceConstructor] C1 #-----| 2: (Parameters) # 20| 0: [Parameter] args # 20| -1: [TypeMention] Int32[] # 20| 1: [TypeMention] int # 20| 4: [BlockStmt] {...} -# 22| 5: [Field] field1 +# 22| 6: [Field] field1 # 22| -1: [TypeMention] int -# 24| 6: [Property] property1 +# 24| 7: [Property] property1 # 24| -1: [TypeMention] int # 26| 3: [Getter] get_property1 # 26| 4: [BlockStmt] {...} @@ -39,7 +39,7 @@ definitions.cs: # 27| 0: [AssignExpr] ... = ... # 27| 0: [FieldAccess] access to field field1 # 27| 1: [ParameterAccess] access to parameter value -# 30| 7: [Method] f1 +# 30| 8: [Method] f1 # 30| -1: [TypeMention] Void #-----| 2: (Parameters) # 30| 0: [Parameter] args @@ -157,7 +157,7 @@ definitions.cs: # 67| 0: [LocalVariableAccess] access to local variable m1 # 67| 1: [ImplicitDelegateCreation] delegate creation of type Action # 67| 0: [MethodAccess] access to method GenericFn -# 70| 8: [Method] VariableTypeUse +# 70| 9: [Method] VariableTypeUse # 70| -1: [TypeMention] Void #-----| 2: (Parameters) # 70| 0: [Parameter] c1 @@ -168,7 +168,7 @@ definitions.cs: # 72| -1: [TypeMention] C1 # 72| 0: [LocalVariableAccess] access to local variable c2 # 72| 1: [NullLiteral] null -# 75| 10: [Method] GenericFn`1 +# 75| 11: [Method] GenericFn`1 # 75| -1: [TypeMention] Void #-----| 1: (Type parameters) # 75| 0: [TypeParameter] T @@ -177,7 +177,7 @@ definitions.cs: # 75| -1: [TypeMention] T # 75| 4: [BlockStmt] {...} # 78| 4: [Struct] S1 -# 80| 5: [Method] M +# 80| 6: [Method] M # 80| -1: [TypeMention] S1 #-----| 2: (Parameters) # 80| 0: [Parameter] ss @@ -216,8 +216,8 @@ definitions.cs: # 93| 0: [ObjectCreation] object creation of type S1 # 93| 0: [TypeMention] S1 # 97| 5: [Class] A -# 99| 5: [DelegateType] EventHandler -# 101| 6: [Event] Click +# 99| 6: [DelegateType] EventHandler +# 101| 7: [Event] Click # 101| -1: [TypeMention] EventHandler # 101| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -225,7 +225,7 @@ definitions.cs: # 101| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 101| 0: [Parameter] value -# 103| 7: [Method] M +# 103| 8: [Method] M # 103| -1: [TypeMention] Void # 104| 4: [BlockStmt] {...} # 105| 0: [ExprStmt] ...; @@ -265,24 +265,24 @@ definitions.cs: # 121| 1: [TypeMention] I1 # 121| 2: [TypeMention] I2 # 121| 1: [TypeMention] A -# 123| 5: [Method] M +# 123| 6: [Method] M # 123| -1: [TypeMention] Void # 124| 4: [BlockStmt] {...} # 125| 0: [ExprStmt] ...; # 125| 0: [MethodCall] call to method M # 125| -1: [BaseAccess] base access -# 128| 6: [Method] M2`1 +# 128| 7: [Method] M2`1 # 128| -1: [TypeMention] I1 # 128| -1: [TypeMention] Void #-----| 1: (Type parameters) # 128| 0: [TypeParameter] T # 128| 4: [BlockStmt] {...} -# 130| 7: [Struct] S`1 +# 130| 8: [Struct] S`1 #-----| 1: (Type parameters) # 130| 0: [TypeParameter] T2 #-----| 3: (Base types) # 130| 1: [TypeMention] I3 -# 132| 8: [Method] Tuple +# 132| 9: [Method] Tuple # 132| -1: [TypeMention] (I1, B) # 132| 1: [TypeMention] I1 # 132| 2: [TypeMention] B @@ -290,7 +290,7 @@ definitions.cs: # 132| 4: [ThrowExpr] throw ... # 132| 0: [ObjectCreation] object creation of type Exception # 132| 0: [TypeMention] Exception -# 134| 9: [Indexer] Item +# 134| 10: [Indexer] Item # 134| -1: [TypeMention] B # 134| 1: [TypeMention] A #-----| 1: (Parameters) @@ -306,8 +306,8 @@ definitions.cs: # 134| 0: [TypeMention] B # 134| 1: [TypeMention] A # 137| 10: [Class] C -# 139| 5: [Enum] E -# 140| 6: [Method] Pointer +# 139| 6: [Enum] E +# 140| 7: [Method] Pointer # 140| -1: [TypeMention] E* # 140| 1: [TypeMention] E # 140| 4: [ThrowExpr] throw ... @@ -345,7 +345,7 @@ definitions.cs: # 151| 12: [Class] C4 #-----| 3: (Base types) # 151| 1: [TypeMention] I4 -# 153| 5: [Event] EH +# 153| 6: [Event] EH # 153| -1: [TypeMention] I4 # 153| 3: [AddEventAccessor] add_EH #-----| 2: (Parameters) @@ -355,20 +355,20 @@ definitions.cs: #-----| 2: (Parameters) # 153| 0: [Parameter] value # 153| 4: [BlockStmt] {...} -# 154| 6: [Method] M +# 154| 7: [Method] M # 154| -1: [TypeMention] I4 # 154| -1: [TypeMention] A # 154| 4: [ThrowExpr] throw ... # 154| 0: [ObjectCreation] object creation of type Exception # 154| 0: [TypeMention] Exception -# 155| 7: [Property] P +# 155| 8: [Property] P # 155| -1: [TypeMention] I4 # 155| -1: [TypeMention] I3 # 155| 3: [Getter] get_P # 155| 4: [ThrowExpr] throw ... # 155| 0: [ObjectCreation] object creation of type Exception # 155| 0: [TypeMention] Exception -# 156| 8: [Indexer] Item +# 156| 9: [Indexer] Item # 156| -1: [TypeMention] I4 # 156| -1: [TypeMention] S1 #-----| 1: (Parameters) @@ -385,10 +385,10 @@ definitions.cs: # 156| 0: [TypeMention] S1 # 156| 1: [ObjectCreation] object creation of type S1 # 156| 0: [TypeMention] S1 -# 158| 10: [Class] Nested`1 +# 158| 11: [Class] Nested`1 #-----| 1: (Type parameters) # 158| 0: [TypeParameter] T -# 160| 5: [Method] Create +# 160| 6: [Method] Create # 160| -1: [TypeMention] Nested # 160| 1: [TypeMention] T # 160| 4: [BlockStmt] {...} @@ -397,7 +397,7 @@ definitions.cs: # 160| 0: [TypeMention] Nested # 160| 1: [TypeMention] T # 164| 13: [Class] C5 -# 166| 5: [Field] f +# 166| 6: [Field] f # 166| -1: [TypeMention] Nested # 166| 1: [TypeMention] C4 # 166| 2: [TypeMention] I4 @@ -407,9 +407,9 @@ definitions.cs: # 166| 1: [TypeMention] I4 # 166| -1: [TypeAccess] access to type C4 # 166| 0: [TypeMention] C4 -# 167| 6: [Field] c1 +# 167| 7: [Field] c1 # 167| -1: [TypeMention] C1 -# 169| 7: [Method] M +# 169| 8: [Method] M # 169| -1: [TypeMention] Void # 170| 4: [BlockStmt] {...} # 171| 0: [LocalVariableDeclStmt] ... ...; @@ -450,7 +450,7 @@ definitions.cs: # 175| 1: [TypeMention] C4 # 175| 2: [TypeMention] I4 # 179| 14: [Class] C6 -# 181| 5: [ExplicitConversionOperator] explicit conversion +# 181| 6: [ExplicitConversionOperator] explicit conversion # 181| -1: [TypeMention] C5 #-----| 2: (Parameters) # 181| 0: [Parameter] c @@ -461,14 +461,14 @@ definitions.cs: # 182| 4: [BlockStmt] {...} # 183| 0: [ReturnStmt] return ...; # 183| 0: [NullLiteral] null -# 186| 6: [Method] M +# 186| 7: [Method] M # 186| -1: [TypeMention] C5 # 187| 4: [BlockStmt] {...} # 188| 0: [ReturnStmt] return ...; # 188| 0: [OperatorCall] call to operator explicit conversion # 188| -1: [TypeMention] C5 # 188| 0: [ThisAccess] this access -# 191| 7: [AddOperator] + +# 191| 8: [AddOperator] + # 191| -1: [TypeMention] C6 #-----| 2: (Parameters) # 191| 0: [Parameter] x @@ -480,10 +480,10 @@ definitions.cs: #-----| 3: (Base types) # 194| 0: [TypeMention] Attribute # 196| 16: [Class] C7 -# 198| 5: [Method] M +# 198| 6: [Method] M # 198| -1: [TypeMention] Void # 198| 4: [BlockStmt] {...} -# 200| 6: [Method] M2 +# 200| 7: [Method] M2 # 200| -1: [TypeMention] Void # 201| 4: [BlockStmt] {...} # 202| 0: [ExprStmt] ...; @@ -491,7 +491,7 @@ definitions.cs: # 202| -1: [TypeAccess] access to type C7 # 202| 0: [TypeMention] C7 # 206| 17: [Class] C8 -# 208| 5: [Method] F +# 208| 6: [Method] F # 208| -1: [TypeMention] Void # 209| 4: [BlockStmt] {...} # 210| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/delegates/PrintAst.expected b/csharp/ql/test/library-tests/delegates/PrintAst.expected index fee97ca9daf..86a5f9c241e 100644 --- a/csharp/ql/test/library-tests/delegates/PrintAst.expected +++ b/csharp/ql/test/library-tests/delegates/PrintAst.expected @@ -16,7 +16,7 @@ delegates.cs: # 9| 1: [Parameter] d # 9| -1: [TypeMention] double # 11| 3: [Class] A -# 14| 5: [Method] M1 +# 14| 6: [Method] M1 # 14| -1: [TypeMention] int #-----| 2: (Parameters) # 14| 0: [Parameter] a @@ -33,13 +33,13 @@ delegates.cs: # 14| 1: [ParameterAccess] access to parameter a # 14| 1: [ParameterAccess] access to parameter b # 18| 4: [Class] B -# 21| 5: [DelegateType] D2 +# 21| 6: [DelegateType] D2 #-----| 2: (Parameters) # 21| 0: [Parameter] c # 21| -1: [TypeMention] int # 21| 1: [Parameter] d # 21| -1: [TypeMention] double -# 23| 6: [Method] M1 +# 23| 7: [Method] M1 # 23| -1: [TypeMention] int #-----| 2: (Parameters) # 23| 0: [Parameter] f @@ -54,7 +54,7 @@ delegates.cs: # 23| 0: [TypeAccess] access to type Int32 # 23| 0: [TypeMention] int # 23| 1: [ParameterAccess] access to parameter g -# 25| 7: [Method] M2 +# 25| 8: [Method] M2 # 25| -1: [TypeMention] Void #-----| 2: (Parameters) # 25| 0: [Parameter] k @@ -62,7 +62,7 @@ delegates.cs: # 25| 1: [Parameter] l # 25| -1: [TypeMention] double # 25| 4: [BlockStmt] {...} -# 27| 8: [Method] M3 +# 27| 9: [Method] M3 # 27| -1: [TypeMention] int #-----| 2: (Parameters) # 27| 0: [Parameter] g @@ -74,7 +74,7 @@ delegates.cs: # 27| 0: [ParameterAccess] access to parameter g # 27| 1: [UnaryPlusExpr] +... # 27| 0: [ParameterAccess] access to parameter g -# 29| 9: [Method] M4 +# 29| 10: [Method] M4 # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] g @@ -87,7 +87,7 @@ delegates.cs: # 33| 0: [Parameter] value # 33| -1: [TypeMention] T # 35| 6: [Class] X -# 38| 5: [Method] F +# 38| 6: [Method] F # 38| -1: [TypeMention] bool #-----| 2: (Parameters) # 38| 0: [Parameter] i @@ -97,7 +97,7 @@ delegates.cs: # 38| 0: [LTExpr] ... < ... # 38| 0: [ParameterAccess] access to parameter i # 38| 1: [IntLiteral] 2 -# 40| 6: [Method] G +# 40| 7: [Method] G # 40| -1: [TypeMention] bool #-----| 2: (Parameters) # 40| 0: [Parameter] s @@ -110,26 +110,26 @@ delegates.cs: # 44| 0: [Parameter] x # 44| -1: [TypeMention] int # 46| 8: [Class] C -# 49| 5: [Method] M1 +# 49| 6: [Method] M1 # 49| -1: [TypeMention] Void #-----| 2: (Parameters) # 49| 0: [Parameter] i # 49| -1: [TypeMention] int # 49| 4: [BlockStmt] {...} -# 50| 6: [Method] M2 +# 50| 7: [Method] M2 # 50| -1: [TypeMention] Void #-----| 2: (Parameters) # 50| 0: [Parameter] i # 50| -1: [TypeMention] int # 50| 4: [BlockStmt] {...} -# 51| 7: [Method] M3 +# 51| 8: [Method] M3 # 51| -1: [TypeMention] Void #-----| 2: (Parameters) # 51| 0: [Parameter] i # 51| -1: [TypeMention] int # 51| 4: [BlockStmt] {...} # 55| 9: [Class] Test -# 58| 5: [Method] Main +# 58| 6: [Method] Main # 58| -1: [TypeMention] Void # 59| 4: [BlockStmt] {...} # 60| 0: [LocalVariableDeclStmt] ... ...; @@ -250,25 +250,25 @@ delegates.cs: # 81| 0: [LocalVariableDeclExpr] ContextCallback d # 81| 0: [TypeMention] ContextCallback # 86| 10: [Class] E -# 88| 5: [Field] Field +# 88| 6: [Field] Field # 88| -1: [TypeMention] Action # 88| 1: [TypeMention] int -# 89| 6: [Property] Property +# 89| 7: [Property] Property # 89| -1: [TypeMention] Action # 89| 1: [TypeMention] int # 89| 3: [Getter] get_Property # 89| 4: [Setter] set_Property #-----| 2: (Parameters) # 89| 0: [Parameter] value -# 90| 7: [Field] FieldPtr +# 90| 8: [Field] FieldPtr # 90| -1: [TypeMention] delegate* default -# 91| 8: [Property] PropertyPtr +# 91| 9: [Property] PropertyPtr # 91| -1: [TypeMention] delegate* default # 91| 3: [Getter] get_PropertyPtr # 91| 4: [Setter] set_PropertyPtr #-----| 2: (Parameters) # 91| 0: [Parameter] value -# 93| 9: [Method] M +# 93| 10: [Method] M # 93| -1: [TypeMention] Void # 94| 4: [BlockStmt] {...} # 95| 0: [ExprStmt] ...; diff --git a/csharp/ql/test/library-tests/dynamic/PrintAst.expected b/csharp/ql/test/library-tests/dynamic/PrintAst.expected index 160242e47f7..3bde4d42d86 100644 --- a/csharp/ql/test/library-tests/dynamic/PrintAst.expected +++ b/csharp/ql/test/library-tests/dynamic/PrintAst.expected @@ -1,11 +1,11 @@ dynamic.cs: # 4| [Class] DynamicTest -# 6| 4: [InstanceConstructor] DynamicTest +# 6| 5: [InstanceConstructor] DynamicTest #-----| 2: (Parameters) # 6| 0: [Parameter] x # 6| -1: [TypeMention] int # 6| 4: [BlockStmt] {...} -# 8| 5: [Method] Main +# 8| 6: [Method] Main # 8| -1: [TypeMention] Void #-----| 2: (Parameters) # 8| 0: [Parameter] args @@ -235,25 +235,25 @@ dynamic.cs: # 75| 0: [DelegateCall] delegate call # 75| -1: [LocalVariableAccess] access to local variable d # 75| 0: [IntLiteral] 42 -# 78| 6: [Method] Foo +# 78| 7: [Method] Foo # 78| -1: [TypeMention] Void #-----| 2: (Parameters) # 78| 0: [Parameter] x # 78| -1: [TypeMention] int # 78| 4: [BlockStmt] {...} -# 79| 7: [Method] Foo +# 79| 8: [Method] Foo # 79| -1: [TypeMention] Void #-----| 2: (Parameters) # 79| 0: [Parameter] x # 79| -1: [TypeMention] string # 79| 4: [BlockStmt] {...} -# 81| 8: [Method] Bar +# 81| 9: [Method] Bar # 81| -1: [TypeMention] Void #-----| 2: (Parameters) # 81| 0: [Parameter] x # 81| -1: [TypeMention] string # 81| 4: [BlockStmt] {...} -# 83| 9: [IncrementOperator] ++ +# 83| 10: [IncrementOperator] ++ # 83| -1: [TypeMention] DynamicTest #-----| 2: (Parameters) # 83| 0: [Parameter] dt @@ -261,15 +261,15 @@ dynamic.cs: # 84| 4: [BlockStmt] {...} # 85| 0: [ReturnStmt] return ...; # 85| 0: [ParameterAccess] access to parameter dt -# 88| 10: [Field] Field +# 88| 11: [Field] Field # 88| -1: [TypeMention] int -# 90| 11: [Property] Prop +# 90| 12: [Property] Prop # 90| -1: [TypeMention] int # 90| 3: [Getter] get_Prop # 90| 4: [Setter] set_Prop #-----| 2: (Parameters) # 90| 0: [Parameter] value -# 92| 12: [Indexer] Item +# 92| 13: [Indexer] Item # 92| -1: [TypeMention] int #-----| 1: (Parameters) # 92| 0: [Parameter] x diff --git a/csharp/ql/test/library-tests/enums/PrintAst.expected b/csharp/ql/test/library-tests/enums/PrintAst.expected index bb9e5a3a9c9..3495c43a493 100644 --- a/csharp/ql/test/library-tests/enums/PrintAst.expected +++ b/csharp/ql/test/library-tests/enums/PrintAst.expected @@ -31,7 +31,7 @@ enums.cs: # 40| 1: [CastExpr] (...) ... # 40| 1: [MemberConstantAccess] access to constant Red # 44| 6: [Class] Test -# 47| 5: [Method] Main +# 47| 6: [Method] Main # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 49| 0: [ExprStmt] ...; @@ -58,7 +58,7 @@ enums.cs: # 51| 0: [MemberConstantAccess] access to constant Blue # 51| -1: [TypeAccess] access to type SparseColor # 51| 0: [TypeMention] SparseColor -# 54| 6: [Method] StringFromColor +# 54| 7: [Method] StringFromColor # 54| -1: [TypeMention] string #-----| 2: (Parameters) # 54| 0: [Parameter] c diff --git a/csharp/ql/test/library-tests/events/PrintAst.expected b/csharp/ql/test/library-tests/events/PrintAst.expected index 84825067e42..4767ea99084 100644 --- a/csharp/ql/test/library-tests/events/PrintAst.expected +++ b/csharp/ql/test/library-tests/events/PrintAst.expected @@ -7,7 +7,7 @@ events.cs: # 7| 1: [Parameter] e # 7| -1: [TypeMention] object # 9| 2: [Class] Button -# 12| 5: [Event] Click +# 12| 6: [Event] Click # 12| -1: [TypeMention] EventHandler # 12| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -15,7 +15,7 @@ events.cs: # 12| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 12| 0: [Parameter] value -# 14| 6: [Method] OnClick +# 14| 7: [Method] OnClick # 14| -1: [TypeMention] Void #-----| 2: (Parameters) # 14| 0: [Parameter] e @@ -30,7 +30,7 @@ events.cs: # 17| -1: [EventAccess,EventCall] access to event Click # 17| 0: [ThisAccess] this access # 17| 1: [ParameterAccess] access to parameter e -# 20| 7: [Method] Reset +# 20| 8: [Method] Reset # 20| -1: [TypeMention] Void # 21| 4: [BlockStmt] {...} # 22| 0: [ExprStmt] ...; @@ -38,11 +38,11 @@ events.cs: # 22| 0: [EventAccess,EventCall] access to event Click # 22| 1: [NullLiteral] null # 26| 3: [Class] LoginDialog -# 29| 4: [Field] OkButton +# 29| 5: [Field] OkButton # 29| -1: [TypeMention] Button -# 30| 5: [Field] CancelButton +# 30| 6: [Field] CancelButton # 30| -1: [TypeMention] Button -# 32| 6: [InstanceConstructor] LoginDialog +# 32| 7: [InstanceConstructor] LoginDialog # 33| 4: [BlockStmt] {...} # 34| 0: [ExprStmt] ...; # 34| 0: [AssignExpr] ... = ... @@ -68,7 +68,7 @@ events.cs: # 37| 1: [ExplicitDelegateCreation] delegate creation of type EventHandler # 37| -1: [TypeMention] EventHandler # 37| 0: [MethodAccess] access to method CancelButtonClick -# 40| 7: [Method] OkButtonClick +# 40| 8: [Method] OkButtonClick # 40| -1: [TypeMention] Void #-----| 2: (Parameters) # 40| 0: [Parameter] sender @@ -76,7 +76,7 @@ events.cs: # 40| 1: [Parameter] e # 40| -1: [TypeMention] object # 41| 4: [BlockStmt] {...} -# 44| 8: [Method] CancelButtonClick +# 44| 9: [Method] CancelButtonClick # 44| -1: [TypeMention] Void #-----| 2: (Parameters) # 44| 0: [Parameter] sender @@ -85,15 +85,15 @@ events.cs: # 44| -1: [TypeMention] object # 45| 4: [BlockStmt] {...} # 50| 4: [Class] Control -# 53| 6: [Field] mouseDownEventKey +# 53| 7: [Field] mouseDownEventKey # 53| -1: [TypeMention] object # 53| 1: [ObjectCreation] object creation of type Object # 53| 0: [TypeMention] object -# 54| 7: [Field] mouseUpEventKey +# 54| 8: [Field] mouseUpEventKey # 54| -1: [TypeMention] object # 54| 1: [ObjectCreation] object creation of type Object # 54| 0: [TypeMention] object -# 57| 8: [Method] GetEventHandler +# 57| 9: [Method] GetEventHandler # 57| -1: [TypeMention] Delegate #-----| 2: (Parameters) # 57| 0: [Parameter] key @@ -101,7 +101,7 @@ events.cs: # 57| 4: [BlockStmt] {...} # 57| 0: [ReturnStmt] return ...; # 57| 0: [NullLiteral] null -# 60| 9: [Method] AddEventHandler +# 60| 10: [Method] AddEventHandler # 60| -1: [TypeMention] Void #-----| 2: (Parameters) # 60| 0: [Parameter] key @@ -109,7 +109,7 @@ events.cs: # 60| 1: [Parameter] handler # 60| -1: [TypeMention] Delegate # 60| 4: [BlockStmt] {...} -# 63| 10: [Method] RemoveEventHandler +# 63| 11: [Method] RemoveEventHandler # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] key @@ -117,7 +117,7 @@ events.cs: # 63| 1: [Parameter] handler # 63| -1: [TypeMention] Delegate # 63| 4: [BlockStmt] {...} -# 66| 11: [Event] MouseDown +# 66| 12: [Event] MouseDown # 68| 3: [AddEventAccessor] add_MouseDown #-----| 2: (Parameters) # 68| 0: [Parameter] value @@ -134,7 +134,7 @@ events.cs: # 69| 0: [MethodCall] call to method RemoveEventHandler # 69| 0: [FieldAccess] access to field mouseDownEventKey # 69| 1: [ParameterAccess] access to parameter value -# 73| 12: [Event] MouseUp +# 73| 13: [Event] MouseUp # 75| 3: [AddEventAccessor] add_MouseUp #-----| 2: (Parameters) # 75| 0: [Parameter] value @@ -151,7 +151,7 @@ events.cs: # 76| 0: [MethodCall] call to method RemoveEventHandler # 76| 0: [FieldAccess] access to field mouseUpEventKey # 76| 1: [ParameterAccess] access to parameter value -# 80| 13: [Method] OnMouseUp +# 80| 14: [Method] OnMouseUp # 80| -1: [TypeMention] Void #-----| 2: (Parameters) # 80| 0: [Parameter] args diff --git a/csharp/ql/test/library-tests/exceptions/PrintAst.expected b/csharp/ql/test/library-tests/exceptions/PrintAst.expected index bbe09076bc6..bdc7ecb3688 100644 --- a/csharp/ql/test/library-tests/exceptions/PrintAst.expected +++ b/csharp/ql/test/library-tests/exceptions/PrintAst.expected @@ -1,11 +1,11 @@ exceptions.cs: # 3| [Class] Class1 -# 5| 5: [Method] G +# 5| 6: [Method] G # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} -# 9| 6: [Field] p +# 9| 7: [Field] p # 9| -1: [TypeMention] int -# 11| 7: [Method] TestNoThrow +# 11| 8: [Method] TestNoThrow # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [TryStmt] try {...} ... @@ -38,7 +38,7 @@ exceptions.cs: # 33| 0: [TypeMention] Exception # 34| 1: [BlockStmt] {...} # 35| 0: [EmptyStmt] ; -# 43| 8: [Method] TestCall +# 43| 9: [Method] TestCall # 43| -1: [TypeMention] Void # 44| 4: [BlockStmt] {...} # 45| 0: [TryStmt] try {...} ... @@ -69,7 +69,7 @@ exceptions.cs: # 66| 5: [GeneralCatchClause] catch {...} # 67| 1: [BlockStmt] {...} # 68| 0: [EmptyStmt] ; -# 72| 9: [Method] TestCreation +# 72| 10: [Method] TestCreation # 72| -1: [TypeMention] Void # 73| 4: [BlockStmt] {...} # 74| 0: [TryStmt] try {...} ... @@ -106,7 +106,7 @@ exceptions.cs: # 95| 0: [TypeMention] Exception # 96| 1: [BlockStmt] {...} # 97| 0: [EmptyStmt] ; -# 101| 10: [Method] TestIntAdd +# 101| 11: [Method] TestIntAdd # 101| -1: [TypeMention] Void # 102| 4: [BlockStmt] {...} # 103| 0: [TryStmt] try {...} ... @@ -144,7 +144,7 @@ exceptions.cs: # 124| 0: [TypeMention] Exception # 125| 1: [BlockStmt] {...} # 126| 0: [EmptyStmt] ; -# 130| 11: [Method] TestIntSub +# 130| 12: [Method] TestIntSub # 130| -1: [TypeMention] Void # 131| 4: [BlockStmt] {...} # 132| 0: [TryStmt] try {...} ... @@ -182,7 +182,7 @@ exceptions.cs: # 153| 0: [TypeMention] Exception # 154| 1: [BlockStmt] {...} # 155| 0: [EmptyStmt] ; -# 159| 12: [Method] TestIntMul +# 159| 13: [Method] TestIntMul # 159| -1: [TypeMention] Void # 160| 4: [BlockStmt] {...} # 161| 0: [TryStmt] try {...} ... @@ -220,7 +220,7 @@ exceptions.cs: # 182| 0: [TypeMention] Exception # 183| 1: [BlockStmt] {...} # 184| 0: [EmptyStmt] ; -# 188| 13: [Method] TestStringLiteral +# 188| 14: [Method] TestStringLiteral # 188| -1: [TypeMention] Void # 189| 4: [BlockStmt] {...} # 190| 0: [TryStmt] try {...} ... @@ -256,7 +256,7 @@ exceptions.cs: # 211| 0: [TypeMention] Exception # 212| 1: [BlockStmt] {...} # 213| 0: [EmptyStmt] ; -# 217| 14: [Method] TestStringAdd +# 217| 15: [Method] TestStringAdd # 217| -1: [TypeMention] Void # 218| 4: [BlockStmt] {...} # 219| 0: [TryStmt] try {...} ... @@ -299,7 +299,7 @@ exceptions.cs: # 241| 0: [TypeMention] Exception # 242| 1: [BlockStmt] {...} # 243| 0: [EmptyStmt] ; -# 247| 15: [Method] TestDivide +# 247| 16: [Method] TestDivide # 247| -1: [TypeMention] Void # 248| 4: [BlockStmt] {...} # 249| 0: [TryStmt] try {...} ... @@ -337,7 +337,7 @@ exceptions.cs: # 270| 0: [TypeMention] Exception # 271| 1: [BlockStmt] {...} # 272| 0: [EmptyStmt] ; -# 276| 16: [Method] TestRemainder +# 276| 17: [Method] TestRemainder # 276| -1: [TypeMention] Void # 277| 4: [BlockStmt] {...} # 278| 0: [TryStmt] try {...} ... @@ -375,7 +375,7 @@ exceptions.cs: # 299| 0: [TypeMention] Exception # 300| 1: [BlockStmt] {...} # 301| 0: [EmptyStmt] ; -# 305| 17: [Method] TestMemberAccess +# 305| 18: [Method] TestMemberAccess # 305| -1: [TypeMention] Void # 306| 4: [BlockStmt] {...} # 307| 0: [TryStmt] try {...} ... @@ -412,7 +412,7 @@ exceptions.cs: # 328| 0: [TypeMention] Exception # 329| 1: [BlockStmt] {...} # 330| 0: [EmptyStmt] ; -# 334| 18: [Method] TestCast +# 334| 19: [Method] TestCast # 334| -1: [TypeMention] Void # 335| 4: [BlockStmt] {...} # 336| 0: [TryStmt] try {...} ... @@ -451,7 +451,7 @@ exceptions.cs: # 357| 0: [TypeMention] Exception # 358| 1: [BlockStmt] {...} # 359| 0: [EmptyStmt] ; -# 363| 19: [Method] TestThrow +# 363| 20: [Method] TestThrow # 363| -1: [TypeMention] Void # 364| 4: [BlockStmt] {...} # 365| 0: [TryStmt] try {...} ... @@ -490,7 +490,7 @@ exceptions.cs: # 387| 0: [TypeMention] Exception # 388| 1: [BlockStmt] {...} # 389| 0: [EmptyStmt] ; -# 393| 20: [Method] TestUnaryOperation +# 393| 21: [Method] TestUnaryOperation # 393| -1: [TypeMention] Void # 394| 4: [BlockStmt] {...} # 395| 0: [TryStmt] try {...} ... @@ -529,7 +529,7 @@ exceptions.cs: # 417| 0: [TypeMention] Exception # 418| 1: [BlockStmt] {...} # 419| 0: [EmptyStmt] ; -# 423| 21: [Method] TestRethrow +# 423| 22: [Method] TestRethrow # 423| -1: [TypeMention] Void # 424| 4: [BlockStmt] {...} # 425| 0: [TryStmt] try {...} ... @@ -548,7 +548,7 @@ exceptions.cs: # 440| 2: [GeneralCatchClause] catch {...} # 441| 1: [BlockStmt] {...} # 442| 0: [EmptyStmt] ; -# 446| 22: [Method] TestSubtypeCast +# 446| 23: [Method] TestSubtypeCast # 446| -1: [TypeMention] Void # 447| 4: [BlockStmt] {...} # 448| 0: [TryStmt] try {...} ... @@ -577,7 +577,7 @@ exceptions.cs: # 458| 0: [TypeMention] Exception # 459| 1: [BlockStmt] {...} # 460| 0: [EmptyStmt] ; -# 464| 23: [Method] TestDivideMaybeZero +# 464| 24: [Method] TestDivideMaybeZero # 464| -1: [TypeMention] Void #-----| 2: (Parameters) # 464| 0: [Parameter] i diff --git a/csharp/ql/test/library-tests/expressions/PrintAst.expected b/csharp/ql/test/library-tests/expressions/PrintAst.expected index bee0a1e429c..208ea388114 100644 --- a/csharp/ql/test/library-tests/expressions/PrintAst.expected +++ b/csharp/ql/test/library-tests/expressions/PrintAst.expected @@ -1,6 +1,6 @@ FoldedLiterals.cs: # 1| [Class] FoldedLiterals -# 3| 5: [Method] Test +# 3| 6: [Method] Test # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 6| 0: [LocalVariableDeclStmt] ... ...; @@ -338,7 +338,7 @@ FoldedLiterals.cs: # 77| 0: [DecimalLiteral] 11 MethodAccess.cs: # 3| [Class] MethodAccess -# 5| 5: [Method] M +# 5| 6: [Method] M # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalFunctionStmt] M1(...) @@ -374,29 +374,29 @@ MethodAccess.cs: # 12| 0: [MethodAccess] access to method M3 # 12| -1: [TypeAccess] access to type MethodAccess # 12| 0: [TypeMention] MethodAccess -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 15| 4: [BlockStmt] {...} -# 17| 7: [Method] M3 +# 17| 8: [Method] M3 # 17| -1: [TypeMention] Void # 17| 4: [BlockStmt] {...} Qualifiers.cs: # 3| [Class] Qualifiers -# 5| 5: [Property] S +# 5| 6: [Property] S # 5| -1: [TypeMention] short # 5| 3: [Getter] get_S # 5| 4: [MethodCall] call to method Static # 5| 0: [NullLiteral] null -# 7| 6: [Property] I +# 7| 7: [Property] I # 7| -1: [TypeMention] int # 7| 3: [Getter] get_I # 7| 4: [MethodCall] call to method Instance -# 9| 7: [Property] B +# 9| 8: [Property] B # 9| -1: [TypeMention] bool # 9| 3: [Getter] get_B # 9| 4: [MethodCall] call to method Instance # 9| -1: [ThisAccess] this access -# 11| 9: [Method] Static`1 +# 11| 10: [Method] Static`1 # 11| -1: [TypeMention] T #-----| 1: (Type parameters) # 11| 0: [TypeParameter] T @@ -406,7 +406,7 @@ Qualifiers.cs: # 11| 4: [DefaultValueExpr] default(...) # 11| 0: [TypeAccess] access to type T # 11| 0: [TypeMention] T -# 13| 12: [Method] Instance`1 +# 13| 13: [Method] Instance`1 # 13| -1: [TypeMention] T #-----| 1: (Type parameters) # 13| 0: [TypeParameter] T @@ -415,7 +415,7 @@ Qualifiers.cs: # 13| 0: [TypeMention] T ReducedExpression.cs: # 2| [Class] ReducedClass -# 5| 5: [Field] ReducedExpression +# 5| 6: [Field] ReducedExpression # 5| -1: [TypeMention] int # 5| 1: [ConditionalExpr] ... ? ... : ... # 5| 0: [BoolLiteral] true @@ -424,7 +424,7 @@ ReducedExpression.cs: expressions.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] Class -# 10| 4: [Method] MainLiterals +# 10| 5: [Method] MainLiterals # 10| -1: [TypeMention] Void # 11| 4: [BlockStmt] {...} # 12| 0: [LocalVariableDeclStmt] ... ...; @@ -514,7 +514,7 @@ expressions.cs: # 34| 0: [AssignExpr] ... = ... # 34| 0: [LocalVariableAccess] access to local variable o # 34| 1: [NullLiteral] null -# 37| 5: [Method] LogicalOperators +# 37| 6: [Method] LogicalOperators # 37| -1: [TypeMention] bool #-----| 2: (Parameters) # 37| 0: [Parameter] a @@ -546,15 +546,15 @@ expressions.cs: # 41| 1: [ParameterAccess] access to parameter b # 41| 1: [LogicalNotExpr] !... # 41| 0: [LocalVariableAccess] access to local variable c -# 44| 6: [Field] constant +# 44| 7: [Field] constant # 44| -1: [TypeMention] string # 44| 1: [StringLiteralUtf16] "constant" -# 45| 7: [Field] f +# 45| 8: [Field] f # 45| -1: [TypeMention] int # 45| 1: [IntLiteral] 0 -# 46| 8: [Field] name +# 46| 9: [Field] name # 46| -1: [TypeMention] string -# 48| 9: [StaticConstructor] Class +# 48| 10: [StaticConstructor] Class # 49| 4: [BlockStmt] {...} # 51| 0: [ExprStmt] ...; # 51| 0: [AssignExpr] ... = ... @@ -568,19 +568,19 @@ expressions.cs: # 52| 0: [TypeMention] Class # 53| 2: [ExprStmt] ...; # 53| 0: [MethodCall] call to method Foo -# 56| 10: [InstanceConstructor] Class +# 56| 11: [InstanceConstructor] Class # 56| 3: [ConstructorInitializer] call to constructor Class # 56| 0: [IntLiteral] 0 # 56| 4: [BlockStmt] {...} -# 58| 11: [InstanceConstructor] Class +# 58| 12: [InstanceConstructor] Class #-----| 2: (Parameters) # 58| 0: [Parameter] i # 58| -1: [TypeMention] int # 58| 4: [BlockStmt] {...} -# 60| 12: [Method] Foo +# 60| 13: [Method] Foo # 60| -1: [TypeMention] Void # 60| 4: [BlockStmt] {...} -# 62| 13: [Method] Bar +# 62| 14: [Method] Bar # 62| -1: [TypeMention] int #-----| 2: (Parameters) # 62| 0: [Parameter] x @@ -593,7 +593,7 @@ expressions.cs: # 64| 0: [PropertyCall] access to property Length # 64| -1: [ParameterAccess] access to parameter s # 64| 1: [ParameterAccess] access to parameter x -# 67| 14: [Property] Name +# 67| 15: [Property] Name # 67| -1: [TypeMention] string # 69| 3: [Getter] get_Name # 69| 4: [BlockStmt] {...} @@ -607,7 +607,7 @@ expressions.cs: # 70| 0: [AssignExpr] ... = ... # 70| 0: [FieldAccess] access to field name # 70| 1: [ParameterAccess] access to parameter value -# 73| 15: [Indexer] Item +# 73| 16: [Indexer] Item # 73| -1: [TypeMention] bool #-----| 1: (Parameters) # 73| 0: [Parameter] i @@ -638,7 +638,7 @@ expressions.cs: # 76| 1: [ExprStmt] ...; # 76| 0: [PostIncrExpr] ...++ # 76| 0: [FieldAccess] access to field f -# 79| 16: [Method] MainAccesses +# 79| 17: [Method] MainAccesses # 79| -1: [TypeMention] Void #-----| 2: (Parameters) # 79| 0: [Parameter] other @@ -718,7 +718,7 @@ expressions.cs: # 89| -1: [LocalVariableAccess] access to local variable inlinearray # 89| 0: [IntLiteral] 2 # 89| 1: [IntLiteral] 7 -# 92| 17: [Method] MainIsAsCast +# 92| 18: [Method] MainIsAsCast # 92| -1: [TypeMention] Void #-----| 2: (Parameters) # 92| 0: [Parameter] s @@ -780,14 +780,14 @@ expressions.cs: # 101| 1: [StringLiteralUtf16] " " # 101| 1: [CastExpr] (...) ... # 101| 1: [LocalVariableAccess] access to local variable i -# 104| 18: [Class] Y`2 +# 104| 19: [Class] Y`2 #-----| 1: (Type parameters) # 104| 0: [TypeParameter] T # 104| 1: [TypeParameter] U -# 108| 20: [Class] X`1 +# 108| 21: [Class] X`1 #-----| 1: (Type parameters) # 108| 0: [TypeParameter] T -# 111| 5: [Method] PrintTypes +# 111| 6: [Method] PrintTypes # 111| -1: [TypeMention] Void # 112| 4: [BlockStmt] {...} # 113| 0: [LocalVariableDeclStmt] ... ...; @@ -840,17 +840,17 @@ expressions.cs: # 125| 1: [DefaultValueExpr] default(...) # 125| 0: [TypeAccess] access to type T # 125| 0: [TypeMention] T -# 130| 21: [Class] Nested +# 130| 22: [Class] Nested #-----| 3: (Base types) # 130| 0: [TypeMention] Class -# 132| 4: [StaticConstructor] Nested +# 132| 5: [StaticConstructor] Nested # 132| 4: [BlockStmt] {...} -# 133| 5: [InstanceConstructor] Nested +# 133| 6: [InstanceConstructor] Nested #-----| 2: (Parameters) # 133| 0: [Parameter] b # 133| -1: [TypeMention] bool # 133| 4: [BlockStmt] {...} -# 134| 6: [InstanceConstructor] Nested +# 134| 7: [InstanceConstructor] Nested #-----| 2: (Parameters) # 134| 0: [Parameter] i # 134| -1: [TypeMention] int @@ -859,7 +859,7 @@ expressions.cs: # 134| 0: [ParameterAccess] access to parameter i # 134| 1: [IntLiteral] 1 # 134| 4: [BlockStmt] {...} -# 136| 7: [Method] OtherAccesses +# 136| 8: [Method] OtherAccesses # 136| -1: [TypeMention] Void # 137| 4: [BlockStmt] {...} # 138| 0: [ExprStmt] ...; @@ -880,7 +880,7 @@ expressions.cs: # 139| 4: [CastExpr] (...) ... # 139| 1: [IntLiteral] 4 # 139| 5: [StringLiteralUtf16] "" -# 144| 22: [Method] MainLocalVarDecl +# 144| 23: [Method] MainLocalVarDecl # 144| -1: [TypeMention] Void # 145| 4: [BlockStmt] {...} # 146| 0: [LocalVariableDeclStmt] ... ...; @@ -918,7 +918,7 @@ expressions.cs: # 151| -1: [TypeMention] string # 151| 0: [LocalVariableAccess] access to local variable y # 151| 1: [StringLiteralUtf16] "test" -# 154| 23: [Method] MainLocalConstDecl +# 154| 24: [Method] MainLocalConstDecl # 154| -1: [TypeMention] Void # 155| 4: [BlockStmt] {...} # 156| 0: [LocalConstantDeclStmt] const ... ...; @@ -944,7 +944,7 @@ expressions.cs: # 158| 1: [LocalVariableAccess] access to local variable r # 158| 1: [CastExpr] (...) ... # 158| 1: [LocalVariableAccess] access to local variable r -# 161| 24: [Method] MainChecked +# 161| 25: [Method] MainChecked # 161| -1: [TypeMention] Void # 162| 4: [BlockStmt] {...} # 163| 0: [LocalVariableDeclStmt] ... ...; @@ -961,7 +961,7 @@ expressions.cs: # 164| 0: [AddExpr] ... + ... # 164| 0: [FieldAccess] access to field f # 164| 1: [IntLiteral] 20 -# 167| 25: [Method] MainElementAccess +# 167| 26: [Method] MainElementAccess # 167| -1: [TypeMention] Void #-----| 2: (Parameters) # 167| 0: [Parameter] i @@ -978,7 +978,7 @@ expressions.cs: # 169| -1: [ArrayInitializer] { ..., ... } # 169| 0: [CastExpr] (...) ... # 169| 1: [ParameterAccess] access to parameter i -# 172| 26: [Method] MainDelegateAndMethodAccesses +# 172| 27: [Method] MainDelegateAndMethodAccesses # 172| -1: [TypeMention] Void # 173| 4: [BlockStmt] {...} # 174| 0: [LocalVariableDeclStmt] ... ...; @@ -1127,26 +1127,26 @@ expressions.cs: # 205| 0: [Parameter] x # 205| -1: [TypeMention] int # 207| 4: [Class] C -# 210| 5: [Method] M1 +# 210| 6: [Method] M1 # 210| -1: [TypeMention] Void #-----| 2: (Parameters) # 210| 0: [Parameter] i # 210| -1: [TypeMention] int # 210| 4: [BlockStmt] {...} -# 211| 6: [Method] M2 +# 211| 7: [Method] M2 # 211| -1: [TypeMention] Void #-----| 2: (Parameters) # 211| 0: [Parameter] i # 211| -1: [TypeMention] int # 211| 4: [BlockStmt] {...} -# 212| 7: [Method] M3 +# 212| 8: [Method] M3 # 212| -1: [TypeMention] Void #-----| 2: (Parameters) # 212| 0: [Parameter] i # 212| -1: [TypeMention] int # 212| 4: [BlockStmt] {...} # 216| 5: [Class] X -# 219| 5: [Method] F +# 219| 6: [Method] F # 219| -1: [TypeMention] bool #-----| 2: (Parameters) # 219| 0: [Parameter] i @@ -1156,7 +1156,7 @@ expressions.cs: # 219| 0: [LTExpr] ... < ... # 219| 0: [ParameterAccess] access to parameter i # 219| 1: [IntLiteral] 2 -# 221| 6: [Method] G +# 221| 7: [Method] G # 221| -1: [TypeMention] bool #-----| 2: (Parameters) # 221| 0: [Parameter] s @@ -1171,7 +1171,7 @@ expressions.cs: # 225| 1: [Parameter] e # 225| -1: [TypeMention] object # 227| 7: [Class] Button -# 230| 5: [Event] Click +# 230| 6: [Event] Click # 230| -1: [TypeMention] EventHandler # 230| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -1179,7 +1179,7 @@ expressions.cs: # 230| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 230| 0: [Parameter] value -# 232| 6: [Method] OnClick +# 232| 7: [Method] OnClick # 232| -1: [TypeMention] Void #-----| 2: (Parameters) # 232| 0: [Parameter] e @@ -1194,7 +1194,7 @@ expressions.cs: # 235| -1: [EventAccess,EventCall] access to event Click # 235| 0: [ThisAccess] this access # 235| 1: [ParameterAccess] access to parameter e -# 238| 7: [Method] Reset +# 238| 8: [Method] Reset # 238| -1: [TypeMention] Void # 239| 4: [BlockStmt] {...} # 240| 0: [ExprStmt] ...; @@ -1202,11 +1202,11 @@ expressions.cs: # 240| 0: [EventAccess,EventCall] access to event Click # 240| 1: [NullLiteral] null # 244| 8: [Class] LoginDialog -# 247| 4: [Field] OkButton +# 247| 5: [Field] OkButton # 247| -1: [TypeMention] Button -# 248| 5: [Field] CancelButton +# 248| 6: [Field] CancelButton # 248| -1: [TypeMention] Button -# 250| 6: [InstanceConstructor] LoginDialog +# 250| 7: [InstanceConstructor] LoginDialog # 251| 4: [BlockStmt] {...} # 252| 0: [ExprStmt] ...; # 252| 0: [AssignExpr] ... = ... @@ -1232,7 +1232,7 @@ expressions.cs: # 255| 1: [ExplicitDelegateCreation] delegate creation of type EventHandler # 255| -1: [TypeMention] EventHandler # 255| 0: [MethodAccess] access to method CancelButtonClick -# 258| 7: [Method] OkButtonClick +# 258| 8: [Method] OkButtonClick # 258| -1: [TypeMention] Void #-----| 2: (Parameters) # 258| 0: [Parameter] sender @@ -1240,7 +1240,7 @@ expressions.cs: # 258| 1: [Parameter] e # 258| -1: [TypeMention] object # 259| 4: [BlockStmt] {...} -# 262| 8: [Method] CancelButtonClick +# 262| 9: [Method] CancelButtonClick # 262| -1: [TypeMention] Void #-----| 2: (Parameters) # 262| 0: [Parameter] sender @@ -1249,18 +1249,18 @@ expressions.cs: # 262| -1: [TypeMention] object # 263| 4: [BlockStmt] {...} # 268| 9: [Class] IntVector -# 271| 4: [InstanceConstructor] IntVector +# 271| 5: [InstanceConstructor] IntVector #-----| 2: (Parameters) # 271| 0: [Parameter] length # 271| -1: [TypeMention] int # 271| 4: [BlockStmt] {...} -# 273| 5: [Property] Length +# 273| 6: [Property] Length # 273| -1: [TypeMention] int # 273| 3: [Getter] get_Length # 273| 4: [BlockStmt] {...} # 273| 0: [ReturnStmt] return ...; # 273| 0: [IntLiteral] 4 -# 275| 6: [Indexer] Item +# 275| 7: [Indexer] Item # 275| -1: [TypeMention] int #-----| 1: (Parameters) # 275| 0: [Parameter] index @@ -1276,7 +1276,7 @@ expressions.cs: # 275| 0: [Parameter] index # 275| 1: [Parameter] value # 275| 4: [BlockStmt] {...} -# 277| 7: [IncrementOperator] ++ +# 277| 8: [IncrementOperator] ++ # 277| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 277| 0: [Parameter] iv @@ -1313,7 +1313,7 @@ expressions.cs: # 281| 1: [IntLiteral] 1 # 282| 2: [ReturnStmt] return ...; # 282| 0: [LocalVariableAccess] access to local variable temp -# 285| 8: [AddOperator] + +# 285| 9: [AddOperator] + # 285| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 285| 0: [Parameter] iv1 @@ -1324,7 +1324,7 @@ expressions.cs: # 287| 0: [ReturnStmt] return ...; # 287| 0: [ParameterAccess] access to parameter iv1 # 292| 10: [Class] TestUnaryOperator -# 295| 5: [Method] MainUnaryOperator +# 295| 6: [Method] MainUnaryOperator # 295| -1: [TypeMention] Void # 296| 4: [BlockStmt] {...} # 297| 0: [LocalVariableDeclStmt] ... ...; @@ -1355,9 +1355,9 @@ expressions.cs: # 301| 0: [LocalVariableAccess] access to local variable iv1 # 301| 1: [LocalVariableAccess] access to local variable iv2 # 306| 11: [Struct] Digit -# 309| 5: [Field] value +# 309| 6: [Field] value # 309| -1: [TypeMention] byte -# 311| 6: [InstanceConstructor] Digit +# 311| 7: [InstanceConstructor] Digit #-----| 2: (Parameters) # 311| 0: [Parameter] value # 311| -1: [TypeMention] byte @@ -1380,7 +1380,7 @@ expressions.cs: # 315| 0: [FieldAccess] access to field value # 315| -1: [ThisAccess] this access # 315| 1: [ParameterAccess] access to parameter value -# 318| 7: [ImplicitConversionOperator] implicit conversion +# 318| 8: [ImplicitConversionOperator] implicit conversion # 318| -1: [TypeMention] byte #-----| 2: (Parameters) # 318| 0: [Parameter] d @@ -1389,7 +1389,7 @@ expressions.cs: # 320| 0: [ReturnStmt] return ...; # 320| 0: [FieldAccess] access to field value # 320| -1: [ParameterAccess] access to parameter d -# 323| 8: [ExplicitConversionOperator] explicit conversion +# 323| 9: [ExplicitConversionOperator] explicit conversion # 323| -1: [TypeMention] Digit #-----| 2: (Parameters) # 323| 0: [Parameter] b @@ -1400,7 +1400,7 @@ expressions.cs: # 325| -1: [TypeMention] Digit # 325| 0: [ParameterAccess] access to parameter b # 330| 12: [Class] TestConversionOperator -# 333| 5: [Method] MainConversionOperator +# 333| 6: [Method] MainConversionOperator # 333| -1: [TypeMention] Void # 334| 4: [BlockStmt] {...} # 335| 0: [LocalVariableDeclStmt] ... ...; @@ -1418,11 +1418,11 @@ expressions.cs: # 336| 1: [OperatorCall] call to operator implicit conversion # 336| 0: [LocalVariableAccess] access to local variable d # 341| 13: [Class] Point -# 344| 5: [Field] x +# 344| 6: [Field] x # 344| -1: [TypeMention] int -# 344| 6: [Field] y +# 344| 7: [Field] y # 344| -1: [TypeMention] int -# 346| 7: [Property] X +# 346| 8: [Property] X # 346| -1: [TypeMention] int # 346| 3: [Getter] get_X # 346| 4: [BlockStmt] {...} @@ -1436,7 +1436,7 @@ expressions.cs: # 346| 0: [AssignExpr] ... = ... # 346| 0: [FieldAccess] access to field x # 346| 1: [ParameterAccess] access to parameter value -# 347| 8: [Property] Y +# 347| 9: [Property] Y # 347| -1: [TypeMention] int # 347| 3: [Getter] get_Y # 347| 4: [BlockStmt] {...} @@ -1451,11 +1451,11 @@ expressions.cs: # 347| 0: [FieldAccess] access to field y # 347| 1: [ParameterAccess] access to parameter value # 351| 14: [Class] Rectangle -# 354| 5: [Field] p1 +# 354| 6: [Field] p1 # 354| -1: [TypeMention] Point -# 354| 6: [Field] p2 +# 354| 7: [Field] p2 # 354| -1: [TypeMention] Point -# 356| 7: [Property] P1 +# 356| 8: [Property] P1 # 356| -1: [TypeMention] Point # 356| 3: [Getter] get_P1 # 356| 4: [BlockStmt] {...} @@ -1469,7 +1469,7 @@ expressions.cs: # 356| 0: [AssignExpr] ... = ... # 356| 0: [FieldAccess] access to field p1 # 356| 1: [ParameterAccess] access to parameter value -# 357| 8: [Property] P2 +# 357| 9: [Property] P2 # 357| -1: [TypeMention] Point # 357| 3: [Getter] get_P2 # 357| 4: [BlockStmt] {...} @@ -1484,36 +1484,36 @@ expressions.cs: # 357| 0: [FieldAccess] access to field p2 # 357| 1: [ParameterAccess] access to parameter value # 361| 15: [Class] Rectangle2 -# 364| 5: [Field] p1 +# 364| 6: [Field] p1 # 364| -1: [TypeMention] Point # 364| 1: [ObjectCreation] object creation of type Point # 364| 0: [TypeMention] Point -# 365| 6: [Field] p2 +# 365| 7: [Field] p2 # 365| -1: [TypeMention] Point # 365| 1: [ObjectCreation] object creation of type Point # 365| 0: [TypeMention] Point -# 367| 7: [Property] P1 +# 367| 8: [Property] P1 # 367| -1: [TypeMention] Point # 367| 3: [Getter] get_P1 # 367| 4: [BlockStmt] {...} # 367| 0: [ReturnStmt] return ...; # 367| 0: [FieldAccess] access to field p1 -# 368| 8: [Property] P2 +# 368| 9: [Property] P2 # 368| -1: [TypeMention] Point # 368| 3: [Getter] get_P2 # 368| 4: [BlockStmt] {...} # 368| 0: [ReturnStmt] return ...; # 368| 0: [FieldAccess] access to field p2 # 372| 16: [Class] Contact -# 375| 5: [Field] name +# 375| 6: [Field] name # 375| -1: [TypeMention] string -# 376| 6: [Field] phoneNumbers +# 376| 7: [Field] phoneNumbers # 376| -1: [TypeMention] List # 376| 1: [TypeMention] string # 376| 1: [ObjectCreation] object creation of type List # 376| 0: [TypeMention] List # 376| 1: [TypeMention] string -# 378| 7: [Property] Name +# 378| 8: [Property] Name # 378| -1: [TypeMention] string # 378| 3: [Getter] get_Name # 378| 4: [BlockStmt] {...} @@ -1527,7 +1527,7 @@ expressions.cs: # 378| 0: [AssignExpr] ... = ... # 378| 0: [FieldAccess] access to field name # 378| 1: [ParameterAccess] access to parameter value -# 379| 8: [Property] PhoneNumbers +# 379| 9: [Property] PhoneNumbers # 379| -1: [TypeMention] List # 379| 1: [TypeMention] string # 379| 3: [Getter] get_PhoneNumbers @@ -1535,7 +1535,7 @@ expressions.cs: # 379| 0: [ReturnStmt] return ...; # 379| 0: [FieldAccess] access to field phoneNumbers # 383| 17: [Class] TestCreations -# 386| 5: [Method] MainCreations +# 386| 6: [Method] MainCreations # 386| -1: [TypeMention] Void # 387| 4: [BlockStmt] {...} # 388| 0: [LocalVariableDeclStmt] ... ...; @@ -1827,14 +1827,14 @@ expressions.cs: # 430| 0: [EQExpr] ... == ... # 430| 0: [LocalVariableAccess] access to local variable i # 430| 1: [IntLiteral] 2 -# 433| 6: [DelegateType] S +# 433| 7: [DelegateType] S #-----| 2: (Parameters) # 433| 0: [Parameter] x # 433| -1: [TypeMention] int # 433| 1: [Parameter] y # 433| -1: [TypeMention] int -# 434| 7: [DelegateType] Unit -# 436| 8: [Method] MultiDimensionalArrayCreations +# 434| 8: [DelegateType] Unit +# 436| 9: [Method] MultiDimensionalArrayCreations # 436| -1: [TypeMention] Void # 437| 4: [BlockStmt] {...} # 438| 0: [LocalVariableDeclStmt] ... ...; @@ -1994,7 +1994,7 @@ expressions.cs: # 445| 0: [IntLiteral] 1 # 445| 1: [IntLiteral] 2 # 445| 2: [IntLiteral] 3 -# 448| 9: [Method] MainAnonymousFunctions +# 448| 10: [Method] MainAnonymousFunctions # 448| -1: [TypeMention] Void # 449| 4: [BlockStmt] {...} # 450| 0: [LocalVariableDeclStmt] ... ...; @@ -2108,7 +2108,7 @@ expressions.cs: # 458| 0: [LocalVariableAccess] access to local variable j # 458| 1: [IntLiteral] 1 # 463| 18: [Class] OperatorCalls -# 465| 5: [Method] delegateCombine +# 465| 6: [Method] delegateCombine # 465| -1: [TypeMention] Void #-----| 2: (Parameters) # 465| 0: [Parameter] fun @@ -2123,7 +2123,7 @@ expressions.cs: # 468| 0: [AssignAddExpr] ... += ... # 468| 0: [LocalVariableAccess] access to local variable PropertyChanged # 468| 1: [ParameterAccess] access to parameter fun -# 471| 6: [Method] addition +# 471| 7: [Method] addition # 471| -1: [TypeMention] Num #-----| 2: (Parameters) # 471| 0: [Parameter] a @@ -2146,10 +2146,10 @@ expressions.cs: # 474| 1: [ParameterAccess] access to parameter c # 475| 2: [ReturnStmt] return ...; # 475| 0: [LocalVariableAccess] access to local variable result -# 477| 7: [Class] Num -# 479| 4: [Field] value +# 477| 8: [Class] Num +# 479| 5: [Field] value # 479| -1: [TypeMention] int -# 481| 5: [InstanceConstructor] Num +# 481| 6: [InstanceConstructor] Num #-----| 2: (Parameters) # 481| 0: [Parameter] value # 481| -1: [TypeMention] int @@ -2159,7 +2159,7 @@ expressions.cs: # 483| 0: [FieldAccess] access to field value # 483| -1: [ThisAccess] this access # 483| 1: [ParameterAccess] access to parameter value -# 486| 6: [AddOperator] + +# 486| 7: [AddOperator] + # 486| -1: [TypeMention] Num #-----| 2: (Parameters) # 486| 0: [Parameter] c1 @@ -2175,12 +2175,12 @@ expressions.cs: # 488| -1: [ParameterAccess] access to parameter c1 # 488| 1: [FieldAccess] access to field value # 488| -1: [ParameterAccess] access to parameter c2 -# 492| 8: [DelegateType] MyDelegate +# 492| 9: [DelegateType] MyDelegate #-----| 2: (Parameters) # 492| 0: [Parameter] e # 492| -1: [TypeMention] string # 495| 19: [Class] ExpressionDepth -# 497| 5: [Field] d +# 497| 6: [Field] d # 497| -1: [TypeMention] int # 497| 1: [AddExpr] ... + ... # 497| 0: [AddExpr] ... + ... @@ -2342,7 +2342,7 @@ expressions.cs: # 498| 1: [IntLiteral] 1 # 498| 1: [IntLiteral] 1 # 501| 20: [Class] TupleExprs -# 503| 5: [Method] Test +# 503| 6: [Method] Test # 503| -1: [TypeMention] Void # 504| 4: [BlockStmt] {...} # 505| 0: [LocalVariableDeclStmt] ... ...; @@ -2390,28 +2390,28 @@ expressions.cs: # 512| 1: [DefaultAttribute] [InlineArray(...)] # 512| -1: [TypeMention] InlineArrayAttribute # 512| 0: [IntLiteral] 10 -# 515| 5: [Field] myInlineArrayElements +# 515| 6: [Field] myInlineArrayElements # 515| -1: [TypeMention] int # 518| 22: [Class] ClassC1 -# 518| 4: [InstanceConstructor,PrimaryConstructor] ClassC1 +# 518| 5: [InstanceConstructor,PrimaryConstructor] ClassC1 #-----| 2: (Parameters) # 518| 0: [Parameter] oc1 # 518| -1: [TypeMention] object # 520| 23: [Class] ClassC2 #-----| 3: (Base types) # 520| 0: [TypeMention] ClassC1 -# 520| 4: [InstanceConstructor,PrimaryConstructor] ClassC2 +# 520| 5: [InstanceConstructor,PrimaryConstructor] ClassC2 #-----| 2: (Parameters) # 520| 0: [Parameter] oc2 # 520| -1: [TypeMention] object # 520| 3: [ConstructorInitializer] call to constructor ClassC1 # 520| 0: [ParameterAccess] access to parameter oc2 # 522| 24: [Class] SuppressNullableWarning -# 525| 5: [Method] Api +# 525| 6: [Method] Api # 525| -1: [TypeMention] object # 525| 4: [ObjectCreation] object creation of type Object # 525| 0: [TypeMention] object -# 527| 6: [Method] Test +# 527| 7: [Method] Test # 527| -1: [TypeMention] Void #-----| 2: (Parameters) # 527| 0: [Parameter] arg0 diff --git a/csharp/ql/test/library-tests/fields/PrintAst.expected b/csharp/ql/test/library-tests/fields/PrintAst.expected index 4f33d662a06..e9e6ad49a2b 100644 --- a/csharp/ql/test/library-tests/fields/PrintAst.expected +++ b/csharp/ql/test/library-tests/fields/PrintAst.expected @@ -1,56 +1,56 @@ fields.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] A -# 10| 6: [Field] X +# 10| 7: [Field] X # 10| -1: [TypeMention] int # 10| 1: [IntLiteral] 1 -# 10| 7: [Field] Y +# 10| 8: [Field] Y # 10| -1: [TypeMention] int -# 10| 8: [Field] Z +# 10| 9: [Field] Z # 10| -1: [TypeMention] int # 10| 1: [IntLiteral] 100 # 13| 2: [Class] B -# 15| 6: [Field] X +# 15| 7: [Field] X # 15| -1: [TypeMention] int # 15| 1: [IntLiteral] 1 -# 16| 7: [Field] Y +# 16| 8: [Field] Y # 16| -1: [TypeMention] int -# 17| 8: [Field] Z +# 17| 9: [Field] Z # 17| -1: [TypeMention] int # 17| 1: [IntLiteral] 100 # 20| 3: [Class] C`1 #-----| 1: (Type parameters) # 20| 0: [TypeParameter] V -# 23| 5: [Field] count +# 23| 6: [Field] count # 23| -1: [TypeMention] int # 23| 1: [IntLiteral] 0 -# 25| 6: [InstanceConstructor] C +# 25| 7: [InstanceConstructor] C # 25| 4: [BlockStmt] {...} # 25| 0: [ExprStmt] ...; # 25| 0: [PostIncrExpr] ...++ # 25| 0: [FieldAccess] access to field count -# 27| 7: [Property] Count +# 27| 8: [Property] Count # 27| -1: [TypeMention] int # 27| 3: [Getter] get_Count # 27| 4: [BlockStmt] {...} # 27| 0: [ReturnStmt] return ...; # 27| 0: [FieldAccess] access to field count # 31| 4: [Class] Application -# 34| 6: [Field] finished +# 34| 7: [Field] finished # 34| -1: [TypeMention] bool -# 35| 7: [Field] x +# 35| 8: [Field] x # 35| -1: [TypeMention] double # 35| 1: [MethodCall] call to method Sqrt # 35| -1: [TypeAccess] access to type Math # 35| 0: [TypeMention] Math # 35| 0: [DoubleLiteral] 2 -# 36| 8: [Field] i +# 36| 9: [Field] i # 36| -1: [TypeMention] int # 36| 1: [IntLiteral] 100 -# 37| 9: [Field] s +# 37| 10: [Field] s # 37| -1: [TypeMention] string # 37| 1: [StringLiteralUtf16] "Hello" -# 39| 10: [Method] Main +# 39| 11: [Method] Main # 39| -1: [TypeMention] Void # 40| 4: [BlockStmt] {...} # 41| 0: [LocalVariableDeclStmt] ... ...; @@ -93,7 +93,7 @@ fields.cs: # 45| 0: [TypeMention] C # 45| 1: [TypeMention] int # 50| 5: [Class] Color -# 53| 5: [Field] Black +# 53| 6: [Field] Black # 53| -1: [TypeMention] Color # 53| 1: [ObjectCreation] object creation of type Color # 53| -1: [TypeMention] Color @@ -103,7 +103,7 @@ fields.cs: # 53| 1: [IntLiteral] 0 # 53| 2: [CastExpr] (...) ... # 53| 1: [IntLiteral] 0 -# 54| 6: [Field] White +# 54| 7: [Field] White # 54| -1: [TypeMention] Color # 54| 1: [ObjectCreation] object creation of type Color # 54| -1: [TypeMention] Color @@ -113,7 +113,7 @@ fields.cs: # 54| 1: [IntLiteral] 255 # 54| 2: [CastExpr] (...) ... # 54| 1: [IntLiteral] 255 -# 56| 7: [InstanceConstructor] Color +# 56| 8: [InstanceConstructor] Color #-----| 2: (Parameters) # 56| 0: [Parameter] r # 56| -1: [TypeMention] byte @@ -123,30 +123,30 @@ fields.cs: # 56| -1: [TypeMention] byte # 56| 4: [BlockStmt] {...} # 60| 6: [Class] TestBindings -# 63| 6: [Field] a +# 63| 7: [Field] a # 63| -1: [TypeMention] int # 63| 1: [AddExpr] ... + ... # 63| 0: [FieldAccess] access to field b # 63| 1: [IntLiteral] 1 -# 64| 7: [Field] b +# 64| 8: [Field] b # 64| -1: [TypeMention] int # 64| 1: [AddExpr] ... + ... # 64| 0: [FieldAccess] access to field a # 64| 1: [IntLiteral] 1 # 70| [NamespaceDeclaration] namespace ... { ... } # 72| 1: [Class] A -# 74| 5: [Field] X +# 74| 6: [Field] X # 74| -1: [TypeMention] int # 74| 1: [AddExpr] ... + ... # 74| 0: [MemberConstantAccess] access to constant Z # 74| -1: [TypeAccess] access to type B # 74| 0: [TypeMention] B # 74| 1: [IntLiteral] 1 -# 75| 6: [Field] Y +# 75| 7: [Field] Y # 75| -1: [TypeMention] int # 75| 1: [IntLiteral] 10 # 78| 2: [Class] B -# 80| 5: [Field] Z +# 80| 6: [Field] Z # 80| -1: [TypeMention] int # 80| 1: [AddExpr] ... + ... # 80| 0: [MemberConstantAccess] access to constant Y @@ -154,13 +154,13 @@ fields.cs: # 80| 0: [TypeMention] A # 80| 1: [IntLiteral] 1 # 83| 3: [Class] C -# 85| 4: [Field] Foo +# 85| 5: [Field] Foo # 85| -1: [TypeMention] int # 85| 1: [IntLiteral] 1 -# 86| 5: [Field] x +# 86| 6: [Field] x # 86| -1: [TypeMention] long? # 86| 1: [TypeMention] long -# 87| 6: [InstanceConstructor] C +# 87| 7: [InstanceConstructor] C # 88| 4: [BlockStmt] {...} # 89| 0: [ExprStmt] ...; # 89| 0: [AssignExpr] ... = ... @@ -191,12 +191,12 @@ fields.cs: # 92| 1: [CastExpr] (...) ... # 92| 1: [MemberConstantAccess] access to constant Foo # 96| 4: [Class] D -# 98| 4: [InstanceConstructor] D +# 98| 5: [InstanceConstructor] D #-----| 2: (Parameters) # 98| 0: [Parameter] d # 98| -1: [TypeMention] int # 99| 4: [BlockStmt] {...} -# 101| 5: [ImplicitConversionOperator] implicit conversion +# 101| 6: [ImplicitConversionOperator] implicit conversion # 101| -1: [TypeMention] D #-----| 2: (Parameters) # 101| 0: [Parameter] d diff --git a/csharp/ql/test/library-tests/generics/PrintAst.expected b/csharp/ql/test/library-tests/generics/PrintAst.expected index 3653b3b7a2d..0d50888edd3 100644 --- a/csharp/ql/test/library-tests/generics/PrintAst.expected +++ b/csharp/ql/test/library-tests/generics/PrintAst.expected @@ -2,13 +2,13 @@ Nesting.cs: # 1| [Class] A`1 #-----| 1: (Type parameters) # 1| 0: [TypeParameter] T1 -# 3| 5: [Method] MA1 +# 3| 6: [Method] MA1 # 3| -1: [TypeMention] Void #-----| 2: (Parameters) # 3| 0: [Parameter] x # 3| -1: [TypeMention] T1 # 3| 4: [BlockStmt] {...} -# 4| 6: [Method] MA2`1 +# 4| 7: [Method] MA2`1 # 4| -1: [TypeMention] Void #-----| 1: (Type parameters) # 4| 0: [TypeParameter] T2 @@ -18,10 +18,10 @@ Nesting.cs: # 4| 1: [Parameter] y # 4| -1: [TypeMention] T2 # 4| 4: [BlockStmt] {...} -# 6| 7: [Class] B`1 +# 6| 8: [Class] B`1 #-----| 1: (Type parameters) # 6| 0: [TypeParameter] T3 -# 8| 5: [Method] MB1 +# 8| 6: [Method] MB1 # 8| -1: [TypeMention] Void #-----| 2: (Parameters) # 8| 0: [Parameter] x @@ -29,7 +29,7 @@ Nesting.cs: # 8| 1: [Parameter] y # 8| -1: [TypeMention] T3 # 8| 4: [BlockStmt] {...} -# 9| 6: [Method] MB2`1 +# 9| 7: [Method] MB2`1 # 9| -1: [TypeMention] Void #-----| 1: (Type parameters) # 9| 0: [TypeParameter] T4 @@ -41,14 +41,14 @@ Nesting.cs: # 9| 2: [Parameter] z # 9| -1: [TypeMention] T4 # 9| 4: [BlockStmt] {...} -# 12| 8: [Class] C -# 14| 5: [Method] MC1 +# 12| 9: [Class] C +# 14| 6: [Method] MC1 # 14| -1: [TypeMention] Void #-----| 2: (Parameters) # 14| 0: [Parameter] x # 14| -1: [TypeMention] T1 # 14| 4: [BlockStmt] {...} -# 15| 6: [Method] MC2`1 +# 15| 7: [Method] MC2`1 # 15| -1: [TypeMention] Void #-----| 1: (Type parameters) # 15| 0: [TypeParameter] T5 @@ -58,10 +58,10 @@ Nesting.cs: # 15| 1: [Parameter] y # 15| -1: [TypeMention] T5 # 15| 4: [BlockStmt] {...} -# 17| 7: [Class] D`1 +# 17| 8: [Class] D`1 #-----| 1: (Type parameters) # 17| 0: [TypeParameter] T6 -# 19| 5: [Method] MD1 +# 19| 6: [Method] MD1 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x @@ -69,7 +69,7 @@ Nesting.cs: # 19| 1: [Parameter] y # 19| -1: [TypeMention] T6 # 19| 4: [BlockStmt] {...} -# 20| 6: [Method] MD2`1 +# 20| 7: [Method] MD2`1 # 20| -1: [TypeMention] Void #-----| 1: (Type parameters) # 20| 0: [TypeParameter] T7 @@ -81,7 +81,7 @@ Nesting.cs: # 20| 2: [Parameter] z # 20| -1: [TypeMention] T7 # 20| 4: [BlockStmt] {...} -# 24| 9: [Method] Construct +# 24| 10: [Method] Construct # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -244,7 +244,7 @@ generics.cs: # 13| 3: [Class] A`1 #-----| 1: (Type parameters) # 13| 0: [TypeParameter] T -# 16| 5: [DelegateType] GenericDelegateInGenericClass`1 +# 16| 6: [DelegateType] GenericDelegateInGenericClass`1 #-----| 1: (Type parameters) # 16| 0: [TypeParameter] U #-----| 2: (Parameters) @@ -252,7 +252,7 @@ generics.cs: # 16| -1: [TypeMention] T # 16| 1: [Parameter] u # 16| -1: [TypeMention] U -# 18| 6: [Method] bar`1 +# 18| 7: [Method] bar`1 # 18| -1: [TypeMention] T #-----| 1: (Type parameters) # 18| 0: [TypeParameter] X @@ -271,25 +271,25 @@ generics.cs: # 22| 4: [Class] B`1 #-----| 1: (Type parameters) # 22| 0: [TypeParameter] T -# 25| 5: [Field] at +# 25| 6: [Field] at # 25| -1: [TypeMention] A # 25| 1: [TypeMention] T -# 27| 6: [Field] name +# 27| 7: [Field] name # 27| -1: [TypeMention] string -# 29| 7: [Method] foo +# 29| 8: [Method] foo # 29| -1: [TypeMention] Void # 29| 4: [BlockStmt] {...} -# 31| 8: [Method] fooParams +# 31| 9: [Method] fooParams # 31| -1: [TypeMention] Void #-----| 2: (Parameters) # 31| 0: [Parameter] ts # 31| -1: [TypeMention] T[] # 31| 1: [TypeMention] T # 31| 4: [BlockStmt] {...} -# 33| 9: [Method] staticFoo +# 33| 10: [Method] staticFoo # 33| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} -# 35| 10: [Property] Name +# 35| 11: [Property] Name # 35| -1: [TypeMention] string # 35| 3: [Getter] get_Name # 35| 4: [BlockStmt] {...} @@ -303,7 +303,7 @@ generics.cs: # 35| 0: [AssignExpr] ... = ... # 35| 0: [FieldAccess] access to field name # 35| 1: [ParameterAccess] access to parameter value -# 37| 11: [Event] myEvent +# 37| 12: [Event] myEvent # 37| -1: [TypeMention] GenericDelegate # 37| 1: [TypeMention] T # 37| 3: [AddEventAccessor] add_myEvent @@ -312,7 +312,7 @@ generics.cs: # 37| 4: [RemoveEventAccessor] remove_myEvent #-----| 2: (Parameters) # 37| 0: [Parameter] value -# 39| 12: [IncrementOperator] ++ +# 39| 13: [IncrementOperator] ++ # 39| -1: [TypeMention] B # 39| 1: [TypeMention] T #-----| 2: (Parameters) @@ -324,9 +324,9 @@ generics.cs: # 41| 0: [ObjectCreation] object creation of type B`1 # 41| 0: [TypeMention] B # 41| 1: [TypeMention] T -# 44| 13: [Destructor] ~B +# 44| 14: [Destructor] ~B # 44| 4: [BlockStmt] {...} -# 45| 14: [Method] f`1 +# 45| 15: [Method] f`1 # 45| -1: [TypeMention] Void #-----| 1: (Type parameters) # 45| 0: [TypeParameter] X @@ -339,17 +339,17 @@ generics.cs: #-----| 1: (Type parameters) # 48| 0: [TypeParameter] T1 # 48| 1: [TypeParameter] T2 -# 51| 5: [Class] Inner`2 +# 51| 6: [Class] Inner`2 #-----| 1: (Type parameters) # 51| 0: [TypeParameter] U1 # 51| 1: [TypeParameter] U2 -# 54| 5: [Field] t +# 54| 6: [Field] t # 54| -1: [TypeMention] T1 -# 55| 6: [Field] myFunc +# 55| 7: [Field] myFunc # 55| -1: [TypeMention] Func # 55| 1: [TypeMention] U1 # 55| 2: [TypeMention] T1 -# 56| 7: [Method] MyMethod`2 +# 56| 8: [Method] MyMethod`2 # 56| -1: [TypeMention] Void #-----| 1: (Type parameters) # 56| 0: [TypeParameter] W1 @@ -368,13 +368,13 @@ generics.cs: # 60| 6: [Class] Grid`1 #-----| 1: (Type parameters) # 60| 0: [TypeParameter] T -# 63| 5: [Field] NumRows +# 63| 6: [Field] NumRows # 63| -1: [TypeMention] int # 63| 1: [IntLiteral] 26 -# 64| 6: [Field] NumCols +# 64| 7: [Field] NumCols # 64| -1: [TypeMention] int # 64| 1: [IntLiteral] 10 -# 66| 7: [Field] cells +# 66| 8: [Field] cells # 66| -1: [TypeMention] T[,] # 66| 1: [TypeMention] T # 66| 1: [ArrayCreation] array creation of type T[,] @@ -382,7 +382,7 @@ generics.cs: # 66| 1: [TypeMention] T # 66| 0: [MemberConstantAccess] access to constant NumRows # 66| 1: [MemberConstantAccess] access to constant NumCols -# 68| 8: [Indexer] Item +# 68| 9: [Indexer] Item # 68| -1: [TypeMention] int #-----| 1: (Parameters) # 68| 0: [Parameter] i @@ -393,7 +393,7 @@ generics.cs: # 70| 4: [BlockStmt] {...} # 70| 0: [ReturnStmt] return ...; # 70| 0: [ParameterAccess] access to parameter i -# 73| 9: [Indexer] Item +# 73| 10: [Indexer] Item # 73| -1: [TypeMention] T #-----| 1: (Parameters) # 73| 0: [Parameter] c @@ -502,7 +502,7 @@ generics.cs: # 99| 1: [ParameterAccess] access to parameter col # 99| 1: [ParameterAccess] access to parameter value # 105| 7: [Class] Test -# 108| 5: [Method] Main +# 108| 6: [Method] Main # 108| -1: [TypeMention] Void # 109| 4: [BlockStmt] {...} # 110| 0: [LocalVariableDeclStmt] ... ...; @@ -605,7 +605,7 @@ generics.cs: # 128| 0: [ObjectCreation] object creation of type Test # 128| 0: [TypeMention] Test # 128| 1: [IntLiteral] 2 -# 131| 6: [Method] f +# 131| 7: [Method] f # 131| -1: [TypeMention] string #-----| 2: (Parameters) # 131| 0: [Parameter] s @@ -614,7 +614,7 @@ generics.cs: # 131| 0: [ReturnStmt] return ...; # 131| 0: [ParameterAccess] access to parameter s # 135| 8: [Class] Subtle -# 138| 5: [Method] fs`1 +# 138| 6: [Method] fs`1 # 138| -1: [TypeMention] Void #-----| 1: (Type parameters) # 138| 0: [TypeParameter] X @@ -622,7 +622,7 @@ generics.cs: # 138| 0: [Parameter] i # 138| -1: [TypeMention] int # 138| 4: [BlockStmt] {...} -# 140| 6: [Method] fs`1 +# 140| 7: [Method] fs`1 # 140| -1: [TypeMention] Void #-----| 1: (Type parameters) # 140| 0: [TypeParameter] X @@ -632,7 +632,7 @@ generics.cs: # 140| 1: [Parameter] j # 140| -1: [TypeMention] int # 140| 4: [BlockStmt] {...} -# 142| 7: [Method] fs +# 142| 8: [Method] fs # 142| -1: [TypeMention] Void #-----| 2: (Parameters) # 142| 0: [Parameter] i @@ -641,15 +641,15 @@ generics.cs: # 146| 9: [Class] Param`1 #-----| 1: (Type parameters) # 146| 0: [TypeParameter] T -# 148| 5: [Enum] E +# 148| 6: [Enum] E # 148| 5: [Field] x # 151| 10: [Class] ConstructedMethods -# 153| 7: [Method] CM1`1 +# 153| 8: [Method] CM1`1 # 153| -1: [TypeMention] Void #-----| 1: (Type parameters) # 153| 0: [TypeParameter] T # 153| 4: [BlockStmt] {...} -# 154| 10: [Method] CM2`1 +# 154| 11: [Method] CM2`1 # 154| -1: [TypeMention] T #-----| 1: (Type parameters) # 154| 0: [TypeParameter] T @@ -659,10 +659,10 @@ generics.cs: # 154| 4: [BlockStmt] {...} # 154| 0: [ReturnStmt] return ...; # 154| 0: [ParameterAccess] access to parameter t -# 156| 13: [Class] Class`1 +# 156| 14: [Class] Class`1 #-----| 1: (Type parameters) # 156| 0: [TypeParameter] T1 -# 158| 5: [Method] CM3`1 +# 158| 6: [Method] CM3`1 # 158| -1: [TypeMention] T2 #-----| 1: (Type parameters) # 158| 0: [TypeParameter] T2 @@ -674,10 +674,10 @@ generics.cs: # 158| 4: [BlockStmt] {...} # 158| 0: [ReturnStmt] return ...; # 158| 0: [ParameterAccess] access to parameter t -# 161| 14: [Method] NonCM +# 161| 15: [Method] NonCM # 161| -1: [TypeMention] Void # 161| 4: [BlockStmt] {...} -# 163| 15: [Method] CM +# 163| 16: [Method] CM # 163| -1: [TypeMention] Void # 164| 4: [BlockStmt] {...} # 165| 0: [ExprStmt] ...; @@ -718,14 +718,14 @@ generics.cs: #-----| 3: (Base types) # 179| 1: [TypeMention] Interface # 179| 1: [TypeMention] T -# 181| 5: [Method] set +# 181| 6: [Method] set # 181| -1: [TypeMention] Void #-----| 2: (Parameters) # 181| 0: [Parameter] t # 181| -1: [TypeMention] T # 181| 4: [BlockStmt] {...} # 184| 13: [Class] InheritanceTest -# 186| 5: [Field] member +# 186| 6: [Field] member # 186| -1: [TypeMention] Inheritance # 186| 1: [TypeMention] int # 189| 14: [Interface] Interface2`2 diff --git a/csharp/ql/test/library-tests/goto/PrintAst.expected b/csharp/ql/test/library-tests/goto/PrintAst.expected index a6ecfb8c301..e90947ed979 100644 --- a/csharp/ql/test/library-tests/goto/PrintAst.expected +++ b/csharp/ql/test/library-tests/goto/PrintAst.expected @@ -1,6 +1,6 @@ goto.cs: # 2| [Class] Goto -# 4| 5: [Method] Main +# 4| 6: [Method] Main # 4| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} # 6| 0: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/indexers/PrintAst.expected b/csharp/ql/test/library-tests/indexers/PrintAst.expected index 6f9fde00e24..93160309c79 100644 --- a/csharp/ql/test/library-tests/indexers/PrintAst.expected +++ b/csharp/ql/test/library-tests/indexers/PrintAst.expected @@ -1,12 +1,12 @@ indexers.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] BitArray -# 11| 4: [Field] bits +# 11| 5: [Field] bits # 11| -1: [TypeMention] Int32[] # 11| 1: [TypeMention] int -# 12| 5: [Field] length +# 12| 6: [Field] length # 12| -1: [TypeMention] int -# 14| 6: [InstanceConstructor] BitArray +# 14| 7: [InstanceConstructor] BitArray #-----| 2: (Parameters) # 14| 0: [Parameter] length # 14| -1: [TypeMention] int @@ -36,13 +36,13 @@ indexers.cs: # 19| 0: [FieldAccess] access to field length # 19| -1: [ThisAccess] this access # 19| 1: [ParameterAccess] access to parameter length -# 22| 7: [Property] Length +# 22| 8: [Property] Length # 22| -1: [TypeMention] int # 22| 3: [Getter] get_Length # 22| 4: [BlockStmt] {...} # 22| 0: [ReturnStmt] return ...; # 22| 0: [FieldAccess] access to field length -# 24| 8: [Indexer] Item +# 24| 9: [Indexer] Item # 24| -1: [TypeMention] bool #-----| 1: (Parameters) # 24| 0: [Parameter] index @@ -118,7 +118,7 @@ indexers.cs: # 46| 0: [IntLiteral] 1 # 46| 1: [ParameterAccess] access to parameter index # 53| 2: [Class] CountPrimes -# 56| 5: [Method] Count +# 56| 6: [Method] Count # 56| -1: [TypeMention] int #-----| 2: (Parameters) # 56| 0: [Parameter] max @@ -179,7 +179,7 @@ indexers.cs: # 66| 0: [LocalVariableAccess] access to local variable count # 69| 3: [ReturnStmt] return ...; # 69| 0: [LocalVariableAccess] access to local variable count -# 72| 6: [Method] Main +# 72| 7: [Method] Main # 72| -1: [TypeMention] Void #-----| 2: (Parameters) # 72| 0: [Parameter] args @@ -212,13 +212,13 @@ indexers.cs: # 76| 2: [CastExpr] (...) ... # 76| 1: [LocalVariableAccess] access to local variable max # 81| 3: [Class] Grid -# 84| 5: [Field] NumRows +# 84| 6: [Field] NumRows # 84| -1: [TypeMention] int # 84| 1: [IntLiteral] 26 -# 85| 6: [Field] NumCols +# 85| 7: [Field] NumCols # 85| -1: [TypeMention] int # 85| 1: [IntLiteral] 10 -# 87| 7: [Field] cells +# 87| 8: [Field] cells # 87| -1: [TypeMention] Int32[,] # 87| 1: [TypeMention] int # 87| 1: [ArrayCreation] array creation of type Int32[,] @@ -226,7 +226,7 @@ indexers.cs: # 87| 1: [TypeMention] int # 87| 0: [MemberConstantAccess] access to constant NumRows # 87| 1: [MemberConstantAccess] access to constant NumCols -# 89| 8: [Indexer] Item +# 89| 9: [Indexer] Item # 89| -1: [TypeMention] int #-----| 1: (Parameters) # 89| 0: [Parameter] c @@ -335,7 +335,7 @@ indexers.cs: # 115| 1: [ParameterAccess] access to parameter col # 115| 1: [ParameterAccess] access to parameter value # 121| 4: [Class] DuplicateIndexerSignatures -# 123| 5: [Indexer] Item +# 123| 6: [Indexer] Item # 123| -1: [TypeMention] bool #-----| 1: (Parameters) # 123| 0: [Parameter] index @@ -346,7 +346,7 @@ indexers.cs: # 125| 4: [BlockStmt] {...} # 125| 0: [ReturnStmt] return ...; # 125| 0: [BoolLiteral] false -# 128| 6: [Indexer] Item +# 128| 7: [Indexer] Item # 128| -1: [TypeMention] int #-----| 1: (Parameters) # 128| 0: [Parameter] c diff --git a/csharp/ql/test/library-tests/initializers/PrintAst.expected b/csharp/ql/test/library-tests/initializers/PrintAst.expected index 29b7ca47003..f59bb2f135f 100644 --- a/csharp/ql/test/library-tests/initializers/PrintAst.expected +++ b/csharp/ql/test/library-tests/initializers/PrintAst.expected @@ -1,14 +1,14 @@ initializers.cs: # 3| [Class] S1 -# 5| 5: [Field] P1 +# 5| 6: [Field] P1 # 5| -1: [TypeMention] int -# 6| 6: [Property] P2 +# 6| 7: [Property] P2 # 6| -1: [TypeMention] int # 6| 3: [Getter] get_P2 # 6| 4: [Setter] set_P2 #-----| 2: (Parameters) # 6| 0: [Parameter] value -# 7| 7: [Property] P3 +# 7| 8: [Property] P3 # 7| -1: [TypeMention] int # 7| 3: [Setter] set_P3 #-----| 2: (Parameters) @@ -17,13 +17,13 @@ initializers.cs: # 10| [Class] S2 #-----| 3: (Base types) # 10| 1: [TypeMention] IEnumerable -# 12| 5: [Method] Add +# 12| 6: [Method] Add # 12| -1: [TypeMention] Void #-----| 2: (Parameters) # 12| 0: [Parameter] x # 12| -1: [TypeMention] int # 12| 4: [BlockStmt] {...} -# 13| 6: [Method] Add +# 13| 7: [Method] Add # 13| -1: [TypeMention] Void #-----| 2: (Parameters) # 13| 0: [Parameter] x @@ -31,13 +31,13 @@ initializers.cs: # 13| 1: [Parameter] y # 13| -1: [TypeMention] int # 13| 4: [BlockStmt] {...} -# 14| 7: [Method] GetEnumerator +# 14| 8: [Method] GetEnumerator # 14| -1: [TypeMention] IEnumerator # 14| 4: [BlockStmt] {...} # 14| 0: [ReturnStmt] return ...; # 14| 0: [NullLiteral] null # 17| [Class] Test -# 19| 5: [Method] Main +# 19| 6: [Method] Main # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] args diff --git a/csharp/ql/test/library-tests/linq/PrintAst.expected b/csharp/ql/test/library-tests/linq/PrintAst.expected index fee8ab80ee2..c16babcf270 100644 --- a/csharp/ql/test/library-tests/linq/PrintAst.expected +++ b/csharp/ql/test/library-tests/linq/PrintAst.expected @@ -1,6 +1,6 @@ queries.cs: # 5| [Class] Queries -# 7| 5: [Method] Queries1 +# 7| 6: [Method] Queries1 # 7| -1: [TypeMention] Void # 8| 4: [BlockStmt] {...} # 9| 0: [LocalVariableDeclStmt] ... ...; @@ -204,19 +204,19 @@ queries.cs: # 56| 1: [TupleExpr] (..., ...) # 56| 0: [LocalVariableAccess] access to local variable a # 56| 1: [LocalVariableAccess] access to local variable d -# 59| 6: [Class] A +# 59| 7: [Class] A #-----| 3: (Base types) # 59| 1: [TypeMention] IEnumerable -# 61| 5: [Method] GetEnumerator +# 61| 6: [Method] GetEnumerator # 61| -1: [TypeMention] IEnumerator # 62| 4: [BlockStmt] {...} # 63| 0: [ThrowStmt] throw ...; # 63| 0: [ObjectCreation] object creation of type NotImplementedException # 63| 0: [TypeMention] NotImplementedException -# 67| 7: [Class] B +# 67| 8: [Class] B #-----| 3: (Base types) # 67| 0: [TypeMention] A -# 69| 8: [Class] C +# 69| 9: [Class] C #-----| 3: (Base types) # 69| 0: [TypeMention] List # 69| 1: [TypeMention] int diff --git a/csharp/ql/test/library-tests/members/PrintAst.expected b/csharp/ql/test/library-tests/members/PrintAst.expected index c8fe6fbf5d9..3d1f4a344a4 100644 --- a/csharp/ql/test/library-tests/members/PrintAst.expected +++ b/csharp/ql/test/library-tests/members/PrintAst.expected @@ -7,8 +7,8 @@ Members.cs: # 3| 1: [Parameter] e # 3| -1: [TypeMention] object # 6| 2: [Class] Class -# 9| 5: [Class] NestedClass -# 12| 5: [Method] Method`1 +# 9| 6: [Class] NestedClass +# 12| 6: [Method] Method`1 # 12| -1: [TypeMention] string #-----| 1: (Type parameters) # 12| 0: [TypeParameter] T @@ -17,7 +17,7 @@ Members.cs: # 12| -1: [TypeMention] T # 12| 4: [MethodCall] call to method ToString # 12| -1: [ParameterAccess] access to parameter t -# 14| 6: [Indexer] Item +# 14| 7: [Indexer] Item # 14| -1: [TypeMention] string #-----| 1: (Parameters) # 14| 0: [Parameter] i @@ -32,15 +32,15 @@ Members.cs: # 14| 0: [Parameter] i # 14| 1: [Parameter] value # 14| 4: [BlockStmt] {...} -# 16| 7: [Field] Field +# 16| 8: [Field] Field # 16| -1: [TypeMention] string -# 18| 8: [Property] Prop +# 18| 9: [Property] Prop # 18| -1: [TypeMention] string # 18| 3: [Getter] get_Prop # 18| 4: [Setter] set_Prop #-----| 2: (Parameters) # 18| 0: [Parameter] value -# 20| 9: [Event] Event +# 20| 10: [Event] Event # 20| -1: [TypeMention] EventHandler # 20| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -48,10 +48,10 @@ Members.cs: # 20| 4: [RemoveEventAccessor] remove_Event #-----| 2: (Parameters) # 20| 0: [Parameter] value -# 24| 6: [Method] Method +# 24| 7: [Method] Method # 24| -1: [TypeMention] Void # 24| 4: [BlockStmt] {...} -# 26| 7: [Indexer] Item +# 26| 8: [Indexer] Item # 26| -1: [TypeMention] string #-----| 1: (Parameters) # 26| 0: [Parameter] i @@ -66,15 +66,15 @@ Members.cs: # 26| 0: [Parameter] i # 26| 1: [Parameter] value # 26| 4: [BlockStmt] {...} -# 28| 8: [Field] Field +# 28| 9: [Field] Field # 28| -1: [TypeMention] string -# 30| 9: [Property] Prop +# 30| 10: [Property] Prop # 30| -1: [TypeMention] string # 30| 3: [Getter] get_Prop # 30| 4: [Setter] set_Prop #-----| 2: (Parameters) # 30| 0: [Parameter] value -# 32| 10: [Event] Event +# 32| 11: [Event] Event # 32| -1: [TypeMention] EventHandler # 32| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -83,8 +83,8 @@ Members.cs: #-----| 2: (Parameters) # 32| 0: [Parameter] value # 35| 3: [Class] Class2 -# 37| 5: [Class] NestedClass2 -# 39| 5: [Method] Method`1 +# 37| 6: [Class] NestedClass2 +# 39| 6: [Method] Method`1 # 39| -1: [TypeMention] string #-----| 1: (Type parameters) # 39| 0: [TypeParameter] T @@ -93,7 +93,7 @@ Members.cs: # 39| -1: [TypeMention] T # 39| 4: [MethodCall] call to method ToString # 39| -1: [ParameterAccess] access to parameter t -# 40| 6: [Indexer] Item +# 40| 7: [Indexer] Item # 40| -1: [TypeMention] string #-----| 1: (Parameters) # 40| 0: [Parameter] i @@ -108,15 +108,15 @@ Members.cs: # 40| 0: [Parameter] i # 40| 1: [Parameter] value # 40| 4: [BlockStmt] {...} -# 41| 7: [Field] Field +# 41| 8: [Field] Field # 41| -1: [TypeMention] string -# 42| 8: [Property] Prop +# 42| 9: [Property] Prop # 42| -1: [TypeMention] string # 42| 3: [Getter] get_Prop # 42| 4: [Setter] set_Prop #-----| 2: (Parameters) # 42| 0: [Parameter] value -# 43| 9: [Event] Event +# 43| 10: [Event] Event # 43| -1: [TypeMention] EventHandler # 43| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -124,10 +124,10 @@ Members.cs: # 43| 4: [RemoveEventAccessor] remove_Event #-----| 2: (Parameters) # 43| 0: [Parameter] value -# 46| 6: [Method] Method +# 46| 7: [Method] Method # 46| -1: [TypeMention] Void # 46| 4: [BlockStmt] {...} -# 47| 7: [Indexer] Item +# 47| 8: [Indexer] Item # 47| -1: [TypeMention] string #-----| 1: (Parameters) # 47| 0: [Parameter] i @@ -142,15 +142,15 @@ Members.cs: # 47| 0: [Parameter] i # 47| 1: [Parameter] value # 47| 4: [BlockStmt] {...} -# 48| 8: [Field] Field +# 48| 9: [Field] Field # 48| -1: [TypeMention] string -# 49| 9: [Property] Prop +# 49| 10: [Property] Prop # 49| -1: [TypeMention] string # 49| 3: [Getter] get_Prop # 49| 4: [Setter] set_Prop #-----| 2: (Parameters) # 49| 0: [Parameter] value -# 50| 10: [Event] Event +# 50| 11: [Event] Event # 50| -1: [TypeMention] EventHandler # 50| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) diff --git a/csharp/ql/test/library-tests/methods/PrintAst.expected b/csharp/ql/test/library-tests/methods/PrintAst.expected index 42268fdc89d..4810c6c0b5b 100644 --- a/csharp/ql/test/library-tests/methods/PrintAst.expected +++ b/csharp/ql/test/library-tests/methods/PrintAst.expected @@ -1,7 +1,7 @@ methods.cs: # 4| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] TestRef -# 10| 5: [Method] Swap +# 10| 6: [Method] Swap # 10| -1: [TypeMention] Void #-----| 2: (Parameters) # 10| 0: [Parameter] x @@ -22,7 +22,7 @@ methods.cs: # 14| 0: [AssignExpr] ... = ... # 14| 0: [ParameterAccess] access to parameter y # 14| 1: [LocalVariableAccess] access to local variable temp -# 17| 6: [Method] Main +# 17| 7: [Method] Main # 17| -1: [TypeMention] Void # 18| 4: [BlockStmt] {...} # 19| 0: [LocalVariableDeclStmt] ... ...; @@ -57,7 +57,7 @@ methods.cs: # 22| 2: [CastExpr] (...) ... # 22| 1: [LocalVariableAccess] access to local variable j # 26| 2: [Class] TestOut -# 29| 5: [Method] Divide +# 29| 6: [Method] Divide # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] x @@ -81,7 +81,7 @@ methods.cs: # 32| 1: [RemExpr] ... % ... # 32| 0: [ParameterAccess] access to parameter x # 32| 1: [ParameterAccess] access to parameter y -# 35| 6: [Method] Main +# 35| 7: [Method] Main # 35| -1: [TypeMention] Void # 36| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -105,7 +105,7 @@ methods.cs: # 39| 2: [CastExpr] (...) ... # 39| 1: [LocalVariableAccess] access to local variable rem # 43| 3: [Class] Console -# 46| 5: [Method] Write +# 46| 6: [Method] Write # 46| -1: [TypeMention] Void #-----| 2: (Parameters) # 46| 0: [Parameter] fmt @@ -114,7 +114,7 @@ methods.cs: # 46| -1: [TypeMention] Object[] # 46| 1: [TypeMention] object # 46| 4: [BlockStmt] {...} -# 47| 6: [Method] WriteLine +# 47| 7: [Method] WriteLine # 47| -1: [TypeMention] Void #-----| 2: (Parameters) # 47| 0: [Parameter] fmt @@ -124,7 +124,7 @@ methods.cs: # 47| 1: [TypeMention] object # 47| 4: [BlockStmt] {...} # 50| 4: [Class] TestOverloading -# 53| 5: [Method] F +# 53| 6: [Method] F # 53| -1: [TypeMention] Void # 54| 4: [BlockStmt] {...} # 55| 0: [ExprStmt] ...; @@ -132,7 +132,7 @@ methods.cs: # 55| -1: [TypeAccess] access to type Console # 55| 0: [TypeMention] Console # 55| 0: [StringLiteralUtf16] "F()" -# 58| 6: [Method] F +# 58| 7: [Method] F # 58| -1: [TypeMention] Void #-----| 2: (Parameters) # 58| 0: [Parameter] x @@ -143,7 +143,7 @@ methods.cs: # 60| -1: [TypeAccess] access to type Console # 60| 0: [TypeMention] Console # 60| 0: [StringLiteralUtf16] "F(object)" -# 63| 7: [Method] F +# 63| 8: [Method] F # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] x @@ -154,7 +154,7 @@ methods.cs: # 65| -1: [TypeAccess] access to type Console # 65| 0: [TypeMention] Console # 65| 0: [StringLiteralUtf16] "F(int)" -# 68| 8: [Method] F +# 68| 9: [Method] F # 68| -1: [TypeMention] Void #-----| 2: (Parameters) # 68| 0: [Parameter] x @@ -165,7 +165,7 @@ methods.cs: # 70| -1: [TypeAccess] access to type Console # 70| 0: [TypeMention] Console # 70| 0: [StringLiteralUtf16] "F(double)" -# 73| 11: [Method] F`1 +# 73| 12: [Method] F`1 # 73| -1: [TypeMention] Void #-----| 1: (Type parameters) # 73| 0: [TypeParameter] T @@ -178,7 +178,7 @@ methods.cs: # 75| -1: [TypeAccess] access to type Console # 75| 0: [TypeMention] Console # 75| 0: [StringLiteralUtf16] "F(T)" -# 78| 12: [Method] F +# 78| 13: [Method] F # 78| -1: [TypeMention] Void #-----| 2: (Parameters) # 78| 0: [Parameter] x @@ -191,7 +191,7 @@ methods.cs: # 80| -1: [TypeAccess] access to type Console # 80| 0: [TypeMention] Console # 80| 0: [StringLiteralUtf16] "F(double, double)" -# 83| 13: [Method] Main +# 83| 14: [Method] Main # 83| -1: [TypeMention] Void # 84| 4: [BlockStmt] {...} # 85| 0: [ExprStmt] ...; @@ -352,7 +352,7 @@ methods.cs: # 135| -1: [TypeAccess] access to type Boolean # 135| 0: [TypeMention] bool # 140| 7: [Class] TestDefaultParameters -# 142| 4: [Method] Method1 +# 142| 5: [Method] Method1 # 142| -1: [TypeMention] Void #-----| 2: (Parameters) # 142| 0: [Parameter] x @@ -360,7 +360,7 @@ methods.cs: # 142| 1: [Parameter] y # 142| -1: [TypeMention] int # 143| 4: [BlockStmt] {...} -# 146| 5: [Method] Method2 +# 146| 6: [Method] Method2 # 146| -1: [TypeMention] Void #-----| 2: (Parameters) # 146| 0: [Parameter] a @@ -379,12 +379,12 @@ methods.cs: # 146| 0: [StringLiteralUtf16] "a" # 146| 1: [StringLiteralUtf16] "b" # 147| 4: [BlockStmt] {...} -# 150| 6: [InstanceConstructor] TestDefaultParameters +# 150| 7: [InstanceConstructor] TestDefaultParameters #-----| 2: (Parameters) # 150| 0: [Parameter] x # 150| -1: [TypeMention] int # 151| 4: [BlockStmt] {...} -# 154| 7: [InstanceConstructor] TestDefaultParameters +# 154| 8: [InstanceConstructor] TestDefaultParameters #-----| 2: (Parameters) # 154| 0: [Parameter] x # 154| -1: [TypeMention] string @@ -394,7 +394,7 @@ methods.cs: # 154| 1: [ObjectCreation] object creation of type Double # 154| 0: [TypeMention] double # 155| 4: [BlockStmt] {...} -# 158| 8: [DelegateType] Del +# 158| 9: [DelegateType] Del #-----| 2: (Parameters) # 158| 0: [Parameter] a # 158| -1: [TypeMention] string @@ -405,7 +405,7 @@ methods.cs: # 158| -1: [TypeMention] double # 158| 1: [ObjectCreation] object creation of type Double # 158| 0: [TypeMention] double -# 160| 9: [Indexer] Item +# 160| 10: [Indexer] Item # 160| -1: [TypeMention] int #-----| 1: (Parameters) # 160| 0: [Parameter] x @@ -477,7 +477,7 @@ methods.cs: # 185| 9: [Class] TestCollidingMethods`1 #-----| 1: (Type parameters) # 185| 0: [TypeParameter] T -# 187| 5: [Method] M +# 187| 6: [Method] M # 187| -1: [TypeMention] Void #-----| 2: (Parameters) # 187| 0: [Parameter] p1 @@ -485,7 +485,7 @@ methods.cs: # 187| 1: [Parameter] p2 # 187| -1: [TypeMention] int # 187| 4: [BlockStmt] {...} -# 188| 6: [Method] M +# 188| 7: [Method] M # 188| -1: [TypeMention] Void #-----| 2: (Parameters) # 188| 0: [Parameter] p1 @@ -493,7 +493,7 @@ methods.cs: # 188| 1: [Parameter] p2 # 188| -1: [TypeMention] int # 188| 4: [BlockStmt] {...} -# 190| 7: [Method] Calls +# 190| 8: [Method] Calls # 190| -1: [TypeMention] Void # 191| 4: [BlockStmt] {...} # 192| 0: [LocalVariableDeclStmt] ... ...; @@ -525,13 +525,13 @@ methods.cs: # 197| -1: [LocalVariableAccess] access to local variable y # 197| 0: [IntLiteral] 1 # 197| 1: [IntLiteral] 1 -# 200| 8: [Class] Nested -# 202| 4: [InstanceConstructor] Nested +# 200| 9: [Class] Nested +# 202| 5: [InstanceConstructor] Nested #-----| 2: (Parameters) # 202| 0: [Parameter] p1 # 202| -1: [TypeMention] int # 202| 4: [BlockStmt] {...} -# 203| 5: [InstanceConstructor] Nested +# 203| 6: [InstanceConstructor] Nested #-----| 2: (Parameters) # 203| 0: [Parameter] p1 # 203| -1: [TypeMention] T diff --git a/csharp/ql/test/library-tests/namespaces/PrintAst.expected b/csharp/ql/test/library-tests/namespaces/PrintAst.expected index 2b0e505ec27..88d8dbe02a7 100644 --- a/csharp/ql/test/library-tests/namespaces/PrintAst.expected +++ b/csharp/ql/test/library-tests/namespaces/PrintAst.expected @@ -26,7 +26,7 @@ namespaces.cs: # 72| 1: [Class] A`1 #-----| 1: (Type parameters) # 72| 0: [TypeParameter] T -# 75| 5: [Class] B +# 75| 6: [Class] B # 79| 2: [Class] A # 83| [NamespaceDeclaration] namespace ... { ... } # 90| [NamespaceDeclaration] namespace ... { ... } diff --git a/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected b/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected index 8a2f4343556..9a0c4a7f029 100644 --- a/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected +++ b/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected @@ -1,13 +1,13 @@ nestedtypes.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] Base -# 11| 5: [Struct] S -# 13| 6: [Interface] I -# 15| 7: [DelegateType] MyDelegate +# 11| 6: [Struct] S +# 13| 7: [Interface] I +# 15| 8: [DelegateType] MyDelegate #-----| 2: (Parameters) # 15| 0: [Parameter] s # 15| -1: [TypeMention] S -# 17| 8: [Method] F +# 17| 9: [Method] F # 17| -1: [TypeMention] Void # 18| 4: [BlockStmt] {...} # 19| 0: [ExprStmt] ...; @@ -15,12 +15,12 @@ nestedtypes.cs: # 19| -1: [TypeAccess] access to type Console # 19| 0: [TypeMention] Console # 19| 0: [StringLiteralUtf16] "Base.F" -# 22| 9: [Class] C +# 22| 10: [Class] C # 26| 2: [Class] Derived #-----| 3: (Base types) # 26| 0: [TypeMention] Base -# 29| 5: [Class] Nested -# 32| 5: [Method] G +# 29| 6: [Class] Nested +# 32| 6: [Method] G # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -33,7 +33,7 @@ nestedtypes.cs: # 35| 0: [MethodCall] call to method F # 35| -1: [LocalVariableAccess] access to local variable d # 42| 3: [Class] Test -# 45| 5: [Method] Main +# 45| 6: [Method] Main # 45| -1: [TypeMention] Void # 46| 4: [BlockStmt] {...} # 47| 0: [LocalVariableDeclStmt] ... ...; @@ -50,10 +50,10 @@ nestedtypes.cs: # 53| 4: [Class] Outer`1 #-----| 1: (Type parameters) # 53| 0: [TypeParameter] T -# 56| 6: [Class] Inner`1 +# 56| 7: [Class] Inner`1 #-----| 1: (Type parameters) # 56| 0: [TypeParameter] U -# 59| 5: [Method] F +# 59| 6: [Method] F # 59| -1: [TypeMention] Void #-----| 2: (Parameters) # 59| 0: [Parameter] t @@ -61,7 +61,7 @@ nestedtypes.cs: # 59| 1: [Parameter] u # 59| -1: [TypeMention] U # 59| 4: [BlockStmt] {...} -# 63| 7: [Method] F +# 63| 8: [Method] F # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] t @@ -100,8 +100,8 @@ nestedtypes.cs: # 74| 5: [Class] Outer2`1 #-----| 1: (Type parameters) # 74| 0: [TypeParameter] T -# 77| 5: [Class] Inner2`1 +# 77| 6: [Class] Inner2`1 #-----| 1: (Type parameters) # 77| 0: [TypeParameter] T -# 80| 5: [Field] t +# 80| 6: [Field] t # 80| -1: [TypeMention] T diff --git a/csharp/ql/test/library-tests/operators/PrintAst.expected b/csharp/ql/test/library-tests/operators/PrintAst.expected index 0b490c13d2c..d3b41fe05fb 100644 --- a/csharp/ql/test/library-tests/operators/PrintAst.expected +++ b/csharp/ql/test/library-tests/operators/PrintAst.expected @@ -1,18 +1,18 @@ operators.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] IntVector -# 10| 4: [InstanceConstructor] IntVector +# 10| 5: [InstanceConstructor] IntVector #-----| 2: (Parameters) # 10| 0: [Parameter] length # 10| -1: [TypeMention] int # 10| 4: [BlockStmt] {...} -# 12| 5: [Property] Length +# 12| 6: [Property] Length # 12| -1: [TypeMention] int # 12| 3: [Getter] get_Length # 12| 4: [BlockStmt] {...} # 12| 0: [ReturnStmt] return ...; # 12| 0: [IntLiteral] 4 -# 14| 6: [Indexer] Item +# 14| 7: [Indexer] Item # 14| -1: [TypeMention] int #-----| 1: (Parameters) # 14| 0: [Parameter] index @@ -28,7 +28,7 @@ operators.cs: # 14| 0: [Parameter] index # 14| 1: [Parameter] value # 14| 4: [BlockStmt] {...} -# 16| 7: [IncrementOperator] ++ +# 16| 8: [IncrementOperator] ++ # 16| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 16| 0: [Parameter] iv @@ -66,7 +66,7 @@ operators.cs: # 21| 2: [ReturnStmt] return ...; # 21| 0: [LocalVariableAccess] access to local variable temp # 26| 2: [Class] TestUnaryOperator -# 29| 5: [Method] Main +# 29| 6: [Method] Main # 29| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} # 31| 0: [LocalVariableDeclStmt] ... ...; @@ -90,9 +90,9 @@ operators.cs: # 34| 1: [OperatorCall] call to operator ++ # 34| 0: [LocalVariableAccess] access to local variable iv1 # 39| 3: [Struct] Digit -# 42| 5: [Field] value +# 42| 6: [Field] value # 42| -1: [TypeMention] byte -# 44| 6: [InstanceConstructor] Digit +# 44| 7: [InstanceConstructor] Digit #-----| 2: (Parameters) # 44| 0: [Parameter] value # 44| -1: [TypeMention] byte @@ -115,7 +115,7 @@ operators.cs: # 48| 0: [FieldAccess] access to field value # 48| -1: [ThisAccess] this access # 48| 1: [ParameterAccess] access to parameter value -# 51| 7: [ImplicitConversionOperator] implicit conversion +# 51| 8: [ImplicitConversionOperator] implicit conversion # 51| -1: [TypeMention] byte #-----| 2: (Parameters) # 51| 0: [Parameter] d @@ -124,7 +124,7 @@ operators.cs: # 53| 0: [ReturnStmt] return ...; # 53| 0: [FieldAccess] access to field value # 53| -1: [ParameterAccess] access to parameter d -# 56| 8: [ExplicitConversionOperator] explicit conversion +# 56| 9: [ExplicitConversionOperator] explicit conversion # 56| -1: [TypeMention] Digit #-----| 2: (Parameters) # 56| 0: [Parameter] b @@ -135,7 +135,7 @@ operators.cs: # 58| -1: [TypeMention] Digit # 58| 0: [ParameterAccess] access to parameter b # 63| 4: [Class] TestConversionOperator -# 66| 5: [Method] Main +# 66| 6: [Method] Main # 66| -1: [TypeMention] Void # 67| 4: [BlockStmt] {...} # 68| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/partial/PrintAst.expected b/csharp/ql/test/library-tests/partial/PrintAst.expected index d97f6fc01f0..0729946b18b 100644 --- a/csharp/ql/test/library-tests/partial/PrintAst.expected +++ b/csharp/ql/test/library-tests/partial/PrintAst.expected @@ -1,19 +1,19 @@ Partial.cs: # 1| [Class] TwoPartClass -# 4| 5: [Method] PartialMethodWithoutBody1 +# 4| 6: [Method] PartialMethodWithoutBody1 # 4| -1: [TypeMention] Void -# 5| 6: [Method] Method2 +# 5| 7: [Method] Method2 # 5| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} -# 14| 7: [Method] PartialMethodWithBody1 +# 14| 8: [Method] PartialMethodWithBody1 # 3| -1: [TypeMention] Void # 14| 4: [BlockStmt] {...} -# 15| 8: [Method] Method3 +# 15| 9: [Method] Method3 # 15| -1: [TypeMention] Void # 15| 4: [BlockStmt] {...} -# 16| 9: [Field] _backingField +# 16| 10: [Field] _backingField # 16| -1: [TypeMention] object -# 18| 10: [Property] PartialProperty1 +# 18| 11: [Property] PartialProperty1 # 7| -1: [TypeMention] object # 18| -1: [TypeMention] object # 20| 3: [Getter] get_PartialProperty1 @@ -28,10 +28,10 @@ Partial.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [FieldAccess] access to field _backingField # 21| 1: [ParameterAccess] access to parameter value -# 23| 11: [Field] _backingArray +# 23| 12: [Field] _backingArray # 23| -1: [TypeMention] Object[] # 23| 1: [TypeMention] object -# 25| 12: [Indexer] Item +# 25| 13: [Indexer] Item # 9| -1: [TypeMention] object # 25| -1: [TypeMention] object #-----| 1: (Parameters) @@ -58,22 +58,22 @@ Partial.cs: # 28| 0: [ParameterAccess] access to parameter index # 28| 1: [ParameterAccess] access to parameter value # 32| [Class] OnePartPartialClass -# 34| 5: [Method] PartialMethodWithoutBody2 +# 34| 6: [Method] PartialMethodWithoutBody2 # 34| -1: [TypeMention] Void -# 35| 6: [Method] Method4 +# 35| 7: [Method] Method4 # 35| -1: [TypeMention] Void # 35| 4: [BlockStmt] {...} # 38| [Class] NonPartialClass -# 40| 5: [Method] Method5 +# 40| 6: [Method] Method5 # 40| -1: [TypeMention] Void # 40| 4: [BlockStmt] {...} -# 41| 6: [Property] Property +# 41| 7: [Property] Property # 41| -1: [TypeMention] object # 41| 3: [Getter] get_Property # 41| 4: [Setter] set_Property #-----| 2: (Parameters) # 41| 0: [Parameter] value -# 42| 7: [Indexer] Item +# 42| 8: [Indexer] Item # 42| -1: [TypeMention] object #-----| 1: (Parameters) # 42| 0: [Parameter] index diff --git a/csharp/ql/test/library-tests/properties/PrintAst.expected b/csharp/ql/test/library-tests/properties/PrintAst.expected index 370d180a08e..2df3ee3f5e8 100644 --- a/csharp/ql/test/library-tests/properties/PrintAst.expected +++ b/csharp/ql/test/library-tests/properties/PrintAst.expected @@ -1,9 +1,9 @@ properties.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] Button -# 10| 5: [Field] caption +# 10| 6: [Field] caption # 10| -1: [TypeMention] string -# 12| 6: [Property] Caption +# 12| 7: [Property] Caption # 12| -1: [TypeMention] string # 15| 3: [Getter] get_Caption # 15| 4: [BlockStmt] {...} @@ -22,7 +22,7 @@ properties.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [FieldAccess] access to field caption # 21| 1: [ParameterAccess] access to parameter value -# 26| 7: [Method] Paint +# 26| 8: [Method] Paint # 26| -1: [TypeMention] Void # 27| 4: [BlockStmt] {...} # 28| 0: [LocalVariableDeclStmt] ... ...; @@ -43,9 +43,9 @@ properties.cs: # 30| 1: [PropertyCall] access to property Caption # 30| -1: [LocalVariableAccess] access to local variable okButton # 34| 2: [Class] Counter -# 37| 5: [Field] next +# 37| 6: [Field] next # 37| -1: [TypeMention] int -# 39| 6: [Property] Next +# 39| 7: [Property] Next # 39| -1: [TypeMention] int # 41| 3: [Getter] get_Next # 41| 4: [BlockStmt] {...} @@ -53,32 +53,32 @@ properties.cs: # 41| 0: [PostIncrExpr] ...++ # 41| 0: [FieldAccess] access to field next # 46| 3: [Class] Point -# 49| 5: [Property] X +# 49| 6: [Property] X # 49| -1: [TypeMention] int # 49| 3: [Getter] get_X # 49| 4: [Setter] set_X #-----| 2: (Parameters) # 49| 0: [Parameter] value -# 50| 6: [Property] Y +# 50| 7: [Property] Y # 50| -1: [TypeMention] int # 50| 3: [Getter] get_Y # 50| 4: [Setter] set_Y #-----| 2: (Parameters) # 50| 0: [Parameter] value # 54| 4: [Class] ReadOnlyPoint -# 57| 4: [Property] X +# 57| 5: [Property] X # 57| -1: [TypeMention] int # 57| 3: [Getter] get_X # 57| 4: [Setter] set_X #-----| 2: (Parameters) # 57| 0: [Parameter] value -# 58| 5: [Property] Y +# 58| 6: [Property] Y # 58| -1: [TypeMention] int # 58| 3: [Getter] get_Y # 58| 4: [Setter] set_Y #-----| 2: (Parameters) # 58| 0: [Parameter] value -# 59| 6: [InstanceConstructor] ReadOnlyPoint +# 59| 7: [InstanceConstructor] ReadOnlyPoint #-----| 2: (Parameters) # 59| 0: [Parameter] x # 59| -1: [TypeMention] int @@ -94,15 +94,15 @@ properties.cs: # 62| 0: [PropertyCall] access to property Y # 62| 1: [ParameterAccess] access to parameter y # 67| 5: [Class] A -# 69| 5: [Field] y +# 69| 6: [Field] y # 69| -1: [TypeMention] int -# 70| 6: [Property] X +# 70| 7: [Property] X # 70| -1: [TypeMention] int # 70| 3: [Getter] get_X # 70| 4: [BlockStmt] {...} # 70| 0: [ReturnStmt] return ...; # 70| 0: [IntLiteral] 0 -# 71| 7: [Property] Y +# 71| 8: [Property] Y # 71| -1: [TypeMention] int # 73| 3: [Getter] get_Y # 73| 4: [BlockStmt] {...} @@ -116,7 +116,7 @@ properties.cs: # 74| 0: [AssignExpr] ... = ... # 74| 0: [FieldAccess] access to field y # 74| 1: [ParameterAccess] access to parameter value -# 76| 8: [Property] Z +# 76| 9: [Property] Z # 76| -1: [TypeMention] int # 76| 3: [Getter] get_Z # 76| 4: [Setter] set_Z @@ -125,9 +125,9 @@ properties.cs: # 79| 6: [Class] B #-----| 3: (Base types) # 79| 0: [TypeMention] A -# 81| 5: [Field] z +# 81| 6: [Field] z # 81| -1: [TypeMention] int -# 82| 6: [Property] X +# 82| 7: [Property] X # 82| -1: [TypeMention] int # 82| 3: [Getter] get_X # 82| 4: [BlockStmt] {...} @@ -136,7 +136,7 @@ properties.cs: # 82| 0: [PropertyCall] access to property X # 82| -1: [BaseAccess] base access # 82| 1: [IntLiteral] 1 -# 83| 7: [Property] Y +# 83| 8: [Property] Y # 83| -1: [TypeMention] int # 83| 3: [Setter] set_Y #-----| 2: (Parameters) @@ -152,7 +152,7 @@ properties.cs: # 83| 1: [IntLiteral] 0 # 83| 1: [IntLiteral] 0 # 83| 2: [ParameterAccess] access to parameter value -# 84| 8: [Property] Z +# 84| 9: [Property] Z # 84| -1: [TypeMention] int # 86| 3: [Getter] get_Z # 86| 4: [BlockStmt] {...} @@ -167,13 +167,13 @@ properties.cs: # 87| 0: [FieldAccess] access to field z # 87| 1: [ParameterAccess] access to parameter value # 91| 7: [Class] Test -# 93| 5: [Property] Init +# 93| 6: [Property] Init # 93| -1: [TypeMention] int # 93| 3: [Setter] set_Init #-----| 2: (Parameters) # 93| 0: [Parameter] value # 93| 4: [BlockStmt] {...} -# 94| 6: [Method] Main +# 94| 7: [Method] Main # 94| -1: [TypeMention] Void # 95| 4: [BlockStmt] {...} # 96| 0: [LocalVariableDeclStmt] ... ...; @@ -211,19 +211,19 @@ properties.cs: # 110| 9: [Class] ImplementsProperties #-----| 3: (Base types) # 110| 1: [TypeMention] InterfaceWithProperties -# 112| 5: [Property] Prop1 +# 112| 6: [Property] Prop1 # 112| -1: [TypeMention] int # 114| 3: [Getter] get_Prop1 # 114| 4: [BlockStmt] {...} # 114| 0: [ReturnStmt] return ...; # 114| 0: [IntLiteral] 0 -# 117| 6: [Property] Prop2 +# 117| 7: [Property] Prop2 # 117| -1: [TypeMention] int # 119| 3: [Setter] set_Prop2 #-----| 2: (Parameters) # 119| 0: [Parameter] value # 119| 4: [BlockStmt] {...} -# 122| 7: [Property] Prop2 +# 122| 8: [Property] Prop2 # 122| -1: [TypeMention] InterfaceWithProperties # 122| -1: [TypeMention] int # 124| 3: [Setter] set_Prop2 diff --git a/csharp/ql/test/library-tests/statements/PrintAst.expected b/csharp/ql/test/library-tests/statements/PrintAst.expected index 6aea0fa286e..59af8ce4a2e 100644 --- a/csharp/ql/test/library-tests/statements/PrintAst.expected +++ b/csharp/ql/test/library-tests/statements/PrintAst.expected @@ -1,6 +1,6 @@ fixed.cs: # 3| [Class] Fixed -# 5| 5: [Method] fixed1 +# 5| 6: [Method] fixed1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -52,7 +52,7 @@ fixed.cs: statements.cs: # 6| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] Class -# 11| 5: [Method] Main +# 11| 6: [Method] Main # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [LabelStmt] block: @@ -60,7 +60,7 @@ statements.cs: # 15| 0: [BlockStmt] {...} # 17| 1: [BlockStmt] {...} # 18| 0: [BlockStmt] {...} -# 24| 6: [Method] MainEmpty +# 24| 7: [Method] MainEmpty # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -75,7 +75,7 @@ statements.cs: # 28| 4: [IfStmt] if (...) ... # 28| 0: [BoolLiteral] true # 28| 1: [EmptyStmt] ; -# 31| 7: [Method] MainLocalVarDecl +# 31| 8: [Method] MainLocalVarDecl # 31| -1: [TypeMention] Void # 32| 4: [BlockStmt] {...} # 33| 0: [LocalVariableDeclStmt] ... ...; @@ -113,7 +113,7 @@ statements.cs: # 38| -1: [TypeMention] string # 38| 0: [LocalVariableAccess] access to local variable y # 38| 1: [StringLiteralUtf16] "test" -# 41| 8: [Method] MainLocalConstDecl +# 41| 9: [Method] MainLocalConstDecl # 41| -1: [TypeMention] Void # 42| 4: [BlockStmt] {...} # 43| 0: [LocalConstantDeclStmt] const ... ...; @@ -139,7 +139,7 @@ statements.cs: # 45| 1: [LocalVariableAccess] access to local variable r # 45| 1: [CastExpr] (...) ... # 45| 1: [LocalVariableAccess] access to local variable r -# 48| 9: [Method] MainExpr +# 48| 10: [Method] MainExpr # 48| -1: [TypeMention] Void # 49| 4: [BlockStmt] {...} # 50| 0: [LocalVariableDeclStmt] ... ...; @@ -162,7 +162,7 @@ statements.cs: # 54| -1: [TypeAccess] access to type Console # 54| 0: [TypeMention] Console # 54| 0: [LocalVariableAccess] access to local variable i -# 57| 10: [Method] MainIf +# 57| 11: [Method] MainIf # 57| -1: [TypeMention] Void #-----| 2: (Parameters) # 57| 0: [Parameter] args @@ -186,7 +186,7 @@ statements.cs: # 65| -1: [TypeAccess] access to type Console # 65| 0: [TypeMention] Console # 65| 0: [StringLiteralUtf16] "One or more arguments" -# 69| 11: [Method] MainSwitch +# 69| 12: [Method] MainSwitch # 69| -1: [TypeMention] Void #-----| 2: (Parameters) # 69| 0: [Parameter] args @@ -226,7 +226,7 @@ statements.cs: # 81| 1: [CastExpr] (...) ... # 81| 1: [LocalVariableAccess] access to local variable n # 82| 8: [BreakStmt] break; -# 86| 12: [Method] StringSwitch +# 86| 13: [Method] StringSwitch # 86| -1: [TypeMention] int #-----| 2: (Parameters) # 86| 0: [Parameter] foo @@ -270,7 +270,7 @@ statements.cs: # 106| 0: [IntLiteral] 7 # 108| 1: [ReturnStmt] return ...; # 108| 0: [IntLiteral] 7 -# 111| 13: [Method] MainWhile +# 111| 14: [Method] MainWhile # 111| -1: [TypeMention] Void #-----| 2: (Parameters) # 111| 0: [Parameter] args @@ -298,7 +298,7 @@ statements.cs: # 117| 1: [ExprStmt] ...; # 117| 0: [PostIncrExpr] ...++ # 117| 0: [LocalVariableAccess] access to local variable i -# 121| 14: [Method] MainDo +# 121| 15: [Method] MainDo # 121| -1: [TypeMention] Void # 122| 4: [BlockStmt] {...} # 123| 0: [LocalVariableDeclStmt] ... ...; @@ -324,7 +324,7 @@ statements.cs: # 127| -1: [TypeAccess] access to type Console # 127| 0: [TypeMention] Console # 127| 0: [LocalVariableAccess] access to local variable s -# 131| 15: [Method] MainFor +# 131| 16: [Method] MainFor # 131| -1: [TypeMention] Void #-----| 2: (Parameters) # 131| 0: [Parameter] args @@ -350,7 +350,7 @@ statements.cs: # 135| 0: [ArrayAccess] access to array element # 135| -1: [ParameterAccess] access to parameter args # 135| 0: [LocalVariableAccess] access to local variable i -# 139| 16: [Method] MainForeach +# 139| 17: [Method] MainForeach # 139| -1: [TypeMention] Void #-----| 2: (Parameters) # 139| 0: [Parameter] args @@ -367,7 +367,7 @@ statements.cs: # 143| -1: [TypeAccess] access to type Console # 143| 0: [TypeMention] Console # 143| 0: [LocalVariableAccess] access to local variable s -# 147| 17: [Method] MainBreak +# 147| 18: [Method] MainBreak # 147| -1: [TypeMention] Void # 148| 4: [BlockStmt] {...} # 149| 0: [WhileStmt] while (...) ... @@ -390,7 +390,7 @@ statements.cs: # 153| -1: [TypeAccess] access to type Console # 153| 0: [TypeMention] Console # 153| 0: [LocalVariableAccess] access to local variable s -# 157| 18: [Method] MainContinue +# 157| 19: [Method] MainContinue # 157| -1: [TypeMention] Void #-----| 2: (Parameters) # 157| 0: [Parameter] args @@ -423,7 +423,7 @@ statements.cs: # 162| 0: [ArrayAccess] access to array element # 162| -1: [ParameterAccess] access to parameter args # 162| 0: [LocalVariableAccess] access to local variable i -# 166| 19: [Method] MainGoto +# 166| 20: [Method] MainGoto # 166| -1: [TypeMention] Void #-----| 2: (Parameters) # 166| 0: [Parameter] args @@ -452,7 +452,7 @@ statements.cs: # 171| 1: [PropertyCall] access to property Length # 171| -1: [ParameterAccess] access to parameter args # 171| 1: [GotoLabelStmt] goto ...; -# 174| 20: [Method] Add +# 174| 21: [Method] Add # 174| -1: [TypeMention] int #-----| 2: (Parameters) # 174| 0: [Parameter] a @@ -464,7 +464,7 @@ statements.cs: # 176| 0: [AddExpr] ... + ... # 176| 0: [ParameterAccess] access to parameter a # 176| 1: [ParameterAccess] access to parameter b -# 178| 21: [Method] MainReturn +# 178| 22: [Method] MainReturn # 178| -1: [TypeMention] Void # 179| 4: [BlockStmt] {...} # 180| 0: [ExprStmt] ...; @@ -475,7 +475,7 @@ statements.cs: # 180| 0: [IntLiteral] 1 # 180| 1: [IntLiteral] 2 # 181| 1: [ReturnStmt] return ...; -# 184| 22: [Method] Range +# 184| 23: [Method] Range # 184| -1: [TypeMention] IEnumerable # 184| 1: [TypeMention] int #-----| 2: (Parameters) @@ -498,7 +498,7 @@ statements.cs: # 188| 0: [YieldReturnStmt] yield return ...; # 188| 0: [LocalVariableAccess] access to local variable i # 190| 1: [YieldBreakStmt] yield break; -# 192| 23: [Method] MainYield +# 192| 24: [Method] MainYield # 192| -1: [TypeMention] Void # 193| 4: [BlockStmt] {...} # 194| 0: [ForeachStmt] foreach (... ... in ...) ... @@ -514,7 +514,7 @@ statements.cs: # 196| -1: [TypeAccess] access to type Console # 196| 0: [TypeMention] Console # 196| 0: [LocalVariableAccess] access to local variable x -# 200| 24: [Method] Divide +# 200| 25: [Method] Divide # 200| -1: [TypeMention] double #-----| 2: (Parameters) # 200| 0: [Parameter] x @@ -534,7 +534,7 @@ statements.cs: # 203| 0: [DivExpr] ... / ... # 203| 0: [ParameterAccess] access to parameter x # 203| 1: [ParameterAccess] access to parameter y -# 205| 25: [Method] MainTryThrow +# 205| 26: [Method] MainTryThrow # 205| -1: [TypeMention] Void #-----| 2: (Parameters) # 205| 0: [Parameter] args @@ -603,7 +603,7 @@ statements.cs: # 223| -1: [TypeAccess] access to type Console # 223| 0: [TypeMention] Console # 223| 0: [StringLiteralUtf16] "Exception" -# 231| 26: [Method] MainCheckedUnchecked +# 231| 27: [Method] MainCheckedUnchecked # 231| -1: [TypeMention] Void # 232| 4: [BlockStmt] {...} # 233| 0: [LocalVariableDeclStmt] ... ...; @@ -631,10 +631,10 @@ statements.cs: # 240| 0: [AddExpr] ... + ... # 240| 0: [LocalVariableAccess] access to local variable i # 240| 1: [IntLiteral] 1 -# 244| 27: [Class] AccountLock -# 246| 5: [Field] balance +# 244| 28: [Class] AccountLock +# 246| 6: [Field] balance # 246| -1: [TypeMention] decimal -# 247| 6: [Method] Withdraw +# 247| 7: [Method] Withdraw # 247| -1: [TypeMention] Void #-----| 2: (Parameters) # 247| 0: [Parameter] amount @@ -656,7 +656,7 @@ statements.cs: # 255| 0: [AssignSubExpr] ... -= ... # 255| 0: [FieldAccess] access to field balance # 255| 1: [ParameterAccess] access to parameter amount -# 260| 28: [Method] MainUsing +# 260| 29: [Method] MainUsing # 260| -1: [TypeMention] Void # 261| 4: [BlockStmt] {...} # 262| 0: [UsingBlockStmt] using (...) {...} @@ -686,7 +686,7 @@ statements.cs: # 268| 0: [TypeMention] File # 268| 0: [StringLiteralUtf16] "test.txt" # 269| 1: [BlockStmt] {...} -# 273| 29: [Method] MainLabeled +# 273| 30: [Method] MainLabeled # 273| -1: [TypeMention] Void # 274| 4: [BlockStmt] {...} # 275| 0: [GotoLabelStmt] goto ...; @@ -700,11 +700,11 @@ statements.cs: # 278| 0: [AssignExpr] ... = ... # 278| 0: [LocalVariableAccess] access to local variable x # 278| 1: [IntLiteral] 9 -# 281| 30: [Field] lockObject +# 281| 31: [Field] lockObject # 281| -1: [TypeMention] Lock # 281| 1: [ObjectCreation] object creation of type Lock # 281| 0: [TypeMention] Lock -# 283| 31: [Method] LockMethod +# 283| 32: [Method] LockMethod # 283| -1: [TypeMention] Void # 284| 4: [BlockStmt] {...} # 285| 0: [LockStmt] lock (...) {...} diff --git a/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected b/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected index 6529f9feed5..4e975eedd4c 100644 --- a/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected +++ b/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected @@ -1,6 +1,6 @@ StringInterpolation.cs: # 3| [Class] MyStringInterpolationClass -# 6| 5: [Method] M +# 6| 6: [Method] M # 6| -1: [TypeMention] Void # 7| 4: [BlockStmt] {...} # 8| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/types/PrintAst.expected b/csharp/ql/test/library-tests/types/PrintAst.expected index 47c3c11261b..c6dc07ab1a5 100644 --- a/csharp/ql/test/library-tests/types/PrintAst.expected +++ b/csharp/ql/test/library-tests/types/PrintAst.expected @@ -1,91 +1,91 @@ types.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Class -# 5| 5: [Method] BoolType +# 5| 6: [Method] BoolType # 5| -1: [TypeMention] bool -# 6| 6: [Method] CharType +# 6| 7: [Method] CharType # 6| -1: [TypeMention] char -# 7| 7: [Method] DecimalType +# 7| 8: [Method] DecimalType # 7| -1: [TypeMention] decimal -# 8| 8: [Method] SByteType +# 8| 9: [Method] SByteType # 8| -1: [TypeMention] sbyte -# 9| 9: [Method] ShortType +# 9| 10: [Method] ShortType # 9| -1: [TypeMention] short -# 10| 10: [Method] IntType +# 10| 11: [Method] IntType # 10| -1: [TypeMention] int -# 11| 11: [Method] LongType +# 11| 12: [Method] LongType # 11| -1: [TypeMention] long -# 12| 12: [Method] ByteType +# 12| 13: [Method] ByteType # 12| -1: [TypeMention] byte -# 13| 13: [Method] UShortType +# 13| 14: [Method] UShortType # 13| -1: [TypeMention] ushort -# 14| 14: [Method] UIntType +# 14| 15: [Method] UIntType # 14| -1: [TypeMention] uint -# 15| 15: [Method] ULongType +# 15| 16: [Method] ULongType # 15| -1: [TypeMention] ulong -# 16| 16: [Method] FloatType +# 16| 17: [Method] FloatType # 16| -1: [TypeMention] float -# 17| 17: [Method] DoubleType +# 17| 18: [Method] DoubleType # 17| -1: [TypeMention] double -# 18| 18: [Method] NullableType +# 18| 19: [Method] NullableType # 18| -1: [TypeMention] Struct? # 18| 1: [TypeMention] Struct -# 19| 19: [Method] VoidType +# 19| 20: [Method] VoidType # 19| -1: [TypeMention] Void -# 20| 20: [Method] ArrayType +# 20| 21: [Method] ArrayType # 20| -1: [TypeMention] Class[] # 20| 1: [TypeMention] Class -# 21| 21: [Method] ArrayArrayType +# 21| 22: [Method] ArrayArrayType # 21| -1: [TypeMention] Class[][] # 21| 1: [TypeMention] Class -# 22| 22: [Method] ConstructedClassType +# 22| 23: [Method] ConstructedClassType # 22| -1: [TypeMention] GenericClass # 22| 1: [TypeMention] Class -# 23| 23: [Method] ConstructedInterfaceType +# 23| 24: [Method] ConstructedInterfaceType # 23| -1: [TypeMention] GenericInterface # 23| 1: [TypeMention] Class -# 24| 24: [Method] ConstructedStructType +# 24| 25: [Method] ConstructedStructType # 24| -1: [TypeMention] GenericStruct # 24| 1: [TypeMention] Class -# 25| 25: [Method] DelegateType +# 25| 26: [Method] DelegateType # 25| -1: [TypeMention] Delegate -# 26| 26: [Method] PointerType +# 26| 27: [Method] PointerType # 26| -1: [TypeMention] byte* # 26| 1: [TypeMention] byte -# 27| 27: [Method] PointerPointerType +# 27| 28: [Method] PointerPointerType # 27| -1: [TypeMention] byte** # 27| 1: [TypeMention] byte -# 28| 28: [Method] PointerArrayArrayType +# 28| 29: [Method] PointerArrayArrayType # 28| -1: [TypeMention] Byte*[][] # 28| 1: [TypeMention] byte -# 29| 29: [Method] NullableArrayType +# 29| 30: [Method] NullableArrayType # 29| -1: [TypeMention] Nullable[] # 29| 1: [TypeMention] byte? # 29| 1: [TypeMention] byte -# 30| 30: [Method] NullableArrayArrayType +# 30| 31: [Method] NullableArrayArrayType # 30| -1: [TypeMention] Nullable[][] # 30| 1: [TypeMention] byte? # 30| 1: [TypeMention] byte -# 32| 31: [Method] ArrayNullArrayType1 +# 32| 32: [Method] ArrayNullArrayType1 # 32| -1: [TypeMention] Byte[][] # 32| 1: [TypeMention] byte -# 33| 32: [Method] ArrayNullArrayType2 +# 33| 33: [Method] ArrayNullArrayType2 # 33| -1: [TypeMention] Object[][] # 33| 1: [TypeMention] object -# 34| 33: [Method] ArrayNullableRefType +# 34| 34: [Method] ArrayNullableRefType # 34| -1: [TypeMention] Object[] # 34| 1: [TypeMention] object -# 35| 34: [Method] NullableRefType +# 35| 35: [Method] NullableRefType # 35| -1: [TypeMention] object -# 37| 35: [Method] NullableArrayArrayType2 +# 37| 36: [Method] NullableArrayArrayType2 # 37| -1: [TypeMention] Nullable[][] # 37| 1: [TypeMention] byte? # 37| 1: [TypeMention] byte -# 38| 36: [Method] Map +# 38| 37: [Method] Map # 38| -1: [TypeMention] Map # 38| 1: [TypeMention] string # 38| 2: [TypeMention] Class -# 39| 37: [Method] Null +# 39| 38: [Method] Null # 39| -1: [TypeMention] Class # 40| 4: [BlockStmt] {...} # 41| 0: [ReturnStmt] return ...; @@ -112,21 +112,21 @@ types.cs: # 59| 1: [DefaultAttribute] [InlineArray(...)] # 59| -1: [TypeMention] InlineArrayAttribute # 59| 0: [IntLiteral] 10 -# 62| 5: [Field] myInlineArrayElements +# 62| 6: [Field] myInlineArrayElements # 62| -1: [TypeMention] int # 66| 11: [InlineArrayType] MyMultiDimensionalInlineArray #-----| 0: (Attributes) # 65| 1: [DefaultAttribute] [InlineArray(...)] # 65| -1: [TypeMention] InlineArrayAttribute # 65| 0: [IntLiteral] 5 -# 68| 5: [Field] myMultiDimentionalInlineArrayElements +# 68| 6: [Field] myMultiDimentionalInlineArrayElements # 68| -1: [TypeMention] MyInlineArray # 72| 12: [InlineArrayType] MyMultiDimensionalInlineArray2 #-----| 0: (Attributes) # 71| 1: [DefaultAttribute] [InlineArray(...)] # 71| -1: [TypeMention] InlineArrayAttribute # 71| 0: [IntLiteral] 7 -# 74| 5: [Field] myMultiDimentionalInlineArrayElements +# 74| 6: [Field] myMultiDimentionalInlineArrayElements # 74| -1: [TypeMention] String[] # 74| 1: [TypeMention] string # 78| 13: [InlineArrayType] MyMultiDimensionalInlineArray3 @@ -134,7 +134,7 @@ types.cs: # 77| 1: [DefaultAttribute] [InlineArray(...)] # 77| -1: [TypeMention] InlineArrayAttribute # 77| 0: [IntLiteral] 4 -# 80| 5: [Field] myMultiDimentionalInlineArrayElements +# 80| 6: [Field] myMultiDimentionalInlineArrayElements # 80| -1: [TypeMention] Object[,] # 80| 1: [TypeMention] object # 84| 14: [InlineArrayType] MyMultiDimensionalInlineArray4 @@ -142,6 +142,6 @@ types.cs: # 83| 1: [DefaultAttribute] [InlineArray(...)] # 83| -1: [TypeMention] InlineArrayAttribute # 83| 0: [IntLiteral] 11 -# 86| 5: [Field] myMultiDimentionalInlineArrayElements +# 86| 6: [Field] myMultiDimentionalInlineArrayElements # 86| -1: [TypeMention] Object[][] # 86| 1: [TypeMention] object diff --git a/csharp/ql/test/library-tests/unsafe/PrintAst.expected b/csharp/ql/test/library-tests/unsafe/PrintAst.expected index d18e3b33072..76e1387cb76 100644 --- a/csharp/ql/test/library-tests/unsafe/PrintAst.expected +++ b/csharp/ql/test/library-tests/unsafe/PrintAst.expected @@ -1,7 +1,7 @@ unsafe.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Test -# 5| 5: [Method] Main +# 5| 6: [Method] Main # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] args @@ -93,7 +93,7 @@ unsafe.cs: # 19| 1: [SubExpr] ... - ... # 19| 0: [LocalVariableAccess] access to local variable ip # 19| 1: [LocalVariableAccess] access to local variable ip42 -# 22| 6: [Method] f +# 22| 7: [Method] f # 22| -1: [TypeMention] Void #-----| 2: (Parameters) # 22| 0: [Parameter] p @@ -114,10 +114,10 @@ unsafe.cs: # 26| 0: [AddExpr] ... + ... # 26| 0: [ParameterAccess] access to parameter p # 26| 1: [IntLiteral] 0 -# 30| 7: [Method] g +# 30| 8: [Method] g # 30| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} -# 32| 8: [Method] h +# 32| 9: [Method] h # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [UnsafeStmt] unsafe {...} From 7e4e872430ee70a9c0ff3cd5a2296ef0aaaee87d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 28 Nov 2025 10:54:08 +0100 Subject: [PATCH 019/194] C#: Accept expected changes. --- .../controlflow/graph/BasicBlock.expected | 100 ++-- .../controlflow/graph/Dominance.expected | 558 ++++++++++++------ .../graph/EnclosingCallable.expected | 234 +++++--- .../controlflow/graph/EntryElement.expected | 92 +++ .../controlflow/graph/ExitElement.expected | 92 +++ .../controlflow/graph/NodeGraph.expected | 246 +++++--- .../controlflow/graph/Nodes.expected | 98 +-- .../controlflow/guards/AbstractValue.expected | 6 + .../csharp10/fileScopedNamespace.expected | 1 + .../csharp6/MemberAccess.expected | 3 + .../csharp7/LocalTaintFlow.expected | 17 +- .../csharp8/NullableRefTypes.expected | 30 + .../csharp9-standalone/globalStmt.expected | 2 + .../library-tests/csharp9/nativeInt.expected | 2 + .../library-tests/csharp9/record.expected | 16 + .../constructors/ConstructorFlow.expected | 18 +- .../dataflow/fields/FieldFlow.expected | 24 +- .../dataflow/local/DataFlowStep.expected | 10 + .../dataflow/local/TaintTrackingStep.expected | 10 + .../dataflow/tuples/DataFlowStep.expected | 5 + .../expressions/QualifiableExpr.expected | 31 + .../ExtensionMethodCalls.expected | 1 + .../ql/test/library-tests/goto/Goto1.expected | 4 +- .../implicitToString.expected | 5 + .../locations/locations.expected | 14 + .../nullable/NullableExpressions.expected | 2 + .../library-tests/overlay/base/test.expected | 10 + .../overlay/overlay/test.expected | 10 + .../library-tests/partial/Partial2.expected | 5 + .../brokentypes/brokenTypes.expected | 8 + .../standalone/controlflow/cfg.expected | 4 +- .../errorrecovery/ErrorCalls.expected | 5 + .../externalLocationSink.expected | 1 + .../structuralComparison.expected | 6 + 34 files changed, 1222 insertions(+), 448 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index c9f7d2ab35c..99d89a29c13 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -1,4 +1,4 @@ -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | 5 | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | 7 | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | exit get_Item | 4 | | AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | exit set_Item | 4 | | AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | exit add_Event | 4 | @@ -12,12 +12,12 @@ | AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 24 | | AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 30 | | AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | exit M9 | 58 | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | 5 | +| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | 7 | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | exit M1 | 5 | | ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | exit M2 | 6 | | ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | exit M3 | 8 | | ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | exit M4 | 13 | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | exit AssertTests | 5 | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | exit AssertTests | 7 | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:20:9:20 | access to parameter b | 4 | | Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | exit M1 | 1 | | Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 (abnormal) | 1 | @@ -163,11 +163,11 @@ | Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | 1 | | Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 (abnormal) | 1 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | 2 | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | exit Assignments | 5 | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | exit Assignments | 7 | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 34 | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 4 | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | exit + | 6 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 5 | +| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 7 | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:33:7:36 | access to parameter args | 5 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | 2 | | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | 1 | @@ -197,18 +197,18 @@ | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | 1 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | ... == ... | 6 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | 1 | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | 5 | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | 7 | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | exit Default | 6 | | CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | 6 | | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | exit Typeof | 6 | | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | exit Nameof | 6 | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | 5 | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | 7 | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | 9 | | CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | 1 | | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | 1 | | CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | 3 | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | 5 | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | 5 | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | 7 | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | 2 | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | 2 | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | 1 | @@ -245,7 +245,7 @@ | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | 2 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | 1 | | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | 8 | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 5 | +| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 7 | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 2 | | Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | 3 | @@ -334,7 +334,7 @@ | Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | 1 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | call to method WriteLine | 6 | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | call to method WriteLine | 6 | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 5 | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 7 | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | exit M1 | 8 | | ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | exit M2 | 8 | | ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | exit M3 | 7 | @@ -383,7 +383,7 @@ | Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | exit ToBool | 8 | | Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 | 5 | | Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | exit Main | 20 | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 5 | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 7 | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:15:13:15:40 | call to method WriteLine | 11 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | 1 | | Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 1 | @@ -464,9 +464,9 @@ | Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | ... == ... | 5 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | 6 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:167:17:167:37 | call to method WriteLine | 5 | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 5 | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 5 | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC | 5 | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 7 | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 7 | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC | 7 | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:17:180:18 | access to parameter b1 | 6 | | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | 1 | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | 1 | @@ -511,7 +511,7 @@ | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | 1 | | Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 1 | | Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | 1 | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 5 | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 7 | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:29:8:32 | access to parameter args | 3 | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | 2 | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | 1 | @@ -539,19 +539,22 @@ | Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 | 2 | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | 1 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:39:11:39:11 | ; | 4 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | exit | 14 | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | exit Initializers | 4 | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | exit Initializers | 16 | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 16 | +| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | exit Initializers | 7 | +| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 7 | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 22 | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 5 | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 11 | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 12 | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 9 | +| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 7 | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 6 | +| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 11 | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 9 | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 14 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 5 | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 5 | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 13 | +| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 7 | +| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 7 | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 105 | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 5 | +| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 7 | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:9:13:9:28 | ... == ... | 7 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | 2 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | 1 | @@ -609,9 +612,9 @@ | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | 2 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | 1 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | 5 | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | 2 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | 1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | 2 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | {...} | 4 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | 1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | 1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | 3 | @@ -624,6 +627,9 @@ | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | enter M | 1 | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | 1 | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | 3 | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | 1 | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | 2 | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:24:32:24:34 | ... = ... | 7 | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | 2 | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | 1 | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | 1 | @@ -637,9 +643,9 @@ | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 | 2 | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | 2 | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 | 4 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 14 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | 1 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | 1 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 9 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | 1 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | 2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:27:21:29 | {...} | 3 | @@ -649,35 +655,36 @@ | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | 1 | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | 1 | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | 2 | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | 2 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | 1 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | 2 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | {...} | 4 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | 5 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | 2 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | 1 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | 2 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | {...} | 4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | 1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | 1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | 4 | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | exit M2 | 6 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | 2 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | {...} | 4 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | 2 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | 4 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | 2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | 2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:22:32:22:34 | ... = ... | 7 | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | 3 | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | 4 | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | 1 | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | 2 | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | exit M2 | 5 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | 12 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | 7 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:27:19:29 | {...} | 3 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | 4 | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | 3 | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | 2 | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | 2 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | {...} | 4 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | {...} | 4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | 2 | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | 5 | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | 7 | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | 2 | | NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | exit M1 | 3 | | NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | 1 | @@ -715,9 +722,10 @@ | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:18 | "" | 5 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | 5 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | exit M6 | 4 | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 12 | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 12 | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 5 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 10 | +| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 7 | +| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 7 | +| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 7 | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:18:8:23 | Int32 i1 | 8 | | Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:8:13:8:23 | [false] ... is ... | 1 | | Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:8:13:8:23 | [true] ... is ... | 1 | @@ -811,7 +819,7 @@ | Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:29:95:38 | [no-match] ... or ... | 1 | | Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | 1 | | Patterns.cs:96:9:98:9 | {...} | Patterns.cs:97:13:97:38 | call to method WriteLine | 4 | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance | 5 | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance | 7 | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | exit M1 | 7 | | PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:18:12:21 | null | 5 | | PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 | 2 | @@ -825,11 +833,11 @@ | PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:19:13:19:21 | [true] ... is ... | 1 | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | 4 | | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | exit M3 (normal) | 4 | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers | 5 | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers | 7 | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | exit Method | 4 | | Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | exit StaticMethod | 4 | | Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | exit M | 58 | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | exit Switch | 5 | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | exit Switch | 7 | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | exit M1 | 6 | | Switch.cs:10:10:10:11 | enter M2 | Switch.cs:14:18:14:20 | "a" | 6 | | Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | exit M2 | 1 | @@ -947,20 +955,20 @@ | Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | 2 | | Switch.cs:172:17:172:46 | ...; | Switch.cs:173:17:173:22 | break; | 4 | | Switch.cs:174:13:174:20 | default: | Switch.cs:176:17:176:22 | break; | 5 | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | 5 | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | 7 | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:18:7:22 | Int32 j | 13 | | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | 1 | | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | 1 | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | 1 | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | exit M | 5 | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls | 5 | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls | 7 | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | exit M1 | 19 | | VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | exit M2 | 13 | | VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:20:25:20 | access to parameter b | 11 | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:19:7:19:8 | exit M3 | 4 | | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | 1 | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | 1 | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | exit C | 5 | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | exit C | 7 | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | exit Dispose | 4 | | cflow.cs:5:17:5:20 | enter Main | cflow.cs:11:13:11:17 | ... > ... | 15 | | cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main | 2 | @@ -1034,7 +1042,7 @@ | cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | 1 | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | 2 | | cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 8 | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 9 | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 11 | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow | 9 | | cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | exit ControlFlow | 8 | | cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | exit + | 9 | @@ -1132,17 +1140,17 @@ | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:30 | ... < ... | 3 | | cflow.cs:265:9:267:9 | {...} | cflow.cs:264:33:264:35 | ...++ | 5 | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | 7 | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub | 5 | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub | 7 | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | exit ControlFlowSub | 5 | | cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | exit ControlFlowSub | 7 | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall | 5 | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall | 7 | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | exit M | 6 | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor | 5 | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor | 7 | | cflow.cs:298:10:298:10 | enter M | cflow.cs:300:46:300:50 | ... > ... | 7 | | cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:51 | [false] !... | 1 | | cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:44:300:51 | [true] !... | 1 | | cflow.cs:300:44:300:64 | ... && ... | cflow.cs:298:10:298:10 | exit M | 5 | | cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:64 | ... != ... | 3 | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter | 5 | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter | 7 | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | exit (...) => ... | 9 | | cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | exit get__getter | 4 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index f5368b5c7e9..8240e61a419 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -1,7 +1,9 @@ dominance | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | call to method | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:23:5:25 | exit get_Item | @@ -305,8 +307,10 @@ dominance | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:81 | dynamic access to element | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | call to method | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:11:3:12 | exit M1 | @@ -337,8 +341,10 @@ dominance | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:48:9:48 | 3 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:43:9:50 | { ..., ... } | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | {...} | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | exit AssertTests | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | call to method | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:8:5:12:5 | {...} | | Assert.cs:8:5:12:5 | {...} | Assert.cs:9:9:9:33 | ... ...; | @@ -708,8 +714,10 @@ dominance | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | {...} | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | exit Assignments | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | call to method | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:3:10:3:10 | exit M | @@ -753,8 +761,10 @@ dominance | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | call to method | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | @@ -839,8 +849,10 @@ dominance | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | call to method | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:5:9:5:15 | exit Default | @@ -863,8 +875,10 @@ dominance | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:9:22:25 | return ...; | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | call to method | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | @@ -884,8 +898,10 @@ dominance | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | call to method | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | @@ -963,8 +979,10 @@ dominance | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | call to method | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | exit Conditions (normal) | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | @@ -1266,8 +1284,10 @@ dominance | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:44:149:46 | {...} | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | exit ExitMethods | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | call to method | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:8:10:8:11 | exit M1 | @@ -1464,8 +1484,10 @@ dominance | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | delegate creation of type Func | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | {...} | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | exit Finally | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | call to method | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | exit Finally (normal) | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:8:5:17:5 | {...} | | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | @@ -1679,16 +1701,22 @@ dominance | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | call to method | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | {...} | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | exit ExceptionB | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | call to method | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | {...} | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | exit ExceptionC | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | call to method | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:177:5:193:5 | {...} | | Finally.cs:177:5:193:5 | {...} | Finally.cs:178:9:192:9 | try {...} ... | @@ -1812,8 +1840,10 @@ dominance | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | call to method | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | @@ -1865,38 +1895,33 @@ dominance | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:33:38:33 | Int32 y | | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:18:38:34 | (..., ...) | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | {...} | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:20:8:22 | {...} | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:28:10:30 | {...} | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:20:8:22 | {...} | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | exit Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | call to method | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | exit Initializers (normal) | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:28:10:30 | {...} | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | exit Initializers | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | call to method | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:13:5:16:5 | {...} | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:12:10:12:10 | exit M | @@ -1923,25 +1948,30 @@ dominance | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:22:23:22:23 | this access | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | exit | | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | {...} | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:24:31:33 | {...} | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:27:35:40 | {...} | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | -| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | @@ -1955,9 +1985,11 @@ dominance | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | @@ -1966,12 +1998,16 @@ dominance | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | exit IndexInitializers | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | call to method | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | {...} | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | exit Compound | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | call to method | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | exit Compound (normal) | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:52:5:66:5 | {...} | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:51:10:51:13 | exit Test | @@ -2078,8 +2114,10 @@ dominance | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | call to method | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | @@ -2275,9 +2313,11 @@ dominance | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | call to method | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | @@ -2296,6 +2336,9 @@ dominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | @@ -2317,9 +2360,11 @@ dominance | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | exit M2 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:13:16:13:16 | this access | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | @@ -2338,20 +2383,23 @@ dominance | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | | MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:32:24:34 | ... = ... | | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:34:24:34 | 0 | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | access to property P | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | call to method | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | call to method | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:22:36:25 | null | @@ -2363,6 +2411,8 @@ dominance | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | call to method | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:34:4:34 | 1 | | MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | @@ -2382,7 +2432,9 @@ dominance | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | call to method | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | @@ -2395,14 +2447,19 @@ dominance | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | access to property P | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | call to method | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | call to method | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | call to method | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:9:3:10 | exit M1 | @@ -2460,31 +2517,32 @@ dominance | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationB.cs:3:16:3:16 | this access | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | exit | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | this access | | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | call to method | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:27:3:29 | {...} | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:22:4:24 | {...} | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | exit (normal) | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | {...} | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | exit Patterns | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | call to method | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:5:10:5:11 | exit M1 | @@ -2683,8 +2741,10 @@ dominance | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:38 | call to method WriteLine | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | exit PostDominance | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | call to method | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:5:10:5:11 | exit M1 | @@ -2718,8 +2778,10 @@ dominance | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:28 | call to method WriteLine | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | exit Qualifiers | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | call to method | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:16:7:21 | exit Method | @@ -2785,8 +2847,10 @@ dominance | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | {...} | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | exit Switch | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | call to method | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | exit Switch (normal) | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:6:5:8:5 | {...} | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:5:10:5:11 | exit M1 | @@ -3055,8 +3119,10 @@ dominance | Switch.cs:175:17:175:48 | ...; | Switch.cs:175:42:175:46 | "def" | | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:47 | call to method WriteLine | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | call to method | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:4:5:9:5 | {...} | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:3:10:3:10 | exit M | @@ -3078,8 +3144,10 @@ dominance | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:13:8:27 | Type t = ... | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | exit VarDecls | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | call to method | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:5:18:5:19 | exit M1 | @@ -3127,8 +3195,10 @@ dominance | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:28:25:28 | access to local variable y | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:13:25:29 | return ...; | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | exit C | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | call to method | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | exit C (normal) | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:51:28:53 | {...} | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:41:28:47 | exit Dispose | @@ -3397,8 +3467,10 @@ dominance | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | @@ -3739,8 +3811,10 @@ dominance | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | call to method | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | @@ -3754,8 +3828,10 @@ dominance | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | {...} | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | exit DelegateCall | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | call to method | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:12:291:12 | exit M | @@ -3763,8 +3839,10 @@ dominance | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:41 | delegate call | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:52:296:54 | {...} | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | exit NegationInConstructor | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | call to method | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | cflow.cs:298:10:298:10 | enter M | cflow.cs:299:5:301:5 | {...} | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:298:10:298:10 | exit M | @@ -3782,8 +3860,10 @@ dominance | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:64 | ... != ... | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | {...} | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | exit LambdaGetter | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | call to method | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | exit get__getter (normal) | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:307:5:310:5 | {...} | @@ -3797,9 +3877,11 @@ dominance | cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | | cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:9:309:17 | return ...; | postDominance -| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to method | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | {...} | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | AccessorCalls.cs:5:23:5:25 | exit get_Item | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:30:5:30 | access to parameter i | @@ -4102,9 +4184,11 @@ postDominance | AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:73:75:73:75 | 0 | | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:80:73:80 | 1 | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:78 | access to local variable d | -| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to method | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | {...} | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | ArrayCreation.cs:3:11:3:12 | exit M1 | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | @@ -4134,9 +4218,11 @@ postDominance | ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:48:9:48 | 3 | | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:33:9:40 | { ..., ... } | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:45:9:45 | 2 | -| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | enter AssertTests | +| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to method | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | exit AssertTests | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | {...} | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | enter AssertTests | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | call to constructor Object | | Assert.cs:7:10:7:11 | exit M1 (normal) | Assert.cs:11:9:11:35 | call to method WriteLine | | Assert.cs:8:5:12:5 | {...} | Assert.cs:7:10:7:11 | enter M1 | @@ -4492,9 +4578,11 @@ postDominance | Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:25:140:26 | access to parameter b1 | | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:29:140:30 | access to parameter b2 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | -| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | enter Assignments | +| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to method | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | exit Assignments | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | {...} | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | enter Assignments | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | call to constructor Object | | Assignments.cs:3:10:3:10 | exit M | Assignments.cs:3:10:3:10 | exit M (normal) | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:14:9:14:35 | ... += ... | @@ -4537,9 +4625,11 @@ postDominance | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | enter + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:18:5:20:5 | {...} | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | enter BreakInTry | +| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to method | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | exit BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | {...} | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:3:10:3:11 | exit M1 | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:15:17:15:28 | ... == ... | @@ -4620,9 +4710,11 @@ postDominance | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:17:68:26 | if (...) ... | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:28:67:31 | null | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:23 | access to local variable arg | -| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to method | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | {...} | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | CompileTimeOperators.cs:5:9:5:15 | exit Default | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:7:9:7:28 | return ...; | @@ -4644,9 +4736,11 @@ postDominance | CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:21:5:23:5 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to method | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | {...} | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | enter M | @@ -4664,9 +4758,11 @@ postDominance | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:9:40:11 | End: | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:38 | ...; | -| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to method | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | {...} | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | ConditionalAccess.cs:3:12:3:13 | exit M1 | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:26 | access to parameter i | @@ -4743,9 +4839,11 @@ postDominance | ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:78 | ... + ... | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | enter Conditions | +| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to method | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | exit Conditions | Conditions.cs:1:7:1:16 | exit Conditions (normal) | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | {...} | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [false] !... | @@ -5040,9 +5138,11 @@ postDominance | Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:13:149:49 | ...; | | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:45:149:45 | access to local variable s | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:40:149:43 | "b = " | -| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | enter ExitMethods | +| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to method | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | exit ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | {...} | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | enter ExitMethods | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | call to constructor Object | | ExitMethods.cs:8:10:8:11 | exit M1 | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:11:9:11:15 | return ...; | @@ -5231,9 +5331,11 @@ postDominance | Extensions.cs:25:9:25:34 | ...; | Extensions.cs:24:9:24:45 | call to method ToBool | | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:9:25:14 | "true" | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | access to method Parse | -| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | enter Finally | +| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to method | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | exit Finally (normal) | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | {...} | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | enter Finally | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | call to constructor Object | | Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:15:13:15:40 | call to method WriteLine | | Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | enter M1 | @@ -5433,17 +5535,23 @@ postDominance | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:35:167:36 | "" | | Finally.cs:167:17:167:38 | ...; | Finally.cs:166:13:168:13 | {...} | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:38 | ...; | -| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | enter ExceptionA | +| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to method | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | {...} | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | enter ExceptionA | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | call to constructor Exception | -| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | enter ExceptionB | +| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to method | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | exit ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | {...} | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | enter ExceptionB | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | call to constructor Exception | -| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | enter ExceptionC | +| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to method | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | exit ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | {...} | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | enter ExceptionC | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | call to constructor Exception | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:21:186:22 | access to parameter b2 | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:190:21:190:22 | access to parameter b1 | @@ -5560,9 +5668,11 @@ postDominance | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:18 | ... + ... | | Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:13 | access to parameter i | -| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | enter Foreach | +| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to method | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | {...} | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | enter Foreach | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | call to constructor Object | | Foreach.cs:6:10:6:11 | exit M1 | Foreach.cs:6:10:6:11 | exit M1 (normal) | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | @@ -5614,39 +5724,34 @@ postDominance | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:37:5:40:5 | {...} | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:18:38:34 | (..., ...) | +| Initializers.cs:3:7:3:18 | exit | Initializers.cs:3:7:3:18 | exit (normal) | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:6:25:6:31 | ... = ... | | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | {...} | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | enter Initializers | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:8:5:8:16 | call to constructor Object | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:10:5:10:16 | call to constructor Object | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:13:5:17 | ... + ... | +| Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | enter | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:13:5:17 | ... + ... | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:17:5:17 | 1 | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:17:5:17 | 1 | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:27:6:31 | ... + ... | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:27:6:31 | ... + ... | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:5:9:5:17 | ... = ... | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:5:9:5:17 | ... = ... | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:9:6:9 | this access | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:9:6:9 | this access | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | enter Initializers | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to method | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:5:8:16 | exit Initializers | Initializers.cs:8:5:8:16 | exit Initializers (normal) | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:20:8:22 | {...} | -| Initializers.cs:8:20:8:22 | {...} | Initializers.cs:6:25:6:31 | ... = ... | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | enter Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | enter Initializers | +| Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to method | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:5:10:16 | exit Initializers | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:28:10:30 | {...} | -| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:6:25:6:31 | ... = ... | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | enter Initializers | +| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | call to constructor Object | | Initializers.cs:12:10:12:10 | exit M | Initializers.cs:12:10:12:10 | exit M (normal) | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:12:10:12:10 | enter M | @@ -5672,26 +5777,31 @@ postDominance | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:20 | ... = ... | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | enter H | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to method | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:20:11:20:23 | exit | Initializers.cs:20:11:20:23 | exit (normal) | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:23:23:23:27 | ... = ... | | Initializers.cs:20:11:20:23 | exit NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | {...} | -| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:23:23:23:27 | ... = ... | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | enter | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | this access | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:22:23:22:27 | ... = ... | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:27:23:27 | 1 | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | exit (normal) | +| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | enter | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub | Initializers.cs:31:9:31:11 | exit Sub (normal) | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:26:31:30 | ... = ... | -| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | enter Sub | -| Initializers.cs:31:24:31:33 | {...} | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | enter Sub | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | call to method | +| Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:31 | ...; | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:24:31:33 | {...} | @@ -5704,23 +5814,29 @@ postDominance | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:29:33:38 | {...} | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | this access | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | enter Sub | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to method | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:9:35:11 | exit Sub | Initializers.cs:35:9:35:11 | exit Sub (normal) | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:29:35:37 | ... = ... | -| Initializers.cs:35:27:35:40 | {...} | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | enter Sub | +| Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:38 | ...; | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:37:35:37 | access to parameter j | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:33 | access to parameter i | -| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | enter IndexInitializers | +| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to method | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | exit IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | {...} | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | enter IndexInitializers | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | call to constructor Object | -| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | enter Compound | +| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to method | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | exit Compound | Initializers.cs:41:11:41:18 | exit Compound (normal) | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | {...} | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | enter Compound | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | call to constructor Object | | Initializers.cs:51:10:51:13 | exit Test | Initializers.cs:51:10:51:13 | exit Test (normal) | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:57:13:65:9 | Compound compound = ... | @@ -5826,9 +5942,11 @@ postDominance | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:50 | access to parameter i | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:50:64:54 | ... + ... | -| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to method | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | {...} | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | LoopUnrolling.cs:7:10:7:11 | exit M1 | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:10:13:10:19 | return ...; | @@ -6021,6 +6139,8 @@ postDominance | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:98:9:100:9 | {...} | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:33 | ...; | +| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to method | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | {...} | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | {...} | @@ -6039,7 +6159,9 @@ postDominance | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:23:8:32 | throw ... | | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:29:8:32 | null | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:24:32:24:34 | ... = ... | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationB.cs:22:32:22:34 | ... = ... | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:20:13:20 | 0 | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | enter get_Item | @@ -6060,10 +6182,12 @@ postDominance | MultiImplementationA.cs:18:9:18:22 | exit M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | enter C2 | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to method | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationB.cs:18:24:18:34 | throw ...; | | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:24:20:28 | ... = ... | -| MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:24:32:24:34 | ... = ... | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | +| MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:29 | ...; | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:22:20:31 | {...} | @@ -6083,6 +6207,8 @@ postDominance | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:13:16:13:20 | ... = ... | | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:16:24:16 | access to property P | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | this access | +| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to method | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | {...} | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | {...} | @@ -6091,6 +6217,8 @@ postDominance | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:28:30:37 | throw ... | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | +| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to method | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | {...} | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | {...} | @@ -6104,6 +6232,8 @@ postDominance | MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:9:37:10 | enter M2 | | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:14:37:28 | {...} | +| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to method | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | @@ -6111,7 +6241,6 @@ postDominance | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | enter M | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:20:11:20 | 1 | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationB.cs:12:37:12:40 | null | @@ -6122,7 +6251,9 @@ postDominance | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:21:16:30 | throw ... | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:22:32:22:34 | ... = ... | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to method | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:24:19:24 | 1 | @@ -6134,12 +6265,18 @@ postDominance | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:11:16:11:20 | ... = ... | | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:16:22:16 | access to property P | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | this access | +| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to method | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to method | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | enter M1 | -| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to method | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | {...} | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | NullCoalescing.cs:3:9:3:10 | exit M1 | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:23:3:28 | ... ?? ... | @@ -6195,31 +6332,32 @@ postDominance | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:19:17:19 | access to parameter i | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:9:17:25 | ...; | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | enter Partial | +| PartialImplementationA.cs:1:15:1:21 | exit | PartialImplementationA.cs:1:15:1:21 | exit (normal) | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationB.cs:5:32:5:34 | ... = ... | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to method | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | this access | | PartialImplementationA.cs:3:12:3:18 | exit Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:27:3:29 | {...} | -| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | enter Partial | +| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | enter | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | enter Partial | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to method | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | this access | | PartialImplementationB.cs:4:12:4:18 | exit Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:22:4:24 | {...} | -| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | enter Partial | +| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | access to property P | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | access to property P | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | this access | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | this access | -| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | enter Patterns | +| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to method | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | exit Patterns | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | {...} | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | enter Patterns | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | call to constructor Object | | Patterns.cs:5:10:5:11 | exit M1 | Patterns.cs:5:10:5:11 | exit M1 (normal) | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:40:17:40:17 | access to local variable o | @@ -6404,9 +6542,11 @@ postDominance | Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:97:31:97:37 | "not C" | | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:96:9:98:9 | {...} | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:39 | ...; | -| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | enter PostDominance | +| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to method | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | exit PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | {...} | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | enter PostDominance | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | call to constructor Object | | PostDominance.cs:5:10:5:11 | exit M1 | PostDominance.cs:5:10:5:11 | exit M1 (normal) | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:7:9:7:28 | call to method WriteLine | @@ -6437,9 +6577,11 @@ postDominance | PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:21:27:21:27 | access to parameter s | | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:19:13:19:21 | [false] ... is ... | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:29 | ...; | -| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | enter Qualifiers | +| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to method | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | exit Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | {...} | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | enter Qualifiers | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | call to constructor Object | | Qualifiers.cs:7:16:7:21 | exit Method | Qualifiers.cs:7:16:7:21 | exit Method (normal) | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:28:7:31 | null | @@ -6504,9 +6646,11 @@ postDominance | Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:29:9:29:46 | ... = ... | | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:9:30:47 | ...; | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | -| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | enter Switch | +| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to method | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | exit Switch | Switch.cs:3:7:3:12 | exit Switch (normal) | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | {...} | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | enter Switch | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | call to constructor Object | | Switch.cs:5:10:5:11 | exit M1 | Switch.cs:5:10:5:11 | exit M1 (normal) | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:7:17:7:17 | access to parameter o | @@ -6756,9 +6900,11 @@ postDominance | Switch.cs:175:17:175:48 | ...; | Switch.cs:174:13:174:20 | default: | | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:48 | ...; | | Switch.cs:176:17:176:22 | break; | Switch.cs:175:17:175:47 | call to method WriteLine | -| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to method | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | {...} | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | TypeAccesses.cs:3:10:3:10 | exit M | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:8:13:8:27 | Type t = ... | @@ -6779,9 +6925,11 @@ postDominance | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:25:7:25 | ; | | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:17:8:27 | typeof(...) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:9:8:28 | ... ...; | -| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | enter VarDecls | +| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to method | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | exit VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | {...} | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | enter VarDecls | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | call to constructor Object | | VarDecls.cs:5:18:5:19 | exit M1 | VarDecls.cs:5:18:5:19 | exit M1 (normal) | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:9:13:9:29 | return ...; | @@ -6828,9 +6976,11 @@ postDominance | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:24:31:24:41 | C y = ... | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:24:25:24 | access to local variable x | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:28:25:28 | access to local variable y | -| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | enter C | +| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to method | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | exit C | VarDecls.cs:28:11:28:11 | exit C (normal) | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | {...} | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | enter C | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | call to constructor Object | | VarDecls.cs:28:41:28:47 | exit Dispose | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:51:28:53 | {...} | @@ -7087,9 +7237,11 @@ postDominance | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:66:127:83 | {...} | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | this access | -| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | enter ControlFlow | +| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to method | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | this access | | cflow.cs:129:5:129:15 | exit ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:131:9:131:17 | ... = ... | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | enter ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | call to constructor Object | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:18 | ...; | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:17:131:17 | access to parameter s | @@ -7421,9 +7573,11 @@ postDominance | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:13:275:42 | ...; | cflow.cs:274:9:276:9 | {...} | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:42 | ...; | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:31:282:33 | {...} | -| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | enter ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | enter ControlFlowSub | +| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | call to method | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | cflow.cs:284:5:284:18 | exit ControlFlowSub | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | cflow.cs:284:39:284:41 | {...} | @@ -7435,18 +7589,22 @@ postDominance | cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:5:286:18 | enter ControlFlowSub | | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | -| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | enter DelegateCall | +| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to method | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | exit DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | {...} | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | enter DelegateCall | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | call to constructor Object | | cflow.cs:291:12:291:12 | exit M | cflow.cs:291:12:291:12 | exit M (normal) | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:38:291:41 | delegate call | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:12:291:12 | enter M | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:40:291:40 | 0 | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:38 | access to parameter f | -| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | enter NegationInConstructor | +| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to method | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:5:296:25 | exit NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:52:296:54 | {...} | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | enter NegationInConstructor | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | call to constructor Object | | cflow.cs:298:10:298:10 | exit M | cflow.cs:298:10:298:10 | exit M (normal) | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | @@ -7463,9 +7621,11 @@ postDominance | cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:61:300:64 | null | | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:56 | access to parameter s | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:44:300:64 | ... && ... | -| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | enter LambdaGetter | +| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to method | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | exit LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | {...} | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | enter LambdaGetter | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | call to constructor Object | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | enter get__getter | | cflow.cs:306:60:310:5 | exit (...) => ... | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | @@ -9459,12 +9619,15 @@ blockDominance | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | enter | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | enter Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | enter Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | enter Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | enter M | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | enter H | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | enter | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | enter | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | enter Sub | @@ -9619,12 +9782,12 @@ blockDominance | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | @@ -9649,6 +9812,12 @@ blockDominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:29:8:32 | null | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | @@ -9674,12 +9843,12 @@ blockDominance | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | @@ -9698,19 +9867,19 @@ blockDominance | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationB.cs:21:56:21:59 | null | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | @@ -9718,22 +9887,23 @@ blockDominance | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | enter M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | enter M1 | @@ -9820,6 +9990,7 @@ blockDominance | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | enter | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | enter Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | enter Patterns | @@ -13132,12 +13303,15 @@ postBlockDominance | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | enter | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | enter Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | enter Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | enter Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | enter M | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | enter H | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | enter | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | enter | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | enter Sub | @@ -13282,12 +13456,12 @@ postBlockDominance | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | -| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | enter C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | -| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | @@ -13300,6 +13474,12 @@ postBlockDominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | enter M | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:29:8:32 | null | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | enter get_Item | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | @@ -13321,10 +13501,10 @@ postBlockDominance | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | @@ -13339,24 +13519,24 @@ postBlockDominance | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | -| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | enter C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | -| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | -| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | enter C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | -| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | enter M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | @@ -13365,17 +13545,18 @@ postBlockDominance | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | enter M | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | @@ -13465,6 +13646,7 @@ postBlockDominance | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:15:31:15:31 | 0 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | enter | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | enter Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | enter Patterns | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 4a4631e454d..14dcdb56b26 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -1,8 +1,10 @@ nodeEnclosing | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | get_Item | | AccessorCalls.cs:5:23:5:25 | exit get_Item | AccessorCalls.cs:5:23:5:25 | get_Item | @@ -319,9 +321,11 @@ nodeEnclosing | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:66:10:66:11 | M9 | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | M1 | | ArrayCreation.cs:3:11:3:12 | exit M1 | ArrayCreation.cs:3:11:3:12 | M1 | @@ -356,9 +360,11 @@ nodeEnclosing | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:12:9:13 | M4 | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | exit AssertTests | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | M1 | | Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | M1 | @@ -777,9 +783,11 @@ nodeEnclosing | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:138:10:138:12 | M13 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | M13 | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | exit Assignments | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M | | Assignments.cs:3:10:3:10 | exit M | Assignments.cs:3:10:3:10 | M | @@ -826,9 +834,11 @@ nodeEnclosing | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:17:40:17:40 | + | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | exit BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:3:10:3:11 | exit M1 | BreakInTry.cs:3:10:3:11 | M1 | @@ -917,9 +927,11 @@ nodeEnclosing | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | Default | | CompileTimeOperators.cs:5:9:5:15 | exit Default | CompileTimeOperators.cs:5:9:5:15 | Default | @@ -946,9 +958,11 @@ nodeEnclosing | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | M | @@ -970,9 +984,11 @@ nodeEnclosing | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:28:10:28:10 | M | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:12:3:13 | exit M1 | ConditionalAccess.cs:3:12:3:13 | M1 | @@ -1064,9 +1080,11 @@ nodeEnclosing | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | exit Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | @@ -1384,9 +1402,11 @@ nodeEnclosing | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:143:10:143:12 | M11 | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | exit ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:8:10:8:11 | exit M1 | ExitMethods.cs:8:10:8:11 | M1 | @@ -1616,9 +1636,11 @@ nodeEnclosing | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | Finally | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | M1 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | M1 | @@ -1852,19 +1874,25 @@ nodeEnclosing | Finally.cs:167:17:167:38 | ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:35:167:36 | "" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | exit ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | exit ExceptionC | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | M9 | @@ -1997,9 +2025,11 @@ nodeEnclosing | Finally.cs:272:13:272:19 | ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:18:272:18 | 3 | Finally.cs:263:10:263:12 | M13 | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:6:10:6:11 | exit M1 | Foreach.cs:6:10:6:11 | M1 | @@ -2058,41 +2088,37 @@ nodeEnclosing | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:36:10:36:11 | M6 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:3:7:3:18 | exit | Initializers.cs:3:7:3:18 | | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | | | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | Initializers | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:9:6:9 | this access | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:3:7:3:18 | | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | exit Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | exit Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | M | | Initializers.cs:12:10:12:10 | exit M | Initializers.cs:12:10:12:10 | M | @@ -2117,25 +2143,32 @@ nodeEnclosing | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:12:10:12:10 | M | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | exit | Initializers.cs:20:11:20:23 | | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | exit NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:35:9:35:11 | Sub | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:9:35:11 | Sub | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:20:11:20:23 | | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | | +| Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | | +| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:26:11:26:13 | | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | exit Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:9:31:11 | Sub | @@ -2152,9 +2185,11 @@ nodeEnclosing | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | exit Sub | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | Sub | @@ -2163,14 +2198,18 @@ nodeEnclosing | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | exit IndexInitializers | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | exit Compound | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:51:10:51:13 | exit Test | Initializers.cs:51:10:51:13 | Test | @@ -2278,9 +2317,11 @@ nodeEnclosing | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:51:10:51:13 | Test | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:7:10:7:11 | exit M1 | LoopUnrolling.cs:7:10:7:11 | M1 | @@ -2489,9 +2530,11 @@ nodeEnclosing | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:94:10:94:12 | M11 | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | @@ -2519,9 +2562,12 @@ nodeEnclosing | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | M | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | @@ -2548,10 +2594,12 @@ nodeEnclosing | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | M2 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | M2 | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2573,14 +2621,16 @@ nodeEnclosing | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | @@ -2588,9 +2638,11 @@ nodeEnclosing | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | M1 | @@ -2606,6 +2658,8 @@ nodeEnclosing | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | M2 | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:9:37:10 | M2 | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | get_P2 | @@ -2613,9 +2667,9 @@ nodeEnclosing | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | M | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | @@ -2630,6 +2684,8 @@ nodeEnclosing | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | M2 | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:9:16:31 | M2 | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2641,19 +2697,25 @@ nodeEnclosing | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | M1 | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | M1 | | NullCoalescing.cs:3:9:3:10 | exit M1 | NullCoalescing.cs:3:9:3:10 | M1 | @@ -2722,34 +2784,36 @@ nodeEnclosing | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:1:15:1:21 | exit | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | exit Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | exit Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationA.cs:1:15:1:21 | | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | exit Patterns | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:5:10:5:11 | exit M1 | Patterns.cs:5:10:5:11 | M1 | @@ -2966,9 +3030,11 @@ nodeEnclosing | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:93:17:93:19 | M10 | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | exit PostDominance | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:5:10:5:11 | exit M1 | PostDominance.cs:5:10:5:11 | M1 | @@ -3007,9 +3073,11 @@ nodeEnclosing | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:17:10:17:11 | M3 | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | exit Qualifiers | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | Method | | Qualifiers.cs:7:16:7:21 | exit Method | Qualifiers.cs:7:16:7:21 | Method | @@ -3078,9 +3146,11 @@ nodeEnclosing | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:10:10:10:10 | M | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | exit Switch | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | Switch | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | M1 | | Switch.cs:5:10:5:11 | exit M1 | Switch.cs:5:10:5:11 | M1 | @@ -3385,9 +3455,11 @@ nodeEnclosing | Switch.cs:175:42:175:46 | "def" | Switch.cs:163:10:163:12 | M16 | | Switch.cs:176:17:176:22 | break; | Switch.cs:163:10:163:12 | M16 | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:3:10:3:10 | exit M | TypeAccesses.cs:3:10:3:10 | M | @@ -3411,9 +3483,11 @@ nodeEnclosing | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:3:10:3:10 | M | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | exit VarDecls | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:5:18:5:19 | exit M1 | VarDecls.cs:5:18:5:19 | M1 | @@ -3465,9 +3539,11 @@ nodeEnclosing | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | exit C | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | Dispose | | VarDecls.cs:28:41:28:47 | exit Dispose | VarDecls.cs:28:41:28:47 | Dispose | @@ -3753,9 +3829,11 @@ nodeEnclosing | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | exit ControlFlow | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:13 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | ControlFlow | @@ -4121,9 +4199,11 @@ nodeEnclosing | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:13:275:42 | ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | @@ -4139,9 +4219,11 @@ nodeEnclosing | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | exit DelegateCall | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | M | | cflow.cs:291:12:291:12 | exit M | cflow.cs:291:12:291:12 | M | @@ -4150,9 +4232,11 @@ nodeEnclosing | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | M | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:12:291:12 | M | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | exit NegationInConstructor | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:298:10:298:10 | enter M | cflow.cs:298:10:298:10 | M | | cflow.cs:298:10:298:10 | exit M | cflow.cs:298:10:298:10 | M | @@ -4172,9 +4256,11 @@ nodeEnclosing | cflow.cs:300:61:300:64 | null | cflow.cs:298:10:298:10 | M | | cflow.cs:300:70:300:71 | "" | cflow.cs:298:10:298:10 | M | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | exit LambdaGetter | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | get__getter | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | @@ -4731,11 +4817,14 @@ blockEnclosing | Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:36:10:36:11 | M6 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | Sub | @@ -4800,9 +4889,9 @@ blockEnclosing | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | M11 | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | get_P1 | @@ -4815,6 +4904,9 @@ blockEnclosing | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | @@ -4828,9 +4920,9 @@ blockEnclosing | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:12:21:13 | C2 | @@ -4840,33 +4932,34 @@ blockEnclosing | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | set_Item | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | M1 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | M1 | @@ -4906,6 +4999,7 @@ blockEnclosing | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | Patterns | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index ea7ade106ea..da8fe4664f5 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -1,4 +1,6 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | this access | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | {...} | | AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:37:5:39 | {...} | @@ -290,6 +292,8 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:78 | access to local variable d | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:80:73:80 | 1 | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | this access | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | {...} | | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:27:3:27 | 0 | @@ -312,6 +316,8 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:45:9:45 | 2 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:48:9:48 | 3 | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | this access | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | {...} | | Assert.cs:8:5:12:5 | {...} | Assert.cs:8:5:12:5 | {...} | | Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:9:9:33 | ... ...; | @@ -675,6 +681,8 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:33:140:34 | access to parameter b3 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | this access | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | {...} | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:9:5:18 | ... ...; | @@ -715,6 +723,8 @@ | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | {...} | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:5:9:17:9 | try {...} ... | @@ -791,6 +801,8 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:28:67:31 | null | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | this access | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | {...} | | CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:7:16:7:27 | default(...) | @@ -806,6 +818,8 @@ | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | this access | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | {...} | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | @@ -826,6 +840,8 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:38 | ...; | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:32:40:36 | "End" | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | this access | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | {...} | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:26 | access to parameter i | @@ -886,6 +902,8 @@ | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | {...} | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:9:6:16 | if (...) ... | @@ -1167,6 +1185,8 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:45:149:45 | access to local variable s | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:45:149:45 | access to local variable s | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | this access | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | {...} | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:20:10:23 | true | @@ -1336,6 +1356,8 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | access to method Parse | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | access to method Parse | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | this access | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | {...} | | Finally.cs:8:5:17:5 | {...} | Finally.cs:8:5:17:5 | {...} | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:9:9:16:9 | try {...} ... | @@ -1547,10 +1569,16 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:38 | ...; | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:35:167:36 | "" | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | this access | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | {...} | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | this access | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | {...} | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | this access | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | {...} | | Finally.cs:177:5:193:5 | {...} | Finally.cs:177:5:193:5 | {...} | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:178:9:192:9 | try {...} ... | @@ -1667,6 +1695,8 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:19 | ...; | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:18:272:18 | 3 | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | this access | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | {...} | | Foreach.cs:7:5:10:5 | {...} | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | access to parameter args | @@ -1721,8 +1751,12 @@ | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:27:6:27 | access to field H | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | this access | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:20:8:22 | {...} | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | this access | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:28:10:30 | {...} | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:13:5:16:5 | {...} | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:9:14:54 | ... ...; | @@ -1745,6 +1779,8 @@ | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | this access | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | this access | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | this access | @@ -1758,6 +1794,8 @@ | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | this access | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | this access | @@ -1773,6 +1811,8 @@ | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:36 | ...; | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | this access | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | this access | @@ -1782,8 +1822,12 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:37:35:37 | access to parameter j | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | this access | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | {...} | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | this access | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | {...} | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:52:5:66:5 | {...} | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:9:54:96 | ... ...; | @@ -1893,6 +1937,8 @@ | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:59:64:61 | "1" | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | this access | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | {...} | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:9:10:19 | if (...) ... | @@ -2067,6 +2113,8 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:33 | ...; | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | {...} | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | @@ -2092,6 +2140,8 @@ | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:18:9:18:22 | M2(...) | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | this access | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | this access | @@ -2108,10 +2158,14 @@ | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:34:24:34 | 0 | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | {...} | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | {...} | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:22:36:25 | null | @@ -2120,6 +2174,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | {...} | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:25:4:37 | {...} | @@ -2143,6 +2199,8 @@ | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:30:18:33 | null | @@ -2159,11 +2217,17 @@ | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:34:22:34 | 1 | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | {...} | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | {...} | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | this access | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | {...} | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:23 | access to parameter i | @@ -2214,18 +2278,24 @@ | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:19:17:19 | access to parameter i | | NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:24:17:24 | 1 | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | this access | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | this access | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:27:3:29 | {...} | | PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | this access | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | this access | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:22:4:24 | {...} | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:34:5:34 | 0 | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | this access | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | {...} | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:9:7:24 | ... ...; | @@ -2398,6 +2468,8 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:39 | ...; | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:31:97:37 | "not C" | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | this access | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | {...} | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:27:7:27 | access to parameter s | @@ -2425,6 +2497,8 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:29 | ...; | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:27:21:27 | access to parameter s | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | this access | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | {...} | | Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:41:8:44 | null | @@ -2484,6 +2558,8 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | this access | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | {...} | | Switch.cs:6:5:8:5 | {...} | Switch.cs:6:5:8:5 | {...} | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:9:7:22 | switch (...) {...} | @@ -2734,6 +2810,8 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:42:175:46 | "def" | | Switch.cs:176:17:176:22 | break; | Switch.cs:176:17:176:22 | break; | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | this access | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | {...} | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:4:5:9:5 | {...} | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:9:5:26 | ... ...; | @@ -2753,6 +2831,8 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:17:8:27 | typeof(...) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:17:8:27 | typeof(...) | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | this access | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | {...} | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | @@ -2795,6 +2875,8 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | this access | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | {...} | | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:51:28:53 | {...} | | cflow.cs:6:5:35:5 | {...} | cflow.cs:6:5:35:5 | {...} | @@ -3049,6 +3131,8 @@ | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:81 | ...; | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | this access | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | this access | | cflow.cs:130:5:132:5 | {...} | cflow.cs:130:5:132:5 | {...} | | cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | this access | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | this access | @@ -3372,6 +3456,8 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:42 | ...; | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | this access | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:31:282:33 | {...} | | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | @@ -3381,11 +3467,15 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:48:286:50 | {...} | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | this access | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | {...} | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:40:291:40 | 0 | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | this access | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:52:296:54 | {...} | | cflow.cs:299:5:301:5 | {...} | cflow.cs:299:5:301:5 | {...} | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:38:300:38 | 0 | @@ -3401,6 +3491,8 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:61:300:64 | null | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:70:300:71 | "" | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | this access | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | {...} | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:307:5:310:5 | {...} | cflow.cs:307:5:310:5 | {...} | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index 11880f4f825..e3d13701cff 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -1,4 +1,6 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | normal | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to method | normal | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | this access | normal | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | {...} | normal | | AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:30:5:30 | access to parameter i | normal | | AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:37:5:39 | {...} | normal | @@ -290,6 +292,8 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:81 | dynamic access to element | normal | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:80:73:80 | 1 | normal | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | normal | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to method | normal | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | this access | normal | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | {...} | normal | | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | normal | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:27:3:27 | 0 | normal | @@ -312,6 +316,8 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:45:9:45 | 2 | normal | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:48:9:48 | 3 | normal | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | normal | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to method | normal | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | this access | normal | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | {...} | normal | | Assert.cs:8:5:12:5 | {...} | Assert.cs:10:9:10:31 | call to method Assert | exit | | Assert.cs:8:5:12:5 | {...} | Assert.cs:11:9:11:35 | call to method WriteLine | normal | @@ -774,6 +780,8 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:33:140:34 | access to parameter b3 | normal | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | return | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | normal | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to method | normal | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | this access | normal | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | {...} | normal | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:14:9:14:35 | ... += ... | normal | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:13:5:17 | Int32 x = ... | normal | @@ -814,6 +822,8 @@ | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:9:19:17 | return ...; | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | normal | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | normal | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to method | normal | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | normal | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | {...} | normal | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:15:17:15:28 | ... == ... | false | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:16:17:16:17 | ; | normal | @@ -941,6 +951,8 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:28:67:31 | null | normal | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | break | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | normal | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to method | normal | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | this access | normal | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | {...} | normal | | CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:9:7:28 | return ...; | return | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:7:9:7:28 | return ...; | return | @@ -956,6 +968,8 @@ | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | normal | | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | normal | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | normal | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to method | normal | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | this access | normal | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | {...} | normal | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | goto(End) [normal] (0) | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | throw(Exception) [normal] (0) | @@ -984,6 +998,8 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | normal | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:32:40:36 | "End" | normal | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | normal | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to method | normal | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | this access | normal | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | {...} | normal | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | non-null | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | null | @@ -1070,6 +1086,8 @@ | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | normal | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | normal | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | normal | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to method | normal | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | normal | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | {...} | normal | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:7:13:7:16 | !... | false | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:8:13:8:15 | ...-- | normal | @@ -1427,6 +1445,8 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:44:149:46 | {...} | normal | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:45:149:45 | access to local variable s | normal | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | normal | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to method | normal | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | this access | normal | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | {...} | normal | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:11:9:11:15 | return ...; | return | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | normal | @@ -1629,6 +1649,8 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | access to method Parse | normal | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | delegate creation of type Func | normal | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | normal | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to method | normal | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | this access | normal | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | {...} | normal | | Finally.cs:8:5:17:5 | {...} | Finally.cs:15:13:15:40 | call to method WriteLine | normal | | Finally.cs:8:5:17:5 | {...} | Finally.cs:15:13:15:40 | call to method WriteLine | throw(Exception) [normal] (0) | @@ -2018,10 +2040,16 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:37 | call to method WriteLine | normal | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:35:167:36 | "" | normal | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | normal | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to method | normal | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | this access | normal | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | {...} | normal | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | normal | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to method | normal | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | this access | normal | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | {...} | normal | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | normal | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to method | normal | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | this access | normal | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | {...} | normal | | Finally.cs:177:5:193:5 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | false | | Finally.cs:177:5:193:5 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | throw(Exception) [false] (0) | @@ -2267,6 +2295,8 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:18 | ... = ... | normal | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:18:272:18 | 3 | normal | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | normal | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to method | normal | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | this access | normal | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | {...} | normal | | Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | empty | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | empty | @@ -2324,8 +2354,12 @@ | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:27:6:31 | ... + ... | normal | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:31:6:31 | 2 | normal | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | normal | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to method | normal | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | this access | normal | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:20:8:22 | {...} | normal | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | normal | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to method | normal | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | this access | normal | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:28:10:30 | {...} | normal | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | normal | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:13:14:53 | Initializers i = ... | normal | @@ -2348,6 +2382,8 @@ | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:20 | ... = ... | normal | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:20:18:20 | 1 | normal | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | normal | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to method | normal | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | this access | normal | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | {...} | normal | | Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | this access | normal | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | this access | normal | @@ -2361,6 +2397,8 @@ | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | this access | normal | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:17 | ... = ... | normal | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:17:28:17 | 2 | normal | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | call to method | normal | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | this access | normal | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | normal | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:30 | ... = ... | normal | | Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | this access | normal | @@ -2376,6 +2414,8 @@ | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:35 | ... = ... | normal | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:35:33:35 | access to parameter i | normal | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | normal | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to method | normal | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | this access | normal | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:37 | ... = ... | normal | | Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | this access | normal | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | this access | normal | @@ -2385,8 +2425,12 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:37 | ... + ... | normal | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:37:35:37 | access to parameter j | normal | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | normal | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to method | normal | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | this access | normal | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | {...} | normal | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | normal | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to method | normal | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | this access | normal | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | {...} | normal | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:57:13:65:9 | Compound compound = ... | normal | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:13:54:95 | Dictionary dict = ... | normal | @@ -2496,6 +2540,8 @@ | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:54:64:54 | 0 | normal | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:59:64:61 | "1" | normal | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | normal | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to method | normal | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | this access | normal | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | {...} | normal | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:10:13:10:19 | return ...; | return | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | empty | @@ -2684,6 +2730,8 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | normal | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:31:99:31 | access to local variable x | normal | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | normal | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to method | normal | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | normal | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | {...} | normal | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | throw ... | throw(NullReferenceException) | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | normal | @@ -2709,6 +2757,8 @@ | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:18:9:18:22 | M2(...) | normal | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:21:18:21 | 0 | normal | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | normal | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to method | normal | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | normal | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:28 | ... = ... | normal | | MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | this access | normal | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | this access | normal | @@ -2725,10 +2775,14 @@ | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:32:24:34 | ... = ... | normal | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:34:24:34 | 0 | normal | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | normal | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to method | normal | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | normal | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | {...} | normal | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:28:30:37 | throw ... | throw(NullReferenceException) | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:34:30:37 | null | normal | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | normal | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to method | normal | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | normal | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | {...} | normal | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:16:36:26 | throw ...; | throw(NullReferenceException) | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:16:36:26 | throw ...; | throw(NullReferenceException) | @@ -2737,6 +2791,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:16:37:26 | throw ...; | throw(NullReferenceException) | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:22:37:25 | null | normal | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | normal | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to method | normal | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | normal | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | {...} | normal | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | normal | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:27:4:35 | return ...; | return | @@ -2760,6 +2816,8 @@ | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:21:16:30 | throw ... | throw(NullReferenceException) | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:27:16:30 | null | normal | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | normal | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to method | normal | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | normal | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:24:18:34 | throw ...; | throw(NullReferenceException) | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:24:18:34 | throw ...; | throw(NullReferenceException) | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:30:18:33 | null | normal | @@ -2776,11 +2834,17 @@ | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:32:22:34 | ... = ... | normal | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:34:22:34 | 1 | normal | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | normal | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to method | normal | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | normal | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | {...} | normal | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | normal | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to method | normal | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | normal | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | {...} | normal | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | normal | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | normal | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to method | normal | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | this access | normal | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | {...} | normal | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | non-null | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | null | @@ -2847,18 +2911,24 @@ | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:19:17:19 | access to parameter i | normal | | NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:24:17:24 | 1 | normal | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | normal | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to method | normal | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | this access | normal | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:27:3:29 | {...} | normal | | PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | this access | normal | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | this access | normal | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:20 | ... = ... | normal | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:20:3:20 | 0 | normal | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | normal | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to method | normal | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | this access | normal | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:22:4:24 | {...} | normal | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | this access | normal | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | this access | normal | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:32:5:34 | ... = ... | normal | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:34:5:34 | 0 | normal | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | normal | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to method | normal | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | this access | normal | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | {...} | normal | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:40:17:40:17 | access to local variable o | normal | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:16:7:23 | Object o = ... | normal | @@ -3091,6 +3161,8 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:31:97:37 | "not C" | normal | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | normal | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to method | normal | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | this access | normal | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | {...} | normal | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:7:9:7:28 | call to method WriteLine | normal | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:9:7:28 | call to method WriteLine | normal | @@ -3126,6 +3198,8 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:28 | call to method WriteLine | normal | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:27:21:27 | access to parameter s | normal | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | normal | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to method | normal | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | this access | normal | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | {...} | normal | | Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:28:7:31 | null | normal | | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:41:8:44 | null | normal | @@ -3185,6 +3259,8 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | normal | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:46 | call to method Method | normal | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | normal | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to method | normal | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | this access | normal | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | {...} | normal | | Switch.cs:6:5:8:5 | {...} | Switch.cs:7:17:7:17 | access to parameter o | normal | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:17:7:17 | access to parameter o | normal | @@ -3579,6 +3655,8 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:42:175:46 | "def" | normal | | Switch.cs:176:17:176:22 | break; | Switch.cs:176:17:176:22 | break; | break | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | normal | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to method | normal | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | this access | normal | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | {...} | normal | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:8:13:8:27 | Type t = ... | normal | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:13:5:25 | String s = ... | normal | @@ -3601,6 +3679,8 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:13:8:27 | Type t = ... | normal | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:17:8:27 | typeof(...) | normal | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | normal | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to method | normal | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | this access | normal | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | {...} | normal | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:9:13:9:29 | return ...; | return | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:9:13:9:29 | return ...; | return | @@ -3644,6 +3724,8 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | normal | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | normal | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | normal | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to method | normal | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | this access | normal | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | {...} | normal | | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:51:28:53 | {...} | normal | | cflow.cs:6:5:35:5 | {...} | cflow.cs:24:25:24:31 | ... <= ... | false | @@ -3959,6 +4041,8 @@ | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:80 | ... = ... | normal | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:76:127:80 | access to parameter value | normal | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | normal | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to method | normal | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | this access | normal | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:17 | ... = ... | normal | | cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | this access | normal | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | this access | normal | @@ -4352,6 +4436,8 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:13:275:41 | call to method WriteLine | normal | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:41 | call to method WriteLine | normal | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:31:275:40 | "not dead" | normal | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | call to method | normal | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | this access | normal | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | normal | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:31:282:33 | {...} | normal | | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | normal | @@ -4361,11 +4447,15 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:45 | call to method ToString | normal | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:48:286:50 | {...} | normal | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | normal | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to method | normal | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | this access | normal | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | {...} | normal | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:38:291:38 | access to parameter f | normal | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:41 | delegate call | normal | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:40:291:40 | 0 | normal | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | normal | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to method | normal | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | this access | normal | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:52:296:54 | {...} | normal | | cflow.cs:299:5:301:5 | {...} | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | normal | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | normal | @@ -4383,6 +4473,8 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:61:300:64 | null | normal | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:70:300:71 | "" | normal | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | normal | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to method | normal | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | this access | normal | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | {...} | normal | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | normal | | cflow.cs:307:5:310:5 | {...} | cflow.cs:309:9:309:17 | return ...; | return | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 63855522ba6..b764e2fb2a5 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -1,6 +1,8 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | | -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | call to method | | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:23:5:25 | exit get_Item | | @@ -304,8 +306,10 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:81 | dynamic access to element | | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | call to method | | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:27:3:27 | 0 | | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:11:3:12 | exit M1 | | @@ -336,8 +340,10 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:48:9:48 | 3 | | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:43:9:50 | { ..., ... } | | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | {...} | | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to constructor Object | | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | this access | | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | exit AssertTests | | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | call to method | | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:8:5:12:5 | {...} | | | Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 | | @@ -795,8 +801,10 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | return | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | {...} | | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to constructor Object | | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | this access | | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | exit Assignments | | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | call to method | | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:4:5:15:5 | {...} | | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:3:10:3:10 | exit M | | @@ -840,8 +848,10 @@ | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | call to constructor Object | | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | +| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | call to method | | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:4:5:18:5 | {...} | | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | | @@ -942,8 +952,10 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | break, return | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | call to method | | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:5:9:5:15 | exit Default | | @@ -966,8 +978,10 @@ | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | return | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:9:22:25 | return ...; | | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | call to method | | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | | | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | @@ -990,8 +1004,10 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | call to method | | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | | @@ -1085,8 +1101,10 @@ | ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | | | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | call to constructor Object | | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | +| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | call to method | | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | exit Conditions (normal) | | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | | @@ -1427,8 +1445,10 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:44:149:46 | {...} | | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | exit ExitMethods | | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | call to method | | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:9:5:12:5 | {...} | | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:8:10:8:11 | exit M1 | | @@ -1639,8 +1659,10 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | delegate creation of type Func | | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | {...} | | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | call to constructor Object | | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to constructor Object | | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | this access | | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | exit Finally | | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | call to method | | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | exit Finally (normal) | | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:8:5:17:5 | {...} | | | Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 | | @@ -1906,16 +1928,22 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to constructor Exception | | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | this access | | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | call to method | | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | {...} | | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to constructor Exception | | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | this access | | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | exit ExceptionB | | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | call to method | | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | {...} | | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to constructor Exception | | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | this access | | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | exit ExceptionC | | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | call to method | | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:177:5:193:5 | {...} | | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 | | @@ -2067,8 +2095,10 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to constructor Object | | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | this access | | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | call to method | | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:7:5:10:5 | {...} | | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | | @@ -2129,38 +2159,33 @@ | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:18:38:34 | (..., ...) | | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:5:9:5:9 | this access | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | {...} | | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:20:8:22 | {...} | | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:28:10:30 | {...} | | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:20:8:22 | {...} | | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to constructor Object | | +| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | this access | | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | exit Initializers | | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | call to method | | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | exit Initializers (normal) | | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:28:10:30 | {...} | | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to constructor Object | | +| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | this access | | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | exit Initializers | | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | call to method | | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:13:5:16:5 | {...} | | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:12:10:12:10 | exit M | | @@ -2187,25 +2212,30 @@ | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:22:23:22:23 | this access | | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | | +| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | this access | | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | exit | | | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | {...} | | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | +| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:24:31:33 | {...} | | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:27:35:40 | {...} | | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | +| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | -| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | @@ -2219,9 +2249,11 @@ | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | @@ -2230,12 +2262,16 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | | +| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | this access | | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | exit IndexInitializers | | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | call to method | | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | {...} | | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | call to constructor Object | | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to constructor Object | | +| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | this access | | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | exit Compound | | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | call to method | | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | exit Compound (normal) | | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:52:5:66:5 | {...} | | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:51:10:51:13 | exit Test | | @@ -2342,8 +2378,10 @@ | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | +| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | call to method | | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | | @@ -2558,9 +2596,11 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | call to method | | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | @@ -2588,6 +2628,9 @@ | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | exit M | | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | | @@ -2615,11 +2658,13 @@ | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:21:18:21 | 0 | | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | exit M2 | | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:13:16:13:16 | this access | | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationA.cs:20:12:20:13 | exit C2 | | | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | exit C2 | | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | @@ -2643,21 +2688,25 @@ | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | | | MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:32:24:34 | ... = ... | | | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:34:24:34 | 0 | | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:22:20:31 | {...} | | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | access to property P | | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | call to method | | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | call to method | | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | @@ -2672,6 +2721,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | call to method | | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:34:4:34 | 1 | | @@ -2694,7 +2745,9 @@ | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | call to method | | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | | @@ -2708,16 +2761,22 @@ | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | | MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:18:22:18:36 | {...} | | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | access to property P | | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | call to method | | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | call to method | | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | call to method | | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:9:3:10 | exit M1 | | @@ -2792,31 +2851,32 @@ | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | non-null | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationB.cs:3:16:3:16 | this access | | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | exit | | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | | +| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | this access | | | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | +| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | call to method | | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:27:3:29 | {...} | | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:22:4:24 | {...} | | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | exit (normal) | | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | {...} | | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to constructor Object | | +| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | this access | | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | exit Patterns | | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | call to method | | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:6:5:43:5 | {...} | | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:5:10:5:11 | exit M1 | | @@ -3045,8 +3105,10 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:38 | call to method WriteLine | | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to constructor Object | | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | this access | | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | exit PostDominance | | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | call to method | | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:6:5:8:5 | {...} | | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:5:10:5:11 | exit M1 | | @@ -3084,8 +3146,10 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:28 | call to method WriteLine | | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | exit Qualifiers | | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | call to method | | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:28:7:31 | null | | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:16:7:21 | exit Method | | @@ -3151,8 +3215,10 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | {...} | | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | call to constructor Object | | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to constructor Object | | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | this access | | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | exit Switch | | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | call to method | | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | exit Switch (normal) | | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:6:5:8:5 | {...} | | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:5:10:5:11 | exit M1 | | @@ -3478,8 +3544,10 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:47 | call to method WriteLine | | | Switch.cs:176:17:176:22 | break; | Switch.cs:163:10:163:12 | exit M16 (normal) | break | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | call to method | | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:4:5:9:5 | {...} | | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:3:10:3:10 | exit M | | @@ -3503,8 +3571,10 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:13:8:27 | Type t = ... | | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to constructor Object | | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | this access | | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | exit VarDecls | | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | call to method | | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:6:5:11:5 | {...} | | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:5:18:5:19 | exit M1 | | @@ -3554,8 +3624,10 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | call to constructor Object | | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to constructor Object | | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | this access | | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | exit C | | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | call to method | | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | exit C (normal) | | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:51:28:53 | {...} | | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:41:28:47 | exit Dispose | | @@ -3855,8 +3927,10 @@ | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | @@ -4231,8 +4305,10 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | , return | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | this access | | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | call to method | | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | | @@ -4246,8 +4322,10 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | {...} | | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to constructor Object | | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | this access | | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | exit DelegateCall | | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | call to method | | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:38:291:38 | access to parameter f | | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:12:291:12 | exit M | | @@ -4255,8 +4333,10 @@ | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:41 | delegate call | | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:52:296:54 | {...} | | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to constructor Object | | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | this access | | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | exit NegationInConstructor | | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | call to method | | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | | cflow.cs:298:10:298:10 | enter M | cflow.cs:299:5:301:5 | {...} | | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:298:10:298:10 | exit M | | @@ -4276,8 +4356,10 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:64 | ... != ... | | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | {...} | | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to constructor Object | | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | this access | | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | exit LambdaGetter | | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | call to method | | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | exit get__getter (normal) | | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:307:5:310:5 | {...} | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index 26e8d074b19..aff87481461 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -1,4 +1,4 @@ -| AccessorCalls.cs:1:7:1:19 | AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:5:23:5:25 | get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:33:5:35 | set_Item | AccessorCalls.cs:5:37:5:39 | {...} | | AccessorCalls.cs:7:32:7:34 | add_Event | AccessorCalls.cs:7:36:7:38 | {...} | @@ -12,12 +12,12 @@ | AccessorCalls.cs:56:10:56:11 | M7 | AccessorCalls.cs:57:5:59:5 | {...} | | AccessorCalls.cs:61:10:61:11 | M8 | AccessorCalls.cs:62:5:64:5 | {...} | | AccessorCalls.cs:66:10:66:11 | M9 | AccessorCalls.cs:67:5:74:5 | {...} | -| ArrayCreation.cs:1:7:1:19 | ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:3:11:3:12 | M1 | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:5:12:5:13 | M2 | ArrayCreation.cs:5:28:5:28 | 0 | | ArrayCreation.cs:7:11:7:12 | M3 | ArrayCreation.cs:7:19:7:36 | 2 | | ArrayCreation.cs:9:12:9:13 | M4 | ArrayCreation.cs:9:20:9:52 | 2 | -| Assert.cs:5:7:5:17 | AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | AssertTests | Assert.cs:5:7:5:17 | this access | | Assert.cs:7:10:7:11 | M1 | Assert.cs:8:5:12:5 | {...} | | Assert.cs:14:10:14:11 | M2 | Assert.cs:15:5:19:5 | {...} | | Assert.cs:21:10:21:11 | M3 | Assert.cs:22:5:26:5 | {...} | @@ -32,23 +32,23 @@ | Assert.cs:84:10:84:12 | M12 | Assert.cs:85:5:129:5 | {...} | | Assert.cs:131:18:131:32 | AssertTrueFalse | Assert.cs:135:5:136:5 | {...} | | Assert.cs:138:10:138:12 | M13 | Assert.cs:139:5:142:5 | {...} | -| Assignments.cs:1:7:1:17 | Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | Assignments | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:3:10:3:10 | M | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:33:14:35 | {...} | | Assignments.cs:17:40:17:40 | + | Assignments.cs:18:5:20:5 | {...} | -| BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:3:10:3:11 | M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:20:10:20:11 | M2 | BreakInTry.cs:21:5:36:5 | {...} | | BreakInTry.cs:38:10:38:11 | M3 | BreakInTry.cs:39:5:54:5 | {...} | | BreakInTry.cs:56:10:56:11 | M4 | BreakInTry.cs:57:5:71:5 | {...} | -| CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:5:9:5:15 | Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:10:9:10:14 | Sizeof | CompileTimeOperators.cs:11:5:13:5 | {...} | | CompileTimeOperators.cs:15:10:15:15 | Typeof | CompileTimeOperators.cs:16:5:18:5 | {...} | | CompileTimeOperators.cs:20:12:20:17 | Nameof | CompileTimeOperators.cs:21:5:23:5 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:28:10:28:10 | M | CompileTimeOperators.cs:29:5:41:5 | {...} | -| ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:3:12:3:13 | M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:5:10:5:11 | M2 | ConditionalAccess.cs:5:26:5:26 | access to parameter s | | ConditionalAccess.cs:7:10:7:11 | M3 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | @@ -59,7 +59,7 @@ | ConditionalAccess.cs:30:10:30:12 | Out | ConditionalAccess.cs:30:32:30:32 | 0 | | ConditionalAccess.cs:32:10:32:11 | M8 | ConditionalAccess.cs:33:5:36:5 | {...} | | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:3:10:3:19 | IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:11:9:11:10 | M1 | Conditions.cs:12:5:20:5 | {...} | | Conditions.cs:22:9:22:10 | M2 | Conditions.cs:23:5:31:5 | {...} | @@ -72,7 +72,7 @@ | Conditions.cs:113:10:113:11 | M9 | Conditions.cs:114:5:124:5 | {...} | | Conditions.cs:129:10:129:12 | M10 | Conditions.cs:130:5:141:5 | {...} | | Conditions.cs:143:10:143:12 | M11 | Conditions.cs:144:5:150:5 | {...} | -| ExitMethods.cs:6:7:6:17 | ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:8:10:8:11 | M1 | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:14:10:14:11 | M2 | ExitMethods.cs:15:5:18:5 | {...} | | ExitMethods.cs:20:10:20:11 | M3 | ExitMethods.cs:21:5:24:5 | {...} | @@ -99,7 +99,7 @@ | Extensions.cs:10:24:10:29 | ToBool | Extensions.cs:11:5:13:5 | {...} | | Extensions.cs:15:23:15:33 | CallToInt32 | Extensions.cs:15:48:15:50 | "0" | | Extensions.cs:20:17:20:20 | Main | Extensions.cs:21:5:26:5 | {...} | -| Finally.cs:3:14:3:20 | Finally | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | Finally | Finally.cs:3:14:3:20 | this access | | Finally.cs:7:10:7:11 | M1 | Finally.cs:8:5:17:5 | {...} | | Finally.cs:19:10:19:11 | M2 | Finally.cs:20:5:52:5 | {...} | | Finally.cs:54:10:54:11 | M3 | Finally.cs:55:5:72:5 | {...} | @@ -108,33 +108,36 @@ | Finally.cs:121:10:121:11 | M6 | Finally.cs:122:5:131:5 | {...} | | Finally.cs:133:10:133:11 | M7 | Finally.cs:134:5:145:5 | {...} | | Finally.cs:147:10:147:11 | M8 | Finally.cs:148:5:170:5 | {...} | -| Finally.cs:172:11:172:20 | ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | -| Finally.cs:173:11:173:20 | ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | -| Finally.cs:174:11:174:20 | ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | ExceptionA | Finally.cs:172:11:172:20 | this access | +| Finally.cs:173:11:173:20 | ExceptionB | Finally.cs:173:11:173:20 | this access | +| Finally.cs:174:11:174:20 | ExceptionC | Finally.cs:174:11:174:20 | this access | | Finally.cs:176:10:176:11 | M9 | Finally.cs:177:5:193:5 | {...} | | Finally.cs:195:10:195:12 | M10 | Finally.cs:196:5:214:5 | {...} | | Finally.cs:216:10:216:12 | M11 | Finally.cs:217:5:231:5 | {...} | | Finally.cs:233:10:233:12 | M12 | Finally.cs:234:5:261:5 | {...} | | Finally.cs:263:10:263:12 | M13 | Finally.cs:264:5:274:5 | {...} | -| Foreach.cs:4:7:4:13 | Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | Foreach | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:6:10:6:11 | M1 | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:12:10:12:11 | M2 | Foreach.cs:13:5:16:5 | {...} | | Foreach.cs:18:10:18:11 | M3 | Foreach.cs:19:5:22:5 | {...} | | Foreach.cs:24:10:24:11 | M4 | Foreach.cs:25:5:28:5 | {...} | | Foreach.cs:30:10:30:11 | M5 | Foreach.cs:31:5:34:5 | {...} | | Foreach.cs:36:10:36:11 | M6 | Foreach.cs:37:5:40:5 | {...} | +| Initializers.cs:3:7:3:18 | | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:3:7:3:18 | Initializers | Initializers.cs:3:7:3:18 | {...} | -| Initializers.cs:8:5:8:16 | Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | -| Initializers.cs:10:5:10:16 | Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | Initializers | Initializers.cs:8:5:8:16 | this access | +| Initializers.cs:10:5:10:16 | Initializers | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:12:10:12:10 | M | Initializers.cs:13:5:16:5 | {...} | -| Initializers.cs:20:11:20:23 | NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | -| Initializers.cs:31:9:31:11 | Sub | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:20:11:20:23 | | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:20:11:20:23 | NoConstructor | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:26:11:26:13 | | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:31:9:31:11 | Sub | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:33:9:33:11 | Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | -| Initializers.cs:35:9:35:11 | Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:39:7:39:23 | IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | -| Initializers.cs:41:11:41:18 | Compound | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:35:9:35:11 | Sub | Initializers.cs:35:9:35:11 | this access | +| Initializers.cs:39:7:39:23 | IndexInitializers | Initializers.cs:39:7:39:23 | this access | +| Initializers.cs:41:11:41:18 | Compound | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:51:10:51:13 | Test | Initializers.cs:52:5:66:5 | {...} | -| LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:7:10:7:11 | M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:15:10:15:11 | M2 | LoopUnrolling.cs:16:5:20:5 | {...} | | LoopUnrolling.cs:22:10:22:11 | M3 | LoopUnrolling.cs:23:5:27:5 | {...} | @@ -146,8 +149,8 @@ | LoopUnrolling.cs:76:10:76:11 | M9 | LoopUnrolling.cs:77:5:83:5 | {...} | | LoopUnrolling.cs:85:10:85:12 | M10 | LoopUnrolling.cs:86:5:92:5 | {...} | | LoopUnrolling.cs:94:10:94:12 | M11 | LoopUnrolling.cs:95:5:101:5 | {...} | -| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:6:22:6:31 | get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:22:6:31 | get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationA.cs:7:21:7:23 | get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | @@ -156,6 +159,8 @@ | MultiImplementationA.cs:7:41:7:43 | set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationA.cs:8:16:8:16 | M | MultiImplementationA.cs:8:29:8:32 | null | | MultiImplementationA.cs:8:16:8:16 | M | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationA.cs:11:7:11:8 | | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationA.cs:14:31:14:31 | get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | get_Item | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationA.cs:15:36:15:38 | get_Item | MultiImplementationA.cs:15:40:15:52 | {...} | @@ -165,33 +170,34 @@ | MultiImplementationA.cs:16:17:16:18 | M1 | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:16:17:16:18 | M1 | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | M2 | MultiImplementationA.cs:18:21:18:21 | 0 | -| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:21:12:21:13 | C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | MultiImplementationA.cs:21:12:21:13 | C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationA.cs:22:6:22:7 | ~C2 | MultiImplementationA.cs:22:11:22:13 | {...} | | MultiImplementationA.cs:22:6:22:7 | ~C2 | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationA.cs:23:28:23:35 | implicit conversion | MultiImplementationA.cs:23:50:23:53 | null | | MultiImplementationA.cs:23:28:23:35 | implicit conversion | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:30:21:30:23 | get_P3 | MultiImplementationA.cs:30:34:30:37 | null | -| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:36:9:36:10 | M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:9:36:10 | M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | MultiImplementationA.cs:37:9:37:10 | M2 | MultiImplementationA.cs:37:14:37:28 | {...} | | MultiImplementationB.cs:16:9:16:31 | M2 | MultiImplementationB.cs:16:27:16:30 | null | -| NullCoalescing.cs:1:7:1:20 | NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:3:9:3:10 | M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:5:9:5:10 | M2 | NullCoalescing.cs:5:25:5:25 | access to parameter b | | NullCoalescing.cs:7:12:7:13 | M3 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | | NullCoalescing.cs:9:12:9:13 | M4 | NullCoalescing.cs:9:37:9:37 | access to parameter b | | NullCoalescing.cs:11:9:11:10 | M5 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | | NullCoalescing.cs:13:10:13:11 | M6 | NullCoalescing.cs:14:5:18:5 | {...} | -| PartialImplementationA.cs:3:12:3:18 | Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | -| PartialImplementationB.cs:4:12:4:18 | Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | -| Patterns.cs:3:7:3:14 | Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | +| PartialImplementationA.cs:1:15:1:21 | | PartialImplementationB.cs:3:16:3:16 | this access | +| PartialImplementationA.cs:3:12:3:18 | Partial | PartialImplementationA.cs:3:12:3:18 | this access | +| PartialImplementationB.cs:4:12:4:18 | Partial | PartialImplementationB.cs:4:12:4:18 | this access | +| Patterns.cs:3:7:3:14 | Patterns | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:5:10:5:11 | M1 | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:47:24:47:25 | M2 | Patterns.cs:48:9:48:9 | access to parameter c | | Patterns.cs:50:24:50:25 | M3 | Patterns.cs:51:9:51:9 | access to parameter c | @@ -202,15 +208,15 @@ | Patterns.cs:85:26:85:27 | M8 | Patterns.cs:85:39:85:39 | access to parameter i | | Patterns.cs:87:26:87:27 | M9 | Patterns.cs:87:39:87:39 | access to parameter i | | Patterns.cs:93:17:93:19 | M10 | Patterns.cs:94:5:99:5 | {...} | -| PostDominance.cs:3:7:3:19 | PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | PostDominance | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:5:10:5:11 | M1 | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:10:10:10:11 | M2 | PostDominance.cs:11:5:15:5 | {...} | | PostDominance.cs:17:10:17:11 | M3 | PostDominance.cs:18:5:22:5 | {...} | -| Qualifiers.cs:1:7:1:16 | Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:7:16:7:21 | Method | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:8:23:8:34 | StaticMethod | Qualifiers.cs:8:41:8:44 | null | | Qualifiers.cs:10:10:10:10 | M | Qualifiers.cs:11:5:31:5 | {...} | -| Switch.cs:3:7:3:12 | Switch | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | Switch | Switch.cs:3:7:3:12 | this access | | Switch.cs:5:10:5:11 | M1 | Switch.cs:6:5:8:5 | {...} | | Switch.cs:10:10:10:11 | M2 | Switch.cs:11:5:33:5 | {...} | | Switch.cs:35:10:35:11 | M3 | Switch.cs:36:5:42:5 | {...} | @@ -228,13 +234,13 @@ | Switch.cs:144:9:144:11 | M14 | Switch.cs:145:5:152:5 | {...} | | Switch.cs:154:10:154:12 | M15 | Switch.cs:155:5:161:5 | {...} | | Switch.cs:163:10:163:12 | M16 | Switch.cs:164:5:178:5 | {...} | -| TypeAccesses.cs:1:7:1:18 | TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:3:10:3:10 | M | TypeAccesses.cs:4:5:9:5 | {...} | -| VarDecls.cs:3:7:3:14 | VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | VarDecls | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:5:18:5:19 | M1 | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:13:12:13:13 | M2 | VarDecls.cs:14:5:17:5 | {...} | | VarDecls.cs:19:7:19:8 | M3 | VarDecls.cs:20:5:26:5 | {...} | -| VarDecls.cs:28:11:28:11 | C | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | C | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:41:28:47 | Dispose | VarDecls.cs:28:51:28:53 | {...} | | cflow.cs:5:17:5:20 | Main | cflow.cs:6:5:35:5 | {...} | | cflow.cs:37:17:37:22 | Switch | cflow.cs:38:5:68:5 | {...} | @@ -245,7 +251,7 @@ | cflow.cs:119:20:119:21 | M5 | cflow.cs:120:5:124:5 | {...} | | cflow.cs:127:19:127:21 | get_Prop | cflow.cs:127:23:127:60 | {...} | | cflow.cs:127:62:127:64 | set_Prop | cflow.cs:127:66:127:83 | {...} | -| cflow.cs:129:5:129:15 | ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | ControlFlow | cflow.cs:129:5:129:15 | this access | | cflow.cs:134:5:134:15 | ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | cflow.cs:136:12:136:22 | ControlFlow | cflow.cs:136:33:136:33 | 0 | | cflow.cs:138:40:138:40 | + | cflow.cs:139:5:142:5 | {...} | @@ -261,13 +267,13 @@ | cflow.cs:224:10:224:16 | Foreach | cflow.cs:225:5:238:5 | {...} | | cflow.cs:240:10:240:13 | Goto | cflow.cs:241:5:259:5 | {...} | | cflow.cs:261:49:261:53 | Yield | cflow.cs:262:5:277:5 | {...} | -| cflow.cs:282:5:282:18 | ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | ControlFlowSub | cflow.cs:282:5:282:18 | this access | | cflow.cs:284:5:284:18 | ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | | cflow.cs:286:5:286:18 | ControlFlowSub | cflow.cs:286:34:286:34 | access to parameter i | -| cflow.cs:289:7:289:18 | DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | DelegateCall | cflow.cs:289:7:289:18 | this access | | cflow.cs:291:12:291:12 | M | cflow.cs:291:38:291:38 | access to parameter f | -| cflow.cs:296:5:296:25 | NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | NegationInConstructor | cflow.cs:296:5:296:25 | this access | | cflow.cs:298:10:298:10 | M | cflow.cs:299:5:301:5 | {...} | -| cflow.cs:304:7:304:18 | LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | LambdaGetter | cflow.cs:304:7:304:18 | this access | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:307:5:310:5 | {...} | | cflow.cs:306:60:310:5 | get__getter | cflow.cs:306:60:310:5 | (...) => ... | diff --git a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected index a930349e930..712e379e331 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected @@ -117,6 +117,8 @@ | not | Guards.cs:162:24:162:24 | access to parameter o | | not | Guards.cs:285:17:285:17 | access to parameter o | | not | Guards.cs:287:17:287:17 | access to parameter o | +| not null | Assert.cs:5:7:5:17 | call to method | +| not null | Assert.cs:5:7:5:17 | this access | | not null | Assert.cs:9:20:9:20 | access to parameter b | | not null | Assert.cs:9:31:9:32 | "" | | not null | Assert.cs:10:9:10:13 | access to type Debug | @@ -228,6 +230,8 @@ | not null | Assert.cs:94:16:94:24 | ... && ... | | not null | Assert.cs:94:22:94:24 | !... | | not null | Assert.cs:94:23:94:24 | access to parameter b2 | +| not null | Collections.cs:7:14:7:24 | call to method | +| not null | Collections.cs:7:14:7:24 | this access | | not null | Collections.cs:11:13:11:13 | access to local variable b | | not null | Collections.cs:11:13:11:32 | Boolean b = ... | | not null | Collections.cs:11:17:11:20 | access to parameter args | @@ -496,6 +500,8 @@ | not null | Collections.cs:102:9:102:15 | access to type Console | | not null | Collections.cs:102:9:102:31 | call to method WriteLine | | not null | Collections.cs:102:27:102:30 | access to parameter args | +| not null | Guards.cs:3:14:3:19 | call to method | +| not null | Guards.cs:3:14:3:19 | this access | | not null | Guards.cs:10:13:10:25 | !... | | not null | Guards.cs:10:14:10:25 | !... | | not null | Guards.cs:10:16:10:24 | ... == ... | diff --git a/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected b/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected index 34f517f59bb..5db33c2a421 100644 --- a/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected +++ b/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected @@ -1,4 +1,5 @@ fileScopedNamespace +| FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:3:14:3:39 | | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:3:14:3:39 | MyFileScopedNamespaceClass | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:5:29:5:35 | myField | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:6:19:6:24 | MyProp | diff --git a/csharp/ql/test/library-tests/csharp6/MemberAccess.expected b/csharp/ql/test/library-tests/csharp6/MemberAccess.expected index 1eda117fadd..d54af10ffc3 100644 --- a/csharp/ql/test/library-tests/csharp6/MemberAccess.expected +++ b/csharp/ql/test/library-tests/csharp6/MemberAccess.expected @@ -4,7 +4,10 @@ memberAccess | csharp6.cs:32:38:32:70 | access to indexer | csharp6.cs:32:38:32:66 | object creation of type Dictionary | Conditional | | csharp6.cs:32:38:32:73 | access to indexer | csharp6.cs:32:38:32:70 | access to indexer | Unconditional | methodCall +| csharp6.cs:10:7:10:17 | call to method | csharp6.cs:10:7:10:17 | this access | Unconditional | | csharp6.cs:30:31:30:44 | call to method ToUpper | csharp6.cs:30:31:30:33 | access to local variable foo | Conditional | +| csharp6.cs:53:7:53:23 | call to method | csharp6.cs:53:7:53:23 | this access | Unconditional | +| csharp6.cs:55:11:55:18 | call to method | csharp6.cs:55:11:55:18 | this access | Unconditional | extensionMethodCall | csharp6.cs:29:35:29:44 | call to method Any | csharp6.cs:29:35:29:37 | access to local variable bar | Conditional | | csharp6.cs:30:31:30:66 | call to method Select | csharp6.cs:30:31:30:44 | call to method ToUpper | Unconditional | diff --git a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected index 0a5266ed359..a37109c8481 100644 --- a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected @@ -1,3 +1,4 @@ +| CSharp7.cs:5:7:5:14 | this | CSharp7.cs:5:7:5:14 | this access | | CSharp7.cs:5:7:5:14 | this | CSharp7.cs:7:9:7:9 | this access | | CSharp7.cs:7:9:7:9 | [post] this access | CSharp7.cs:8:9:8:9 | this access | | CSharp7.cs:7:9:7:9 | this access | CSharp7.cs:8:9:8:9 | this access | @@ -6,8 +7,7 @@ | CSharp7.cs:8:9:8:9 | this access | CSharp7.cs:9:9:9:9 | this access | | CSharp7.cs:8:13:8:19 | 123456 | CSharp7.cs:8:9:8:9 | access to field y | | CSharp7.cs:9:13:9:23 | 128 | CSharp7.cs:9:9:9:9 | access to field z | -| CSharp7.cs:14:9:14:13 | [post] this access | CSharp7.cs:23:39:23:43 | this access | -| CSharp7.cs:14:9:14:13 | this access | CSharp7.cs:23:39:23:43 | this access | +| CSharp7.cs:12:7:12:29 | this | CSharp7.cs:14:9:14:13 | this access | | CSharp7.cs:14:17:14:17 | 0 | CSharp7.cs:14:9:14:13 | access to field field | | CSharp7.cs:15:9:15:11 | SSA entry def(this.field) | CSharp7.cs:15:18:15:22 | access to field field | | CSharp7.cs:15:9:15:11 | this | CSharp7.cs:15:18:15:22 | this access | @@ -16,13 +16,17 @@ | CSharp7.cs:20:9:20:11 | this | CSharp7.cs:20:16:20:20 | this access | | CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:9:20:11 | SSA param(value) | | CSharp7.cs:20:24:20:28 | access to parameter value | CSharp7.cs:20:16:20:20 | access to field field | -| CSharp7.cs:23:5:23:27 | this | CSharp7.cs:14:9:14:13 | this access | +| CSharp7.cs:23:5:23:27 | [post] this access | CSharp7.cs:23:39:23:43 | this access | +| CSharp7.cs:23:5:23:27 | this | CSharp7.cs:23:5:23:27 | this access | +| CSharp7.cs:23:5:23:27 | this access | CSharp7.cs:23:39:23:43 | this access | | CSharp7.cs:24:6:24:28 | this | CSharp7.cs:24:35:24:39 | this access | +| CSharp7.cs:27:7:27:15 | this | CSharp7.cs:27:7:27:15 | this access | | CSharp7.cs:29:19:29:19 | SSA param(i) | CSharp7.cs:31:16:31:16 | access to parameter i | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:29:19:29:19 | SSA param(i) | | CSharp7.cs:31:16:31:16 | access to parameter i | CSharp7.cs:31:16:31:20 | ... > ... | | CSharp7.cs:31:16:31:16 | access to parameter i | CSharp7.cs:31:24:31:24 | access to parameter i | | CSharp7.cs:31:24:31:24 | access to parameter i | CSharp7.cs:31:16:31:59 | ... ? ... : ... | +| CSharp7.cs:35:7:35:18 | this | CSharp7.cs:35:7:35:18 | this access | | CSharp7.cs:39:9:39:9 | access to parameter x | CSharp7.cs:39:9:39:21 | SSA def(x) | | CSharp7.cs:39:13:39:21 | "tainted" | CSharp7.cs:39:9:39:9 | access to parameter x | | CSharp7.cs:42:19:42:19 | SSA param(x) | CSharp7.cs:44:13:44:13 | access to parameter x | @@ -48,6 +52,7 @@ | CSharp7.cs:55:30:55:31 | SSA def(t4) | CSharp7.cs:56:18:56:19 | access to local variable t4 | | CSharp7.cs:55:30:55:31 | String t4 | CSharp7.cs:55:30:55:31 | SSA def(t4) | | CSharp7.cs:56:18:56:19 | access to local variable t4 | CSharp7.cs:56:13:56:14 | access to local variable t5 | +| CSharp7.cs:60:7:60:12 | this | CSharp7.cs:60:7:60:12 | this access | | CSharp7.cs:67:10:67:20 | this | CSharp7.cs:69:26:69:28 | this access | | CSharp7.cs:69:26:69:28 | [post] this access | CSharp7.cs:70:17:70:19 | this access | | CSharp7.cs:69:26:69:28 | call to method F | CSharp7.cs:69:9:69:22 | (..., ...) | @@ -136,6 +141,7 @@ | CSharp7.cs:121:22:121:36 | ... = ... | CSharp7.cs:121:16:121:18 | access to local variable m13 | | CSharp7.cs:121:28:121:36 | "DefUse3" | CSharp7.cs:121:22:121:24 | access to local variable m12 | | CSharp7.cs:121:28:121:36 | "DefUse3" | CSharp7.cs:121:22:121:36 | ... = ... | +| CSharp7.cs:125:7:125:20 | this | CSharp7.cs:125:7:125:20 | this access | | CSharp7.cs:127:9:127:12 | this | CSharp7.cs:133:24:133:25 | this access | | CSharp7.cs:129:20:129:20 | SSA param(x) | CSharp7.cs:129:32:129:32 | access to parameter x | | CSharp7.cs:129:20:129:20 | x | CSharp7.cs:129:20:129:20 | SSA param(x) | @@ -191,6 +197,7 @@ | CSharp7.cs:181:23:181:25 | [post] access to local variable src | CSharp7.cs:182:23:182:25 | access to local variable src | | CSharp7.cs:181:23:181:25 | access to local variable src | CSharp7.cs:182:23:182:25 | access to local variable src | | CSharp7.cs:182:21:182:26 | call to local function h | CSharp7.cs:182:13:182:17 | access to local variable sink3 | +| CSharp7.cs:186:7:186:10 | this | CSharp7.cs:186:7:186:10 | this access | | CSharp7.cs:188:10:188:11 | this | CSharp7.cs:197:14:197:23 | this access | | CSharp7.cs:190:13:190:14 | access to local variable v1 | CSharp7.cs:190:13:190:18 | SSA def(v1) | | CSharp7.cs:190:13:190:18 | SSA def(v1) | CSharp7.cs:191:26:191:27 | access to local variable v1 | @@ -224,6 +231,7 @@ | CSharp7.cs:202:24:202:24 | p | CSharp7.cs:202:24:202:24 | SSA param(p) | | CSharp7.cs:204:28:204:28 | SSA param(q) | CSharp7.cs:204:44:204:44 | access to parameter q | | CSharp7.cs:204:28:204:28 | q | CSharp7.cs:204:28:204:28 | SSA param(q) | +| CSharp7.cs:211:7:211:14 | this | CSharp7.cs:211:7:211:14 | this access | | CSharp7.cs:215:9:215:9 | access to parameter x | CSharp7.cs:215:9:215:17 | SSA def(x) | | CSharp7.cs:215:13:215:17 | false | CSharp7.cs:215:9:215:9 | access to parameter x | | CSharp7.cs:219:10:219:13 | this | CSharp7.cs:221:13:221:20 | this access | @@ -237,6 +245,7 @@ | CSharp7.cs:223:22:223:29 | call to method f | CSharp7.cs:223:9:223:18 | (..., ...) | | CSharp7.cs:223:22:223:29 | this access | CSharp7.cs:224:22:224:33 | this access | | CSharp7.cs:224:22:224:33 | call to method f | CSharp7.cs:224:9:224:18 | (..., ...) | +| CSharp7.cs:228:7:228:14 | this | CSharp7.cs:228:7:228:14 | this access | | CSharp7.cs:232:16:232:16 | access to local variable o | CSharp7.cs:232:16:232:23 | SSA def(o) | | CSharp7.cs:232:16:232:23 | SSA def(o) | CSharp7.cs:233:13:233:13 | access to local variable o | | CSharp7.cs:232:20:232:23 | null | CSharp7.cs:232:16:232:16 | access to local variable o | @@ -303,6 +312,7 @@ | CSharp7.cs:264:37:264:43 | "string " | CSharp7.cs:264:35:264:48 | $"..." | | CSharp7.cs:264:44:264:47 | {...} | CSharp7.cs:264:35:264:48 | $"..." | | CSharp7.cs:264:45:264:46 | access to local variable s2 | CSharp7.cs:264:44:264:47 | {...} | +| CSharp7.cs:278:7:278:23 | this | CSharp7.cs:278:7:278:23 | this access | | CSharp7.cs:282:13:282:16 | access to local variable dict | CSharp7.cs:282:13:282:48 | SSA def(dict) | | CSharp7.cs:282:13:282:48 | SSA def(dict) | CSharp7.cs:283:20:283:23 | access to local variable dict | | CSharp7.cs:282:20:282:48 | object creation of type Dictionary | CSharp7.cs:282:13:282:16 | access to local variable dict | @@ -316,6 +326,7 @@ | CSharp7.cs:283:51:283:54 | access to parameter item | CSharp7.cs:283:51:283:60 | access to property Value | | CSharp7.cs:285:39:285:42 | access to local variable list | CSharp7.cs:287:36:287:39 | access to local variable list | | CSharp7.cs:287:36:287:39 | access to local variable list | CSharp7.cs:289:32:289:35 | access to local variable list | +| CSharp7.cs:293:7:293:14 | this | CSharp7.cs:293:7:293:14 | this access | | CSharp7.cs:297:18:297:18 | access to local variable x | CSharp7.cs:297:18:297:22 | SSA def(x) | | CSharp7.cs:297:18:297:22 | SSA def(x) | CSharp7.cs:297:25:297:25 | access to local variable x | | CSharp7.cs:297:22:297:22 | 0 | CSharp7.cs:297:18:297:18 | access to local variable x | diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected index 6ad47e73d01..fb2ca2f1759 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected @@ -153,6 +153,7 @@ arrayElements | NullableRefTypes.cs:150:27:150:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,,][][,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | | NullableRefTypes.cs:151:29:151:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,] | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | returnTypes +| NullableRefTypes.cs:6:7:6:13 | | Void | | NullableRefTypes.cs:6:7:6:13 | MyClass | Void! | | NullableRefTypes.cs:13:19:13:22 | get_C | MyClass? | | NullableRefTypes.cs:14:18:14:21 | get_D | MyClass! | @@ -179,14 +180,18 @@ returnTypes | NullableRefTypes.cs:51:12:51:15 | Q | object! | | NullableRefTypes.cs:51:12:51:15 | Q`1 | object! | | NullableRefTypes.cs:54:11:54:17 | Generic | Void! | +| NullableRefTypes.cs:54:11:54:33 | | Void | | NullableRefTypes.cs:58:11:58:18 | Generic2 | Void! | +| NullableRefTypes.cs:58:11:58:26 | | Void | | NullableRefTypes.cs:67:10:67:21 | GenericFn | Void | | NullableRefTypes.cs:67:10:67:21 | GenericFn | Void! | | NullableRefTypes.cs:67:10:67:21 | GenericFn`1 | Void! | | NullableRefTypes.cs:71:14:71:18 | CallF | MyStruct! | +| NullableRefTypes.cs:80:7:80:22 | | Void | | NullableRefTypes.cs:80:7:80:22 | NullableRefTypes | Void! | | NullableRefTypes.cs:82:10:82:40 | TestSuppressNullableWarningExpr | Void! | | NullableRefTypes.cs:91:10:91:34 | FunctionInNullableContext | Void! | +| NullableRefTypes.cs:100:7:100:14 | | Void | | NullableRefTypes.cs:100:7:100:14 | RefTypes | Void! | | NullableRefTypes.cs:103:18:103:28 | ReturnsRef1 | ref MyClass? | | NullableRefTypes.cs:104:17:104:27 | ReturnsRef2 | ref MyClass! | @@ -196,12 +201,17 @@ returnTypes | NullableRefTypes.cs:108:26:108:36 | ReturnsRef6 | readonly MyClass! | | NullableRefTypes.cs:110:10:110:20 | Parameters1 | Void! | | NullableRefTypes.cs:113:32:113:44 | get_RefProperty | MyClass! | +| NullableRefTypes.cs:116:7:116:23 | | Void | | NullableRefTypes.cs:116:7:116:23 | ToStringWithTypes | Void! | +| NullableRefTypes.cs:136:7:136:24 | | Void | | NullableRefTypes.cs:136:7:136:24 | ToStringWithTypes2 | Void! | +| NullableRefTypes.cs:154:7:154:25 | | Void | | NullableRefTypes.cs:154:7:154:25 | DisabledNullability | Void! | | NullableRefTypes.cs:157:18:157:30 | get_P | MyClass | | NullableRefTypes.cs:158:13:158:14 | Fn | MyClass | +| NullableRefTypes.cs:165:8:165:15 | | Void | | NullableRefTypes.cs:165:8:165:15 | MyStruct | Void! | +| NullableRefTypes.cs:171:16:171:37 | | Void | | NullableRefTypes.cs:171:16:171:37 | TestNullableFlowStates | Void! | | NullableRefTypes.cs:173:29:173:37 | MaybeNull | string? | | NullableRefTypes.cs:175:26:175:30 | Check | Void! | @@ -245,6 +255,8 @@ annotatedTypeConstraints typeNotAnnotated expressionTypes | NullableRefTypes.cs:6:7:6:13 | call to constructor Object | object | +| NullableRefTypes.cs:6:7:6:13 | call to method | Void | +| NullableRefTypes.cs:6:7:6:13 | this access | MyClass | | NullableRefTypes.cs:13:19:13:22 | null | null | | NullableRefTypes.cs:14:18:14:21 | this access | MyClass! | | NullableRefTypes.cs:17:29:17:32 | null | null | @@ -272,7 +284,11 @@ expressionTypes | NullableRefTypes.cs:40:30:40:30 | access to local variable b | MyClass? | | NullableRefTypes.cs:51:44:51:47 | null | null | | NullableRefTypes.cs:54:11:54:17 | call to constructor Object | object | +| NullableRefTypes.cs:54:11:54:17 | call to method | Void | +| NullableRefTypes.cs:54:11:54:17 | this access | Generic | | NullableRefTypes.cs:58:11:58:18 | call to constructor Object | object | +| NullableRefTypes.cs:58:11:58:18 | call to method | Void | +| NullableRefTypes.cs:58:11:58:18 | this access | Generic2 | | NullableRefTypes.cs:73:18:73:18 | access to local variable x | MyClass! | | NullableRefTypes.cs:73:18:73:25 | MyClass x = ... | MyClass! | | NullableRefTypes.cs:73:22:73:25 | null | null | @@ -285,6 +301,8 @@ expressionTypes | NullableRefTypes.cs:76:16:76:32 | default(...) | MyStruct! | | NullableRefTypes.cs:76:24:76:31 | access to type MyStruct | MyStruct | | NullableRefTypes.cs:80:7:80:22 | call to constructor Object | object | +| NullableRefTypes.cs:80:7:80:22 | call to method | Void | +| NullableRefTypes.cs:80:7:80:22 | this access | NullableRefTypes | | NullableRefTypes.cs:84:17:84:17 | access to local variable x | string! | | NullableRefTypes.cs:84:17:84:28 | String x = ... | string! | | NullableRefTypes.cs:84:21:84:28 | "source" | string! | @@ -318,6 +336,8 @@ expressionTypes | NullableRefTypes.cs:96:9:96:28 | call to method WriteLine | Void! | | NullableRefTypes.cs:96:27:96:27 | access to local variable x | string? | | NullableRefTypes.cs:100:7:100:14 | call to constructor Object | object | +| NullableRefTypes.cs:100:7:100:14 | call to method | Void | +| NullableRefTypes.cs:100:7:100:14 | this access | RefTypes | | NullableRefTypes.cs:103:48:103:52 | ref ... | MyClass | | NullableRefTypes.cs:103:52:103:52 | access to parameter r | MyClass! | | NullableRefTypes.cs:104:48:104:52 | ref ... | MyClass | @@ -337,15 +357,25 @@ expressionTypes | NullableRefTypes.cs:113:36:113:43 | this access | RefTypes | | NullableRefTypes.cs:113:36:113:44 | ...! | MyClass? | | NullableRefTypes.cs:116:7:116:23 | call to constructor Object | object | +| NullableRefTypes.cs:116:7:116:23 | call to method | Void | +| NullableRefTypes.cs:116:7:116:23 | this access | ToStringWithTypes | | NullableRefTypes.cs:136:7:136:24 | call to constructor Object | object | +| NullableRefTypes.cs:136:7:136:24 | call to method | Void | +| NullableRefTypes.cs:136:7:136:24 | this access | ToStringWithTypes2 | | NullableRefTypes.cs:154:7:154:25 | call to constructor Object | object | +| NullableRefTypes.cs:154:7:154:25 | call to method | Void | +| NullableRefTypes.cs:154:7:154:25 | this access | DisabledNullability | | NullableRefTypes.cs:157:18:157:30 | object creation of type MyClass | MyClass | | NullableRefTypes.cs:160:17:160:17 | access to local variable a | MyClass | | NullableRefTypes.cs:160:17:160:21 | MyClass a = ... | MyClass | | NullableRefTypes.cs:160:21:160:21 | access to parameter p | MyClass | | NullableRefTypes.cs:161:16:161:16 | access to local variable a | MyClass | | NullableRefTypes.cs:165:8:165:15 | call to constructor ValueType | ValueType | +| NullableRefTypes.cs:165:8:165:15 | call to method | Void | +| NullableRefTypes.cs:165:8:165:15 | this access | MyStruct | | NullableRefTypes.cs:171:16:171:37 | call to constructor Object | object | +| NullableRefTypes.cs:171:16:171:37 | call to method | Void | +| NullableRefTypes.cs:171:16:171:37 | this access | TestNullableFlowStates | | NullableRefTypes.cs:181:17:181:17 | access to local variable x | string! | | NullableRefTypes.cs:181:17:181:31 | String x = ... | string! | | NullableRefTypes.cs:181:21:181:31 | call to method MaybeNull | string? | diff --git a/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected b/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected index eaa01512c18..a8db6605f8d 100644 --- a/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected +++ b/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected @@ -7,4 +7,6 @@ globalBlock | GlobalStmt.cs:5:1:24:0 | {...} | GlobalStmt.cs:5:1:24:0 |
$ | GlobalStmt.cs:1:1:1:0 | args | GlobalStmt.cs:5:1:24:0 | Program | methods | GlobalStmt.cs:5:1:24:0 |
$ | entry | +| GlobalStmt.cs:5:1:24:0 | | non-entry | +| GlobalStmt.cs:17:14:17:17 | | non-entry | | GlobalStmt.cs:19:8:19:9 | M1 | non-entry | diff --git a/csharp/ql/test/library-tests/csharp9/nativeInt.expected b/csharp/ql/test/library-tests/csharp9/nativeInt.expected index 2c63241e1fe..7809e4f9487 100644 --- a/csharp/ql/test/library-tests/csharp9/nativeInt.expected +++ b/csharp/ql/test/library-tests/csharp9/nativeInt.expected @@ -1,4 +1,6 @@ | NativeInt.cs:3:14:3:22 | call to constructor Object | Object | +| NativeInt.cs:3:14:3:22 | call to method | Void | +| NativeInt.cs:3:14:3:22 | this access | NativeInt | | NativeInt.cs:7:14:7:14 | access to local variable x | IntPtr | | NativeInt.cs:7:14:7:18 | IntPtr x = ... | IntPtr | | NativeInt.cs:7:18:7:18 | (...) ... | IntPtr | diff --git a/csharp/ql/test/library-tests/csharp9/record.expected b/csharp/ql/test/library-tests/csharp9/record.expected index 9b6b5c00571..b34815c4f1a 100644 --- a/csharp/ql/test/library-tests/csharp9/record.expected +++ b/csharp/ql/test/library-tests/csharp9/record.expected @@ -12,6 +12,7 @@ records members | Record.cs:4:1:10:1 | Person | Person.!=(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.$() | no location | +| Record.cs:4:1:10:1 | Person | Person.() | no location | | Record.cs:4:1:10:1 | Person | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.EqualityContract | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.Equals(Person) | no location | @@ -30,6 +31,7 @@ members | Record.cs:4:1:10:1 | Person | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:4:1:10:1 | Person | System.Object.~Object() | no location | | Record.cs:12:1:18:1 | Teacher | Person.!=(Person, Person) | Record.cs:4:15:4:20 | +| Record.cs:12:1:18:1 | Teacher | Person.() | no location | | Record.cs:12:1:18:1 | Teacher | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:12:1:18:1 | Teacher | Person.FirstName | Record.cs:7:19:7:27 | | Record.cs:12:1:18:1 | Teacher | Person.LastName | Record.cs:6:19:6:26 | @@ -43,6 +45,7 @@ members | Record.cs:12:1:18:1 | Teacher | System.Object.~Object() | no location | | Record.cs:12:1:18:1 | Teacher | Teacher.!=(Teacher, Teacher) | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.$() | no location | +| Record.cs:12:1:18:1 | Teacher | Teacher.() | no location | | Record.cs:12:1:18:1 | Teacher | Teacher.==(Teacher, Teacher) | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.EqualityContract | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.Equals(Person) | no location | @@ -55,6 +58,7 @@ members | Record.cs:12:1:18:1 | Teacher | Teacher.Teacher(string, string, string) | Record.cs:16:12:16:18 | | Record.cs:12:1:18:1 | Teacher | Teacher.ToString() | no location | | Record.cs:20:1:25:1 | Student | Person.!=(Person, Person) | Record.cs:4:15:4:20 | +| Record.cs:20:1:25:1 | Student | Person.() | no location | | Record.cs:20:1:25:1 | Student | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:20:1:25:1 | Student | Person.FirstName | Record.cs:7:19:7:27 | | Record.cs:20:1:25:1 | Student | Person.LastName | Record.cs:6:19:6:26 | @@ -62,6 +66,7 @@ members | Record.cs:20:1:25:1 | Student | Person.Person(string, string) | Record.cs:9:12:9:17 | | Record.cs:20:1:25:1 | Student | Student.!=(Student, Student) | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.$() | no location | +| Record.cs:20:1:25:1 | Student | Student.() | no location | | Record.cs:20:1:25:1 | Student | Student.==(Student, Student) | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.EqualityContract | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.Equals(Person) | no location | @@ -81,6 +86,7 @@ members | Record.cs:20:1:25:1 | Student | System.Object.~Object() | no location | | Record.cs:27:1:27:57 | Person1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:27:1:27:57 | Person1 | Person1.$() | no location | +| Record.cs:27:1:27:57 | Person1 | Person1.() | no location | | Record.cs:27:1:27:57 | Person1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:27:1:27:57 | Person1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:27:1:27:57 | Person1 | Person1.EqualityContract | Record.cs:27:15:27:21 | @@ -100,6 +106,7 @@ members | Record.cs:27:1:27:57 | Person1 | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:27:1:27:57 | Person1 | System.Object.~Object() | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | +| Record.cs:29:1:30:35 | Teacher1 | Person1.() | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:29:1:30:35 | Teacher1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.FirstName | Record.cs:27:30:27:38 | @@ -114,6 +121,7 @@ members | Record.cs:29:1:30:35 | Teacher1 | System.Object.~Object() | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.!=(Teacher1, Teacher1) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.$() | no location | +| Record.cs:29:1:30:35 | Teacher1 | Teacher1.() | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.==(Teacher1, Teacher1) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.Deconstruct(out string, out string, out string) | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.EqualityContract | Record.cs:29:15:29:22 | @@ -127,6 +135,7 @@ members | Record.cs:29:1:30:35 | Teacher1 | Teacher1.Teacher1(string, string, string) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.ToString() | no location | | Record.cs:32:1:33:35 | Student1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | +| Record.cs:32:1:33:35 | Student1 | Person1.() | no location | | Record.cs:32:1:33:35 | Student1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:32:1:33:35 | Student1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:32:1:33:35 | Student1 | Person1.FirstName | Record.cs:27:30:27:38 | @@ -135,6 +144,7 @@ members | Record.cs:32:1:33:35 | Student1 | Person1.Person1(string, string) | Record.cs:27:15:27:21 | | Record.cs:32:1:33:35 | Student1 | Student1.!=(Student1, Student1) | Record.cs:32:22:32:29 | | Record.cs:32:1:33:35 | Student1 | Student1.$() | no location | +| Record.cs:32:1:33:35 | Student1 | Student1.() | no location | | Record.cs:32:1:33:35 | Student1 | Student1.==(Student1, Student1) | Record.cs:32:22:32:29 | | Record.cs:32:1:33:35 | Student1 | Student1.Deconstruct(out string, out string, out int) | no location | | Record.cs:32:1:33:35 | Student1 | Student1.EqualityContract | Record.cs:32:22:32:29 | @@ -155,6 +165,7 @@ members | Record.cs:32:1:33:35 | Student1 | System.Object.~Object() | no location | | Record.cs:35:1:39:1 | Pet | Pet.!=(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:35:1:39:1 | Pet | Pet.$() | no location | +| Record.cs:35:1:39:1 | Pet | Pet.() | no location | | Record.cs:35:1:39:1 | Pet | Pet.==(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:35:1:39:1 | Pet | Pet.Deconstruct(out string) | no location | | Record.cs:35:1:39:1 | Pet | Pet.EqualityContract | Record.cs:35:15:35:17 | @@ -175,6 +186,7 @@ members | Record.cs:35:1:39:1 | Pet | System.Object.~Object() | no location | | Record.cs:41:1:52:1 | Dog | Dog.!=(Dog, Dog) | Record.cs:41:15:41:17 | | Record.cs:41:1:52:1 | Dog | Dog.$() | no location | +| Record.cs:41:1:52:1 | Dog | Dog.() | no location | | Record.cs:41:1:52:1 | Dog | Dog.==(Dog, Dog) | Record.cs:41:15:41:17 | | Record.cs:41:1:52:1 | Dog | Dog.Deconstruct(out string) | no location | | Record.cs:41:1:52:1 | Dog | Dog.Dog(Dog) | no location | @@ -188,6 +200,7 @@ members | Record.cs:41:1:52:1 | Dog | Dog.ToString() | Record.cs:46:28:46:35 | | Record.cs:41:1:52:1 | Dog | Dog.WagTail() | Record.cs:43:17:43:23 | | Record.cs:41:1:52:1 | Dog | Pet.!=(Pet, Pet) | Record.cs:35:15:35:17 | +| Record.cs:41:1:52:1 | Dog | Pet.() | no location | | Record.cs:41:1:52:1 | Dog | Pet.==(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:41:1:52:1 | Dog | Pet.Deconstruct(out string) | no location | | Record.cs:41:1:52:1 | Dog | Pet.Name | Record.cs:35:26:35:29 | @@ -202,6 +215,7 @@ members | Record.cs:41:1:52:1 | Dog | System.Object.~Object() | no location | | Record.cs:54:1:54:39 | R1 | R1.!=(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:54:1:54:39 | R1 | R1.$() | no location | +| Record.cs:54:1:54:39 | R1 | R1.() | no location | | Record.cs:54:1:54:39 | R1 | R1.==(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:54:1:54:39 | R1 | R1.A | Record.cs:54:34:54:34 | | Record.cs:54:1:54:39 | R1 | R1.Deconstruct(out string) | no location | @@ -220,6 +234,7 @@ members | Record.cs:54:1:54:39 | R1 | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:54:1:54:39 | R1 | System.Object.~Object() | no location | | Record.cs:56:1:56:48 | R2 | R1.!=(R1, R1) | Record.cs:54:24:54:25 | +| Record.cs:56:1:56:48 | R2 | R1.() | no location | | Record.cs:56:1:56:48 | R2 | R1.==(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:56:1:56:48 | R2 | R1.A | Record.cs:54:34:54:34 | | Record.cs:56:1:56:48 | R2 | R1.Deconstruct(out string) | no location | @@ -227,6 +242,7 @@ members | Record.cs:56:1:56:48 | R2 | R1.R1(string) | Record.cs:54:24:54:25 | | Record.cs:56:1:56:48 | R2 | R2.!=(R2, R2) | Record.cs:56:15:56:16 | | Record.cs:56:1:56:48 | R2 | R2.$() | no location | +| Record.cs:56:1:56:48 | R2 | R2.() | no location | | Record.cs:56:1:56:48 | R2 | R2.==(R2, R2) | Record.cs:56:15:56:16 | | Record.cs:56:1:56:48 | R2 | R2.B | Record.cs:56:35:56:35 | | Record.cs:56:1:56:48 | R2 | R2.Deconstruct(out string, out string) | no location | diff --git a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected index 574ef53eae6..678dca279ff 100644 --- a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected @@ -1,27 +1,30 @@ models edges -| 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:3:18:3:26 | [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:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:3:18:3:26 | [post] this access : 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: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 | [post] this access : 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 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | this [Return] : 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: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:16:41:17 | this [Return] : 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:18:44:19 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | provenance | | +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | provenance | | +| Constructors.cs:44:18:44:19 | this access : C2 [parameter 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:44:18:44:19 | this access : C2 [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:44:18:44:19 | this [Return] : 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: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 | | @@ -120,6 +123,7 @@ edges | Constructors.cs:144:14:144:15 | access to local variable r1 : R1 [property Obj1] : Object | Constructors.cs:144:14:144:20 | access to property Obj1 | provenance | | | 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:3:18:3:26 | [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 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : 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 | @@ -133,6 +137,7 @@ nodes | 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 | [post] this access : C_with_ctor [field s1] : Object | semmle.label | [post] this access : 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: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 | @@ -141,8 +146,10 @@ nodes | 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:38:41:38 | access to parameter o : Object | semmle.label | access to parameter o : Object | +| Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | semmle.label | [post] this access : C2 [field Obj21] : 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 access : C2 [parameter o21param] : Object | semmle.label | this access : C2 [parameter o21param] : 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 | @@ -249,6 +256,7 @@ nodes | Constructors.cs:145:14:145:15 | access to local variable r1 : R1 [property Obj2] : Object | semmle.label | access to local variable r1 : R1 [property Obj2] : Object | | Constructors.cs:145:14:145:20 | access to property Obj2 | semmle.label | access to property Obj2 | subpaths +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | | 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 | diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index ff9e6ab405e..4e469e11887 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -332,18 +332,18 @@ edges | 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:16:13:16:13 | this [Return] : 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 [Return] : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | [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: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:16:13:16:13 | this [Return] : 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 [Return] : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | [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: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:16:13:16:13 | this [Return] : 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 [Return] : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | [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: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 | | @@ -372,6 +372,12 @@ 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 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : 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 | | @@ -1627,6 +1633,12 @@ 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 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : C [property s5] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : 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 | diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 6bf236135a2..16e0aa842c5 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -1,3 +1,4 @@ +| Capture.cs:3:14:3:20 | this | Capture.cs:3:14:3:20 | this access | | Capture.cs:5:17:5:17 | this | Capture.cs:13:9:13:14 | this access | | Capture.cs:7:17:7:17 | 0 | Capture.cs:7:13:7:13 | access to local variable i | | Capture.cs:13:9:13:14 | this access | Capture.cs:23:9:23:14 | this access | @@ -10,6 +11,11 @@ | Capture.cs:51:9:51:15 | this access | Capture.cs:63:9:63:15 | this access | | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:17 | access to local variable i | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:13 | access to local variable i | +| LocalDataFlow.cs:13:25:13:35 | this | LocalDataFlow.cs:13:25:13:35 | this access | +| LocalDataFlow.cs:29:18:29:24 | this | LocalDataFlow.cs:29:18:29:24 | this access | +| LocalDataFlow.cs:37:25:37:45 | this | LocalDataFlow.cs:37:25:37:45 | this access | +| LocalDataFlow.cs:38:25:38:43 | this | LocalDataFlow.cs:38:25:38:43 | this access | +| LocalDataFlow.cs:46:14:46:26 | this | LocalDataFlow.cs:46:14:46:26 | this access | | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | LocalDataFlow.cs:84:21:84:21 | access to parameter b | | LocalDataFlow.cs:48:24:48:24 | b | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | | LocalDataFlow.cs:51:13:51:17 | access to local variable sink0 | LocalDataFlow.cs:51:13:51:34 | SSA def(sink0) | @@ -482,6 +488,7 @@ | LocalDataFlow.cs:314:22:314:26 | access to local variable sink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | LocalDataFlow.cs:314:13:314:18 | access to local variable sink74 | | LocalDataFlow.cs:314:31:314:38 | access to local variable nonSink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | +| LocalDataFlow.cs:328:18:328:29 | this | LocalDataFlow.cs:328:18:328:29 | this access | | LocalDataFlow.cs:334:28:334:30 | SSA entry def(this.anInt) | LocalDataFlow.cs:334:41:334:45 | access to field anInt | | LocalDataFlow.cs:334:28:334:30 | this | LocalDataFlow.cs:334:41:334:45 | this access | | LocalDataFlow.cs:334:50:334:52 | SSA param(value) | LocalDataFlow.cs:334:64:334:68 | access to parameter value | @@ -519,6 +526,7 @@ | LocalDataFlow.cs:381:13:381:13 | access to local variable x | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:381:17:381:29 | "not tainted" | LocalDataFlow.cs:381:13:381:13 | access to local variable x | +| SSA.cs:3:14:3:16 | this | SSA.cs:3:14:3:16 | this access | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | | SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | SSA param(tainted) | SSA.cs:8:24:8:30 | access to parameter tainted | @@ -917,6 +925,7 @@ | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| Splitting.cs:1:7:1:15 | this | Splitting.cs:1:7:1:15 | this access | | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:6:13:6:13 | access to parameter b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | @@ -1001,6 +1010,7 @@ | Splitting.cs:57:17:57:17 | access to local variable y | Splitting.cs:58:27:58:27 | access to local variable y | | Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | | Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | +| UseUseExplosion.cs:1:7:1:7 | this | UseUseExplosion.cs:1:7:1:7 | this access | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 1e9e48f5456..2dc753a1889 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -1,3 +1,4 @@ +| Capture.cs:3:14:3:20 | this | Capture.cs:3:14:3:20 | this access | | Capture.cs:5:17:5:17 | this | Capture.cs:13:9:13:14 | this access | | Capture.cs:7:17:7:17 | 0 | Capture.cs:7:13:7:13 | access to local variable i | | Capture.cs:13:9:13:14 | this access | Capture.cs:23:9:23:14 | this access | @@ -10,6 +11,11 @@ | Capture.cs:51:9:51:15 | this access | Capture.cs:63:9:63:15 | this access | | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:17 | access to local variable i | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:13 | access to local variable i | +| LocalDataFlow.cs:13:25:13:35 | this | LocalDataFlow.cs:13:25:13:35 | this access | +| LocalDataFlow.cs:29:18:29:24 | this | LocalDataFlow.cs:29:18:29:24 | this access | +| LocalDataFlow.cs:37:25:37:45 | this | LocalDataFlow.cs:37:25:37:45 | this access | +| LocalDataFlow.cs:38:25:38:43 | this | LocalDataFlow.cs:38:25:38:43 | this access | +| LocalDataFlow.cs:46:14:46:26 | this | LocalDataFlow.cs:46:14:46:26 | this access | | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | LocalDataFlow.cs:84:21:84:21 | access to parameter b | | LocalDataFlow.cs:48:24:48:24 | b | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | | LocalDataFlow.cs:51:13:51:17 | access to local variable sink0 | LocalDataFlow.cs:51:13:51:34 | SSA def(sink0) | @@ -593,6 +599,7 @@ | LocalDataFlow.cs:314:22:314:26 | access to local variable sink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | LocalDataFlow.cs:314:13:314:18 | access to local variable sink74 | | LocalDataFlow.cs:314:31:314:38 | access to local variable nonSink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | +| LocalDataFlow.cs:328:18:328:29 | this | LocalDataFlow.cs:328:18:328:29 | this access | | LocalDataFlow.cs:334:28:334:30 | SSA entry def(this.anInt) | LocalDataFlow.cs:334:41:334:45 | access to field anInt | | LocalDataFlow.cs:334:28:334:30 | this | LocalDataFlow.cs:334:41:334:45 | this access | | LocalDataFlow.cs:334:50:334:52 | SSA param(value) | LocalDataFlow.cs:334:64:334:68 | access to parameter value | @@ -631,6 +638,7 @@ | LocalDataFlow.cs:381:13:381:13 | access to local variable x | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:381:17:381:29 | "not tainted" | LocalDataFlow.cs:381:13:381:13 | access to local variable x | +| SSA.cs:3:14:3:16 | this | SSA.cs:3:14:3:16 | this access | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | | SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | SSA param(tainted) | SSA.cs:8:24:8:30 | access to parameter tainted | @@ -1047,6 +1055,7 @@ | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| Splitting.cs:1:7:1:15 | this | Splitting.cs:1:7:1:15 | this access | | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:6:13:6:13 | access to parameter b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | @@ -1143,6 +1152,7 @@ | Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | | Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | | Splitting.cs:58:27:58:27 | access to local variable y | Splitting.cs:58:22:58:22 | SSA def(s) | +| UseUseExplosion.cs:1:7:1:7 | this | UseUseExplosion.cs:1:7:1:7 | this access | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected index 73b0a757b5a..583bae92d93 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected @@ -1,3 +1,4 @@ +| Tuples.cs:3:7:3:12 | this | Tuples.cs:3:7:3:12 | this access | | Tuples.cs:7:13:7:14 | access to local variable o1 | Tuples.cs:7:13:7:34 | SSA def(o1) | | Tuples.cs:7:13:7:34 | SSA def(o1) | Tuples.cs:10:21:10:22 | access to local variable o1 | | Tuples.cs:7:18:7:34 | call to method Source | Tuples.cs:7:13:7:14 | access to local variable o1 | @@ -168,9 +169,12 @@ | Tuples.cs:87:30:87:30 | SSA def(r) | Tuples.cs:90:18:90:18 | access to local variable r | | Tuples.cs:87:30:87:30 | String r | Tuples.cs:87:30:87:30 | SSA def(r) | | Tuples.cs:91:18:91:18 | access to local variable q | Tuples.cs:91:18:91:18 | (...) ... | +| Tuples.cs:95:12:95:13 | this | Tuples.cs:95:12:95:13 | this access | | Tuples.cs:95:12:95:13 | this | Tuples.cs:95:22:95:22 | this | | Tuples.cs:95:22:95:22 | [post] this | Tuples.cs:95:29:95:29 | this | | Tuples.cs:95:22:95:22 | this | Tuples.cs:95:29:95:29 | this | +| Tuples.cs:95:29:95:29 | [post] this | Tuples.cs:95:12:95:13 | this access | +| Tuples.cs:95:29:95:29 | this | Tuples.cs:95:12:95:13 | this access | | Tuples.cs:99:13:99:13 | access to local variable o | Tuples.cs:99:13:99:33 | SSA def(o) | | Tuples.cs:99:13:99:33 | SSA def(o) | Tuples.cs:100:24:100:24 | access to local variable o | | Tuples.cs:99:17:99:33 | call to method Source | Tuples.cs:99:13:99:13 | access to local variable o | @@ -225,3 +229,4 @@ | Tuples.cs:133:24:133:29 | (..., ...) | Tuples.cs:133:9:133:20 | (..., ...) | | Tuples.cs:133:25:133:25 | 1 | Tuples.cs:133:9:133:29 | ... = ... | | Tuples.cs:133:28:133:28 | access to local variable o | Tuples.cs:133:18:133:19 | access to local variable y4 | +| Tuples.cs:144:18:144:31 | this | Tuples.cs:144:18:144:31 | this access | diff --git a/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected b/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected index c85d73bd7f7..8030da8c4fa 100644 --- a/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected +++ b/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected @@ -1,12 +1,17 @@ +| FoldedLiterals.cs:1:7:1:20 | call to method | FoldedLiterals.cs:1:7:1:20 | this access | +| MethodAccess.cs:3:7:3:18 | call to method | MethodAccess.cs:3:7:3:18 | this access | | MethodAccess.cs:8:20:8:21 | access to local function M1 | MethodAccess.cs:8:20:8:21 | this access | | MethodAccess.cs:9:13:9:14 | access to method M2 | MethodAccess.cs:9:13:9:14 | this access | | MethodAccess.cs:10:13:10:19 | access to method M2 | MethodAccess.cs:10:13:10:16 | this access | | MethodAccess.cs:12:13:12:27 | access to method M3 | MethodAccess.cs:12:13:12:24 | access to type MethodAccess | +| Qualifiers.cs:3:7:3:16 | call to method | Qualifiers.cs:3:7:3:16 | this access | | Qualifiers.cs:7:21:7:35 | call to method Instance | Qualifiers.cs:7:21:7:35 | this access | | Qualifiers.cs:9:22:9:42 | call to method Instance | Qualifiers.cs:9:22:9:25 | this access | +| ReducedExpression.cs:2:7:2:18 | call to method | ReducedExpression.cs:2:7:2:18 | this access | | expressions.cs:45:20:45:20 | access to field f | expressions.cs:45:20:45:20 | this access | | expressions.cs:51:13:51:34 | access to field name | expressions.cs:51:13:51:29 | access to type Class | | expressions.cs:52:13:52:23 | call to method Foo | expressions.cs:52:13:52:17 | access to type Class | +| expressions.cs:58:19:58:23 | call to method | expressions.cs:58:19:58:23 | this access | | expressions.cs:64:20:64:27 | access to property Length | expressions.cs:64:20:64:20 | access to parameter s | | expressions.cs:75:35:75:46 | call to method Equals | expressions.cs:75:35:75:35 | access to parameter s | | expressions.cs:76:30:76:30 | access to field f | expressions.cs:76:30:76:30 | this access | @@ -20,6 +25,10 @@ | expressions.cs:85:41:85:51 | access to indexer | expressions.cs:85:41:85:44 | this access | | expressions.cs:87:13:87:20 | access to array element | expressions.cs:87:13:87:17 | access to local variable array | | expressions.cs:89:13:89:26 | access to array element | expressions.cs:89:13:89:23 | access to local variable inlinearray | +| expressions.cs:104:15:104:15 | call to method | expressions.cs:104:15:104:15 | this access | +| expressions.cs:108:15:108:15 | call to method | expressions.cs:108:15:108:15 | this access | +| expressions.cs:133:13:133:18 | call to method | expressions.cs:133:13:133:18 | this access | +| expressions.cs:134:13:134:18 | call to method | expressions.cs:134:13:134:18 | this access | | expressions.cs:138:17:138:22 | access to field f | expressions.cs:138:17:138:20 | this access | | expressions.cs:139:17:139:55 | call to method MainAccesses | expressions.cs:139:17:139:20 | base access | | expressions.cs:149:13:149:40 | call to method WriteLine | expressions.cs:149:13:149:19 | access to type Console | @@ -33,9 +42,13 @@ | expressions.cs:191:36:191:38 | access to method G | expressions.cs:191:36:191:36 | access to type X | | expressions.cs:198:25:198:37 | access to local function LocalFunction | expressions.cs:198:25:198:37 | this access | | expressions.cs:199:19:199:31 | access to local function LocalFunction | expressions.cs:199:19:199:31 | this access | +| expressions.cs:207:11:207:11 | call to method | expressions.cs:207:11:207:11 | this access | +| expressions.cs:216:18:216:18 | call to method | expressions.cs:216:18:216:18 | this access | +| expressions.cs:227:18:227:23 | call to method | expressions.cs:227:18:227:23 | this access | | expressions.cs:234:17:234:21 | access to event Click | expressions.cs:234:17:234:21 | this access | | expressions.cs:235:17:235:21 | access to event Click | expressions.cs:235:17:235:21 | this access | | expressions.cs:240:13:240:17 | access to event Click | expressions.cs:240:13:240:17 | this access | +| expressions.cs:250:16:250:26 | call to method | expressions.cs:250:16:250:26 | this access | | expressions.cs:252:13:252:20 | access to field OkButton | expressions.cs:252:13:252:20 | this access | | expressions.cs:253:13:253:20 | access to field OkButton | expressions.cs:253:13:253:20 | this access | | expressions.cs:253:13:253:26 | access to event Click | expressions.cs:253:13:253:20 | access to field OkButton | @@ -44,30 +57,48 @@ | expressions.cs:255:13:255:24 | access to field CancelButton | expressions.cs:255:13:255:24 | this access | | expressions.cs:255:13:255:30 | access to event Click | expressions.cs:255:13:255:24 | access to field CancelButton | | expressions.cs:255:52:255:68 | access to method CancelButtonClick | expressions.cs:255:52:255:68 | this access | +| expressions.cs:271:16:271:24 | call to method | expressions.cs:271:16:271:24 | this access | | expressions.cs:279:44:279:52 | access to property Length | expressions.cs:279:44:279:45 | access to parameter iv | | expressions.cs:280:33:280:41 | access to property Length | expressions.cs:280:33:280:34 | access to parameter iv | | expressions.cs:281:17:281:23 | access to indexer | expressions.cs:281:17:281:20 | access to local variable temp | | expressions.cs:281:27:281:31 | access to indexer | expressions.cs:281:27:281:28 | access to parameter iv | +| expressions.cs:292:11:292:27 | call to method | expressions.cs:292:11:292:27 | this access | +| expressions.cs:306:19:306:23 | call to method | expressions.cs:306:19:306:23 | this access | +| expressions.cs:311:16:311:20 | call to method | expressions.cs:311:16:311:20 | this access | | expressions.cs:315:13:315:22 | access to field value | expressions.cs:315:13:315:16 | this access | | expressions.cs:320:20:320:26 | access to field value | expressions.cs:320:20:320:20 | access to parameter d | +| expressions.cs:330:11:330:32 | call to method | expressions.cs:330:11:330:32 | this access | +| expressions.cs:341:18:341:22 | call to method | expressions.cs:341:18:341:22 | this access | | expressions.cs:346:37:346:37 | access to field x | expressions.cs:346:37:346:37 | this access | | expressions.cs:346:48:346:48 | access to field x | expressions.cs:346:48:346:48 | this access | | expressions.cs:347:37:347:37 | access to field y | expressions.cs:347:37:347:37 | this access | | expressions.cs:347:48:347:48 | access to field y | expressions.cs:347:48:347:48 | this access | +| expressions.cs:351:18:351:26 | call to method | expressions.cs:351:18:351:26 | this access | | expressions.cs:356:40:356:41 | access to field p1 | expressions.cs:356:40:356:41 | this access | | expressions.cs:356:52:356:53 | access to field p1 | expressions.cs:356:52:356:53 | this access | | expressions.cs:357:40:357:41 | access to field p2 | expressions.cs:357:40:357:41 | this access | | expressions.cs:357:52:357:53 | access to field p2 | expressions.cs:357:52:357:53 | this access | +| expressions.cs:361:18:361:27 | call to method | expressions.cs:361:18:361:27 | this access | | expressions.cs:364:15:364:16 | access to field p1 | expressions.cs:364:15:364:16 | this access | | expressions.cs:365:15:365:16 | access to field p2 | expressions.cs:365:15:365:16 | this access | | expressions.cs:367:40:367:41 | access to field p1 | expressions.cs:367:40:367:41 | this access | | expressions.cs:368:40:368:41 | access to field p2 | expressions.cs:368:40:368:41 | this access | +| expressions.cs:372:18:372:24 | call to method | expressions.cs:372:18:372:24 | this access | | expressions.cs:376:22:376:33 | access to field phoneNumbers | expressions.cs:376:22:376:33 | this access | | expressions.cs:378:43:378:46 | access to field name | expressions.cs:378:43:378:46 | this access | | expressions.cs:378:57:378:60 | access to field name | expressions.cs:378:57:378:60 | this access | | expressions.cs:379:57:379:68 | access to field phoneNumbers | expressions.cs:379:57:379:68 | this access | +| expressions.cs:383:18:383:30 | call to method | expressions.cs:383:18:383:30 | this access | | expressions.cs:455:29:455:47 | call to method WriteLine | expressions.cs:455:29:455:35 | access to type Console | +| expressions.cs:463:11:463:23 | call to method | expressions.cs:463:11:463:23 | this access | +| expressions.cs:481:20:481:22 | call to method | expressions.cs:481:20:481:22 | this access | | expressions.cs:483:17:483:26 | access to field value | expressions.cs:483:17:483:20 | this access | | expressions.cs:488:32:488:39 | access to field value | expressions.cs:488:32:488:33 | access to parameter c1 | | expressions.cs:488:43:488:50 | access to field value | expressions.cs:488:43:488:44 | access to parameter c2 | +| expressions.cs:495:11:495:25 | call to method | expressions.cs:495:11:495:25 | this access | +| expressions.cs:501:11:501:20 | call to method | expressions.cs:501:11:501:20 | this access | +| expressions.cs:513:12:513:24 | call to method | expressions.cs:513:12:513:24 | this access | +| expressions.cs:518:11:518:17 | call to method | expressions.cs:518:11:518:17 | this access | +| expressions.cs:520:11:520:17 | call to method | expressions.cs:520:11:520:17 | this access | +| expressions.cs:522:11:522:33 | call to method | expressions.cs:522:11:522:33 | this access | | expressions.cs:530:21:530:25 | call to method Api | expressions.cs:530:21:530:25 | this access | diff --git a/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected b/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected index ae15431d964..0407c9b3e39 100644 --- a/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected +++ b/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected @@ -1,6 +1,7 @@ methodCallTargets | methods.cs:14:60:14:73 | call to method Ext3`1 | methods.cs:14:28:14:34 | Ext3`1 | Ext3(T, int) | | methods.cs:16:60:16:74 | call to method Ext4`1 | methods.cs:16:28:16:34 | Ext4`1 | Ext4(T, int) | +| methods.cs:19:18:19:24 | call to method | methods.cs:19:18:19:24 | | () | | methods.cs:23:13:23:22 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, int) | | methods.cs:24:13:24:27 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, int) | | methods.cs:25:13:25:30 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, double) | diff --git a/csharp/ql/test/library-tests/goto/Goto1.expected b/csharp/ql/test/library-tests/goto/Goto1.expected index 0baaf5ef723..137c1b7241c 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.expected +++ b/csharp/ql/test/library-tests/goto/Goto1.expected @@ -1,6 +1,8 @@ | goto.cs:2:7:2:10 | call to constructor Object | goto.cs:2:7:2:10 | {...} | semmle.label | successor | -| goto.cs:2:7:2:10 | enter Goto | goto.cs:2:7:2:10 | call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | call to method | goto.cs:2:7:2:10 | call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | enter Goto | goto.cs:2:7:2:10 | this access | semmle.label | successor | | goto.cs:2:7:2:10 | exit Goto (normal) | goto.cs:2:7:2:10 | exit Goto | semmle.label | successor | +| goto.cs:2:7:2:10 | this access | goto.cs:2:7:2:10 | call to method | semmle.label | successor | | goto.cs:2:7:2:10 | {...} | goto.cs:2:7:2:10 | exit Goto (normal) | semmle.label | successor | | goto.cs:4:17:4:20 | enter Main | goto.cs:5:5:20:5 | {...} | semmle.label | successor | | goto.cs:4:17:4:20 | exit Main (normal) | goto.cs:4:17:4:20 | exit Main | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/implicittostring/implicitToString.expected b/csharp/ql/test/library-tests/implicittostring/implicitToString.expected index 14efebf2320..e42817cc306 100644 --- a/csharp/ql/test/library-tests/implicittostring/implicitToString.expected +++ b/csharp/ql/test/library-tests/implicittostring/implicitToString.expected @@ -1,3 +1,8 @@ +| implicitToString.cs:3:14:3:33 | call to method | TestImplicitToString | +| implicitToString.cs:5:18:5:26 | call to method | Container | +| implicitToString.cs:13:18:13:27 | call to method | Container2 | +| implicitToString.cs:15:18:15:27 | call to method | Container3 | +| implicitToString.cs:17:18:17:37 | call to method | FormattableContainer | | implicitToString.cs:35:27:35:35 | call to method ToString | Container | | implicitToString.cs:37:22:37:30 | call to method ToString | Container | | implicitToString.cs:39:22:39:30 | call to method ToString | Container | diff --git a/csharp/ql/test/library-tests/locations/locations.expected b/csharp/ql/test/library-tests/locations/locations.expected index d41369ddcd4..1d19fc3f0c5 100644 --- a/csharp/ql/test/library-tests/locations/locations.expected +++ b/csharp/ql/test/library-tests/locations/locations.expected @@ -19,6 +19,7 @@ member_locations | A.cs:3:23:3:26 | A | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | | A.cs:3:23:3:26 | A | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | | A.cs:3:23:3:26 | A | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | +| A.cs:3:23:3:26 | A`1 | A.cs:3:23:3:26 | | A.cs:3:23:3:26 | A.cs:3:23:3:26 | | A.cs:3:23:3:26 | A`1 | A.cs:5:23:5:26 | Prop | A.cs:5:23:5:26 | A.cs:5:23:5:26 | | A.cs:3:23:3:26 | A`1 | A.cs:6:23:6:26 | Item | A.cs:6:23:6:26 | A.cs:6:23:6:26 | | A.cs:3:23:3:26 | A`1 | A.cs:7:40:7:44 | Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | @@ -29,12 +30,14 @@ member_locations | A.cs:3:23:3:26 | A`1 | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | | A.cs:3:23:3:26 | A`1 | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | | A.cs:3:23:3:26 | A`1 | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | +| A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A2 | A.cs:19:28:19:31 | Prop | A.cs:19:28:19:31 | A.cs:19:28:19:31 | | A.cs:17:14:17:15 | A2 | A.cs:21:28:21:31 | Item | A.cs:21:28:21:31 | A.cs:21:28:21:31 | | A.cs:17:14:17:15 | A2 | A.cs:27:40:27:44 | Event | A.cs:27:40:27:44 | A.cs:27:40:27:44 | | A.cs:17:14:17:15 | A2 | A.cs:33:28:33:35 | ToObject | A.cs:33:28:33:35 | A.cs:33:28:33:35 | | A.cs:17:14:17:15 | A2 | A.cs:35:17:35:17 | M | A.cs:35:17:35:17 | A.cs:35:17:35:17 | +| B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B | B.cs:5:25:5:28 | Prop | B.cs:5:25:5:28 | B.cs:5:25:5:28 | | B.cs:3:14:3:14 | B | B.cs:7:25:7:28 | Item | B.cs:7:25:7:28 | B.cs:7:25:7:28 | @@ -44,21 +47,32 @@ member_locations | Base.cs:1:23:1:29 | Base | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:26 | Base | Base.cs:1:23:1:26 | Base.cs:1:23:1:26 | +| Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:29 | | Base.cs:1:23:1:29 | Base.cs:1:23:1:29 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:27 | Base2 | Base.cs:8:23:8:27 | Base.cs:8:23:8:27 | +| Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:30 | | Base.cs:8:23:8:30 | Base.cs:8:23:8:30 | +| C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C | C.cs:5:17:5:17 | M | C.cs:5:17:5:17 | C.cs:5:17:5:17 | +| Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:7:33:7:33 | M | Multiple1.cs:7:33:7:33 | Multiple1.cs:7:33:7:33 | +| Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:7:17:7:17 | M | Multiple2.cs:7:17:7:17 | Multiple2.cs:7:17:7:17 | +| Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:3:17:3:20 | SubM | Sub.cs:3:17:3:20 | Sub.cs:3:17:3:20 | accessor_location diff --git a/csharp/ql/test/library-tests/nullable/NullableExpressions.expected b/csharp/ql/test/library-tests/nullable/NullableExpressions.expected index 675450ab2ee..7d66522f0b9 100644 --- a/csharp/ql/test/library-tests/nullable/NullableExpressions.expected +++ b/csharp/ql/test/library-tests/nullable/NullableExpressions.expected @@ -1,4 +1,6 @@ | 1 | 14 | nullable.cs:1:14:1:21 | Nullable | nullable.cs:1:14:1:21 | call to constructor Object | Object | +| 1 | 14 | nullable.cs:1:14:1:21 | Nullable | nullable.cs:1:14:1:21 | call to method | Void | +| 1 | 14 | nullable.cs:1:14:1:21 | call to method | nullable.cs:1:14:1:21 | this access | Nullable | | 5 | 13 | nullable.cs:5:9:6:24 | if (...) ... | nullable.cs:5:13:5:21 | ... == ... | Boolean | | 5 | 13 | nullable.cs:5:13:5:21 | ... == ... | nullable.cs:5:13:5:13 | access to parameter x | Nullable | | 5 | 18 | nullable.cs:5:13:5:21 | ... == ... | nullable.cs:5:18:5:21 | null | null | diff --git a/csharp/ql/test/library-tests/overlay/base/test.expected b/csharp/ql/test/library-tests/overlay/base/test.expected index 0c2b5750f2c..67a440b87db 100644 --- a/csharp/ql/test/library-tests/overlay/base/test.expected +++ b/csharp/ql/test/library-tests/overlay/base/test.expected @@ -1,5 +1,7 @@ expressions | A.cs:8:16:8:16 | call to constructor Object | +| A.cs:8:16:8:16 | call to method | +| A.cs:8:16:8:16 | this access | | A.cs:10:13:10:16 | access to field name | | A.cs:10:13:10:16 | this access | | A.cs:10:13:10:20 | ... = ... | @@ -34,7 +36,11 @@ expressions | A.cs:58:27:58:30 | this access | | A.cs:59:20:59:20 | access to local variable x | | A.cs:63:18:63:36 | call to constructor Attribute | +| A.cs:63:18:63:36 | call to method | +| A.cs:63:18:63:36 | this access | | A.cs:65:18:65:18 | call to constructor Object | +| A.cs:65:18:65:18 | call to method | +| A.cs:65:18:65:18 | this access | | Program.cs:9:17:9:20 | access to parameter args | | Program.cs:9:17:9:27 | access to property Length | | Program.cs:9:17:9:32 | ... == ... | @@ -56,6 +62,8 @@ expressions | Program.cs:16:31:16:31 | access to local variable a | | Program.cs:16:31:16:42 | call to method ToString | | Program.cs:21:16:21:22 | call to constructor Object | +| Program.cs:21:16:21:22 | call to method | +| Program.cs:21:16:21:22 | this access | | Program.cs:23:13:23:23 | access to field programName | | Program.cs:23:13:23:23 | this access | | Program.cs:23:13:23:27 | ... = ... | @@ -77,6 +85,8 @@ expressions | Program.cs:51:35:51:59 | "Program handler removed" | | Program.cs:57:20:57:20 | access to parameter b | | Program.cs:64:18:64:33 | call to constructor Attribute | +| Program.cs:64:18:64:33 | call to method | +| Program.cs:64:18:64:33 | this access | statements | A.cs:9:9:11:9 | {...} | | A.cs:10:13:10:21 | ...; | diff --git a/csharp/ql/test/library-tests/overlay/overlay/test.expected b/csharp/ql/test/library-tests/overlay/overlay/test.expected index d9d4d0ec6fe..bb9a82b3a23 100644 --- a/csharp/ql/test/library-tests/overlay/overlay/test.expected +++ b/csharp/ql/test/library-tests/overlay/overlay/test.expected @@ -1,6 +1,10 @@ expressions | A.cs:5:18:5:18 | call to constructor Object | +| A.cs:5:18:5:18 | call to method | +| A.cs:5:18:5:18 | this access | | A.cs:10:16:10:16 | call to constructor Object | +| A.cs:10:16:10:16 | call to method | +| A.cs:10:16:10:16 | this access | | A.cs:12:13:12:16 | access to field name | | A.cs:12:13:12:16 | this access | | A.cs:12:13:12:20 | ... = ... | @@ -40,6 +44,8 @@ expressions | A.cs:64:24:64:27 | this access | | A.cs:64:24:64:37 | call to method ToUpper | | A.cs:69:18:69:36 | call to constructor Attribute | +| A.cs:69:18:69:36 | call to method | +| A.cs:69:18:69:36 | this access | | Program.cs:9:17:9:20 | access to parameter args | | Program.cs:9:17:9:27 | access to property Length | | Program.cs:9:17:9:32 | ... == ... | @@ -61,6 +67,8 @@ expressions | Program.cs:16:31:16:31 | access to local variable a | | Program.cs:16:31:16:42 | call to method ToString | | Program.cs:21:16:21:22 | call to constructor Object | +| Program.cs:21:16:21:22 | call to method | +| Program.cs:21:16:21:22 | this access | | Program.cs:23:13:23:23 | access to field programName | | Program.cs:23:13:23:23 | this access | | Program.cs:23:13:23:27 | ... = ... | @@ -82,6 +90,8 @@ expressions | Program.cs:51:35:51:59 | "Program handler removed" | | Program.cs:57:20:57:20 | access to parameter b | | Program.cs:64:18:64:33 | call to constructor Attribute | +| Program.cs:64:18:64:33 | call to method | +| Program.cs:64:18:64:33 | this access | statements | A.cs:5:18:5:18 | {...} | | A.cs:11:9:13:9 | {...} | diff --git a/csharp/ql/test/library-tests/partial/Partial2.expected b/csharp/ql/test/library-tests/partial/Partial2.expected index 9dc3a24a4ce..87194dd3f9e 100644 --- a/csharp/ql/test/library-tests/partial/Partial2.expected +++ b/csharp/ql/test/library-tests/partial/Partial2.expected @@ -1,10 +1,15 @@ +| Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:1:15:1:26 | | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:4:18:4:42 | PartialMethodWithoutBody1 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:5:17:5:23 | Method2 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:14:18:14:39 | PartialMethodWithBody1 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:15:17:15:23 | Method3 | +| Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:1:15:1:26 | | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:4:18:4:42 | PartialMethodWithoutBody1 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:5:17:5:23 | Method2 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:14:18:14:39 | PartialMethodWithBody1 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:15:17:15:23 | Method3 | +| Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:32:15:32:33 | | | Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:34:18:34:42 | PartialMethodWithoutBody2 | | Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:35:17:35:23 | Method4 | +| PartialMultipleFiles1.cs:1:22:1:41 | PartialMultipleFiles | PartialMultipleFiles1.cs:1:22:1:41 | | +| PartialMultipleFiles2.cs:1:22:1:41 | PartialMultipleFiles | PartialMultipleFiles1.cs:1:22:1:41 | | diff --git a/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected b/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected index bb3acba4f64..524249492d3 100644 --- a/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected +++ b/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected @@ -1,7 +1,15 @@ | BrokenTypes.cs:2:14:2:13 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:2:14:2:13 | call to method | Void | VoidType | +| BrokenTypes.cs:2:14:2:13 | this access | | UnknownType | | BrokenTypes.cs:5:14:5:16 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:5:14:5:16 | call to method | Void | VoidType | +| BrokenTypes.cs:5:14:5:16 | this access | var | UnknownType | | BrokenTypes.cs:7:14:7:14 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:7:14:7:14 | call to method | Void | VoidType | +| BrokenTypes.cs:7:14:7:14 | this access | C | Class | | BrokenTypes.cs:13:14:13:20 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:13:14:13:20 | call to method | Void | VoidType | +| BrokenTypes.cs:13:14:13:20 | this access | Program | Class | | BrokenTypes.cs:17:11:17:12 | access to local variable x1 | C | Class | | BrokenTypes.cs:17:11:17:22 | C x1 = ... | C | Class | | BrokenTypes.cs:17:16:17:22 | object creation of type C | C | Class | diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected index fab1dec1100..a42a3c662d4 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected @@ -1,6 +1,8 @@ | ControlFlow.cs:3:7:3:9 | call to constructor Object | ControlFlow.cs:3:7:3:9 | {...} | -| ControlFlow.cs:3:7:3:9 | enter Cfg | ControlFlow.cs:3:7:3:9 | call to constructor Object | +| ControlFlow.cs:3:7:3:9 | call to method | ControlFlow.cs:3:7:3:9 | call to constructor Object | +| ControlFlow.cs:3:7:3:9 | enter Cfg | ControlFlow.cs:3:7:3:9 | this access | | ControlFlow.cs:3:7:3:9 | exit Cfg (normal) | ControlFlow.cs:3:7:3:9 | exit Cfg | +| ControlFlow.cs:3:7:3:9 | this access | ControlFlow.cs:3:7:3:9 | call to method | | ControlFlow.cs:3:7:3:9 | {...} | ControlFlow.cs:3:7:3:9 | exit Cfg (normal) | | ControlFlow.cs:5:10:5:10 | enter F | ControlFlow.cs:6:5:11:5 | {...} | | ControlFlow.cs:5:10:5:10 | exit F (normal) | ControlFlow.cs:5:10:5:10 | exit F | diff --git a/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected b/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected index a4a2aa6e7a8..791cd3450e8 100644 --- a/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected +++ b/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected @@ -1,10 +1,15 @@ | errors.cs:13:11:13:12 | errors.cs:13:11:13:12 | call to constructor Object | Object | +| errors.cs:13:11:13:12 | errors.cs:13:11:13:12 | call to method | | | errors.cs:22:31:22:40 | errors.cs:22:31:22:40 | call to method | none | | errors.cs:41:21:41:28 | errors.cs:41:21:41:28 | object creation of type C1 | C1 | | errors.cs:42:13:42:19 | errors.cs:42:13:42:19 | call to method m1 | m1 | | errors.cs:43:13:43:19 | errors.cs:43:13:43:19 | call to method m2 | m2 | | errors.cs:44:13:44:38 | errors.cs:44:13:44:38 | call to method WriteLine | WriteLine | | errors.cs:48:11:48:12 | errors.cs:48:11:48:12 | call to constructor Object | Object | +| errors.cs:48:11:48:12 | errors.cs:48:11:48:12 | call to method | | | errors.cs:51:17:51:25 | errors.cs:51:17:51:25 | object creation of type C2 | none | | errors.cs:65:11:65:12 | errors.cs:65:11:65:12 | call to constructor Object | Object | +| errors.cs:65:11:65:12 | errors.cs:65:11:65:12 | call to method | | | errors.cs:70:11:70:12 | errors.cs:70:11:70:12 | call to constructor Object | Object | +| errors.cs:70:11:70:12 | errors.cs:70:11:70:12 | call to method | | +| errors.cs:79:11:79:12 | errors.cs:79:11:79:12 | call to method | | diff --git a/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected b/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected index 8c4346f7832..3f724bc4902 100644 --- a/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected +++ b/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected @@ -4,5 +4,6 @@ compilationErrors | standalone.cs:16:12:16:18 | CS0104: 'ILogger' is an ambiguous reference between 'A.ILogger' and 'B.ILogger' | methodCalls +| standalone.cs:14:14:14:14 | call to method | | standalone.cs:20:9:20:21 | call to method | | standalone.cs:25:9:25:33 | call to method | diff --git a/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected b/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected index 9d3c935266a..0f131d8c25c 100644 --- a/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected +++ b/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected @@ -52,6 +52,8 @@ same | StructuralComparison.cs:50:18:50:21 | access to property Prop | StructuralComparison.cs:51:18:51:26 | access to property Prop | gvn | StructuralComparison.cs:3:14:3:18 | call to constructor Object | (kind:Expr(79)) | +| StructuralComparison.cs:3:14:3:18 | call to method | ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:3:14:3:18 | this access | (kind:Expr(12),false,Class) | | StructuralComparison.cs:3:14:3:18 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:5:26:5:26 | access to field x | (kind:Expr(16),true,x) | | StructuralComparison.cs:5:26:5:26 | this access | (kind:Expr(12)) | @@ -148,8 +150,12 @@ gvn | StructuralComparison.cs:28:15:28:15 | access to field x | (kind:Expr(16),true,x) | | StructuralComparison.cs:28:15:28:15 | this access | (kind:Expr(12),false,Class) | | StructuralComparison.cs:32:14:32:22 | call to constructor Object | (kind:Expr(79)) | +| StructuralComparison.cs:32:14:32:22 | call to method | ((kind:Expr(12),false,BaseClass) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:32:14:32:22 | this access | (kind:Expr(12),false,BaseClass) | | StructuralComparison.cs:32:14:32:22 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:38:14:38:25 | call to constructor BaseClass | (kind:Expr(79)) | +| StructuralComparison.cs:38:14:38:25 | call to method | ((kind:Expr(12),false,DerivedClass) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:38:14:38:25 | this access | (kind:Expr(12),false,DerivedClass) | | StructuralComparison.cs:38:14:38:25 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:41:5:45:5 | {...} | ((((kind:Expr(14),false,x3) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x2) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) | | StructuralComparison.cs:42:9:42:28 | ... ...; | (((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) | From ba7b517a4a161fb4ad958bc361770766c06b518c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 28 Nov 2025 11:05:04 +0100 Subject: [PATCH 020/194] C#: Tweaks from review comments. --- .../Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs index d690e19e08a..ce07e56508d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs @@ -5,7 +5,7 @@ namespace Semmle.Extraction.CSharp.Entities { internal sealed class ObjectInitMethod : CachedEntity, IMethodEntity { - Type ContainingType { get; } + private Type ContainingType { get; } private ObjectInitMethod(Context cx, Type containingType) : base(cx) @@ -13,7 +13,7 @@ namespace Semmle.Extraction.CSharp.Entities this.ContainingType = containingType; } - public string Name => ""; + public static readonly string Name = ""; public static ObjectInitMethod Create(Context cx, Type containingType) { From 2eb2a50ccd343923aa5a54dc15761fe5edf04a0a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Dec 2025 13:11:00 +0100 Subject: [PATCH 021/194] C#: Fix enclosing DataFlowCallable of ObjectInitMethods with multiple bodies. --- .../csharp/dataflow/internal/DataFlowDispatch.qll | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index 31956756c60..c7d34a38979 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -27,6 +27,12 @@ newtype TReturnKind = private predicate hasMultipleSourceLocations(Callable c) { strictcount(getASourceLocation(c)) > 1 } +private predicate objectInitEntry(ObjectInitMethod m, ControlFlowElement first) { + exists(ControlFlow::Nodes::EntryNode en | + en.getCallable() = m and first.getControlFlowNode() = en.getASuccessor() + ) +} + private module NearestBodyLocationInput implements NearestLocationInputSig { class C = ControlFlowElement; @@ -34,7 +40,7 @@ private module NearestBodyLocationInput implements NearestLocationInputSig { exists(Callable c | hasMultipleSourceLocations(c) and l1 = getASourceLocation(c) and - body = c.getBody() and + (body = c.getBody() or objectInitEntry(c, body)) and l2 = body.getLocation() ) } @@ -207,7 +213,9 @@ class DataFlowCallable extends TDataFlowCallable { private ControlFlow::Nodes::ElementNode getAMultiBodyEntryNode(ControlFlow::BasicBlock bb, int i) { this.isMultiBodied() and exists(ControlFlowElement body, Location l | - body = this.asCallable(l).getBody() and + body = this.asCallable(l).getBody() or + objectInitEntry(this.asCallable(l), body) + | NearestLocation::nearestLocation(body, l, _) and result = body.getAControlFlowEntryNode() ) and From 67a2bced0d6129c640eb3309b22c30cf682db74f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Dec 2025 13:17:24 +0100 Subject: [PATCH 022/194] C#: Accept CFG dead ends for compilation errors. --- .../errorrecovery/CONSISTENCY/CfgConsistency.expected | 2 ++ .../IncomparableEquals/CONSISTENCY/CfgConsistency.expected | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected create mode 100644 csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected diff --git a/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected new file mode 100644 index 00000000000..30469b120b6 --- /dev/null +++ b/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected @@ -0,0 +1,2 @@ +deadEnd +| errors.cs:79:11:79:12 | call to method | diff --git a/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected new file mode 100644 index 00000000000..205e8553b18 --- /dev/null +++ b/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected @@ -0,0 +1,2 @@ +deadEnd +| IncomparableEquals.cs:45:7:45:8 | call to method | From 5d63b6e723cb3e14469f6a58cbfdfcf37a6c28ee Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Dec 2025 14:01:16 +0100 Subject: [PATCH 023/194] C#: Accept integration test change --- .../standalone/DatabaseQualityDiagnostics.expected | 8 ++++---- .../all-platforms/standalone_resx/Members.expected | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected b/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected index e9b4f2e2428..662b7d18f72 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected @@ -1,6 +1,6 @@ diagnosticAttributes -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityCliSummaryTable | true | -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityStatusPage | true | -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityTelemetry | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityCliSummaryTable | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityStatusPage | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityTelemetry | true | #select -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | 1 | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | 1 | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected b/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected index 469a8556db6..0de697aab2d 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected @@ -1,4 +1,5 @@ | Program | Program.
$ | +| Program | Program. | | Program | Program.Program | | Resx.Test1.Test2.test | Resx.Test1.Test2.test.Culture | | Resx.Test1.Test2.test | Resx.Test1.Test2.test.GetResourceString | From afb810cdebbbee77184d79c9557d7ea59da2938e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 27 Nov 2025 22:19:24 +0000 Subject: [PATCH 024/194] Fix double space in change note --- .../2025-11-26-unexpected-frontend-errors-query-moved.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md b/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md index 7d6ca378a15..cf4b724dbd9 100644 --- a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md +++ b/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md @@ -1,4 +1,4 @@ --- category: breaking --- -* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. +* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. From 9bf20702c6c640f80cde2b53b8ddc898c1e4258e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 26 Nov 2025 10:15:06 +0000 Subject: [PATCH 025/194] Remove identity steps --- .../go/dataflow/internal/DataFlowPrivate.qll | 3 ++- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 4 ---- .../CONSISTENCY/DataFlowConsistency.expected | 22 ------------------- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 11 ---------- .../CONSISTENCY/DataFlowConsistency.expected | 11 ---------- .../CONSISTENCY/DataFlowConsistency.expected | 8 ------- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 2 -- .../CONSISTENCY/DataFlowConsistency.expected | 6 ----- .../CONSISTENCY/DataFlowConsistency.expected | 6 ----- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 2 -- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 19 ---------------- .../CONSISTENCY/DataFlowConsistency.expected | 5 ----- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 2 -- .../CONSISTENCY/DataFlowConsistency.expected | 3 --- .../CONSISTENCY/DataFlowConsistency.expected | 11 ---------- .../CONSISTENCY/DataFlowConsistency.expected | 9 -------- 22 files changed, 2 insertions(+), 140 deletions(-) delete mode 100644 go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 94609d1c111..76b0ef363e3 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -89,7 +89,8 @@ predicate basicLocalFlowStep(Node nodeFrom, Node nodeTo) { nodeFrom = instructionNode(pred) or nodeFrom.(PostUpdateNode).getPreUpdateNode() = instructionNode(pred) ) and - nodeTo = instructionNode(succ) + nodeTo = instructionNode(succ) and + nodeTo != nodeFrom ) or // GlobalFunctionNode -> use diff --git a/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 9d975bcaeb8..00000000000 --- a/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| main.go:46:18:46:18 | n | Node steps to itself | -| main.go:47:3:47:3 | c | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index df35beab366..00000000000 --- a/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,4 +0,0 @@ -identityLocalStep -| DatabaseCallInLoop.go:9:3:9:4 | db | Node steps to itself | -| test.go:21:12:21:13 | db | Node steps to itself | -| test.go:25:15:25:16 | db | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected index 11c64c03775..455781c6b15 100644 --- a/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected @@ -34,25 +34,3 @@ reverseRead | test.go:92:19:92:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:93:5:93:11 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:94:9:94:15 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:114:37:114:38 | rc | Node steps to itself | -| test.go:198:27:198:29 | out | Node steps to itself | -| test.go:224:27:224:29 | out | Node steps to itself | -| test.go:249:27:249:29 | out | Node steps to itself | -| test.go:274:27:274:29 | out | Node steps to itself | -| test.go:299:27:299:29 | out | Node steps to itself | -| test.go:324:26:324:28 | out | Node steps to itself | -| test.go:349:26:349:28 | out | Node steps to itself | -| test.go:375:28:375:30 | out | Node steps to itself | -| test.go:403:28:403:30 | out | Node steps to itself | -| test.go:431:24:431:26 | out | Node steps to itself | -| test.go:463:26:463:28 | out | Node steps to itself | -| test.go:490:26:490:28 | out | Node steps to itself | -| test.go:517:27:517:29 | out | Node steps to itself | -| test.go:546:26:546:28 | out | Node steps to itself | -| test.go:571:26:571:28 | out | Node steps to itself | -| test.go:601:24:601:26 | out | Node steps to itself | -| test.go:614:15:614:21 | tarRead | Node steps to itself | -| test.go:622:3:622:7 | files | Node steps to itself | -| test.go:637:10:637:16 | tarRead | Node steps to itself | -| test.go:647:10:647:16 | tarRead | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected index 97c042bc984..736ff52258f 100644 --- a/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected @@ -13,6 +13,3 @@ reverseRead | CorsMisconfiguration.go:170:14:170:16 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | CorsMisconfiguration.go:194:17:194:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | CorsMisconfiguration.go:206:14:206:16 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| CorsMisconfiguration.go:208:13:208:18 | origin | Node steps to itself | -| CorsMisconfiguration.go:235:6:235:8 | try | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected index 00f675090d5..44b43af6887 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected @@ -2,14 +2,3 @@ reverseRead | test.go:90:10:90:15 | taint8 | Origin of readStep is missing a PostUpdateNode. | | test.go:104:12:104:18 | taint10 | Origin of readStep is missing a PostUpdateNode. | | test.go:150:10:150:14 | slice | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:92:3:92:3 | b | Node steps to itself | -| test.go:95:3:95:3 | b | Node steps to itself | -| test.go:106:3:106:3 | b | Node steps to itself | -| test.go:109:3:109:3 | b | Node steps to itself | -| test.go:119:3:119:3 | b | Node steps to itself | -| test.go:122:3:122:3 | b | Node steps to itself | -| test.go:125:3:125:3 | b | Node steps to itself | -| test.go:128:3:128:3 | b | Node steps to itself | -| test.go:138:3:138:3 | b | Node steps to itself | -| test.go:141:3:141:3 | b | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected index 00f675090d5..44b43af6887 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected @@ -2,14 +2,3 @@ reverseRead | test.go:90:10:90:15 | taint8 | Origin of readStep is missing a PostUpdateNode. | | test.go:104:12:104:18 | taint10 | Origin of readStep is missing a PostUpdateNode. | | test.go:150:10:150:14 | slice | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:92:3:92:3 | b | Node steps to itself | -| test.go:95:3:95:3 | b | Node steps to itself | -| test.go:106:3:106:3 | b | Node steps to itself | -| test.go:109:3:109:3 | b | Node steps to itself | -| test.go:119:3:119:3 | b | Node steps to itself | -| test.go:122:3:122:3 | b | Node steps to itself | -| test.go:125:3:125:3 | b | Node steps to itself | -| test.go:128:3:128:3 | b | Node steps to itself | -| test.go:138:3:138:3 | b | Node steps to itself | -| test.go:141:3:141:3 | b | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected index 4952a904ea1..380c4e98ed3 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected @@ -18,11 +18,3 @@ reverseRead | test_jmoiron_sqlx.go:263:8:263:11 | rows | Origin of readStep is missing a PostUpdateNode. | | test_jmoiron_sqlx.go:265:6:265:9 | rows | Origin of readStep is missing a PostUpdateNode. | | test_jmoiron_sqlx.go:268:9:268:12 | rows | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test_couchbase_gocb_v1.go:20:6:20:7 | r1 | Node steps to itself | -| test_couchbase_gocb_v1.go:40:6:40:7 | r2 | Node steps to itself | -| test_mongo_driver_mongo.go:80:24:80:26 | ctx | Node steps to itself | -| test_mongo_driver_mongo.go:103:24:103:26 | ctx | Node steps to itself | -| test_mongo_driver_mongo.go:116:24:116:26 | ctx | Node steps to itself | -| test_uptrace_bun.go:27:3:27:4 | db | Node steps to itself | -| test_uptrace_bun.go:27:14:27:16 | ctx | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected index 8dea84a9baa..42b10a988b5 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected @@ -14,6 +14,3 @@ reverseRead | test.go:318:20:318:22 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:324:17:324:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:324:17:324:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:278:3:278:14 | genericFiles | Node steps to itself | -| test.go:278:21:278:25 | files | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected index da13da71339..5c8b3afb80b 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected @@ -169,5 +169,3 @@ reverseRead | examples/booking/app/models/booking.go:82:14:82:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/models/booking.go:83:17:83:17 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/models/booking.go:84:18:84:18 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| examples/booking/app/controllers/app.go:95:10:95:10 | c | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected index 1a7df06cbc3..d4e53cf33a9 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected @@ -95,9 +95,3 @@ reverseRead | rpc/notes/service.twirp.go:1278:11:1278:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | rpc/notes/service.twirp.go:1292:23:1292:26 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | server/main.go:33:19:33:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| rpc/notes/service.twirp.go:60:6:60:15 | clientOpts | Node steps to itself | -| rpc/notes/service.twirp.go:199:6:199:15 | clientOpts | Node steps to itself | -| rpc/notes/service.twirp.go:852:6:852:15 | serverOpts | Node steps to itself | -| rpc/notes/service.twirp.go:854:29:854:38 | serverOpts | Node steps to itself | -| rpc/notes/service.twirp.go:965:4:965:9 | copied | Node steps to itself | diff --git a/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index a809e973823..00000000000 --- a/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,6 +0,0 @@ -identityLocalStep -| InconsistentLoopOrientation.go:6:3:6:3 | a | Node steps to itself | -| InconsistentLoopOrientationGood.go:6:3:6:3 | a | Node steps to itself | -| main.go:9:26:9:26 | s | Node steps to itself | -| main.go:14:29:14:29 | l | Node steps to itself | -| main.go:20:3:20:3 | a | Node steps to itself | diff --git a/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 1fcbd26f084..00000000000 --- a/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| LengthComparisonOffByOne.go:10:19:10:28 | searchName | Node steps to itself | -| LengthComparisonOffByOneGood.go:9:14:9:23 | searchName | Node steps to itself | diff --git a/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected index e6771e5ce32..fbede1f2120 100644 --- a/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected @@ -1,4 +1,2 @@ reverseRead | testdata.go:206:7:206:7 | x | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| testdata.go:583:7:583:7 | x | Node steps to itself | diff --git a/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 2627a5f7699..00000000000 --- a/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| main.go:35:6:35:9 | cond | Node steps to itself | -| main.go:44:6:44:9 | cond | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected index 145604efadd..69de1fc20fd 100644 --- a/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected @@ -1,22 +1,3 @@ reverseRead | TaintedPath.go:15:18:15:18 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | TaintedPath.go:84:28:84:32 | files | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UnsafeUnzipSymlink.go:26:18:26:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:30:29:30:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:42:22:42:27 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:58:18:58:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:62:3:62:7 | links | Node steps to itself | -| UnsafeUnzipSymlink.go:79:18:79:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:85:29:85:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:94:18:94:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:98:29:98:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:121:32:121:32 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:125:29:125:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:146:32:146:32 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:150:29:150:34 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:30:18:30:18 | r | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:34:33:34:38 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:46:26:46:31 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:72:18:72:18 | r | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:76:41:76:46 | target | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected index 0cc91974450..0b22e7c6251 100644 --- a/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected @@ -19,8 +19,3 @@ reverseRead | tst.go:48:14:48:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | tst.go:66:15:66:15 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | websocketXss.go:26:9:26:9 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| StoredXss.go:13:18:13:18 | w | Node steps to itself | -| StoredXssGood.go:17:3:17:10 | template | Node steps to itself | -| stored.go:30:19:30:19 | w | Node steps to itself | -| stored.go:51:20:51:20 | w | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected index 44f59b2c63a..9161b6f3eb9 100644 --- a/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected @@ -29,6 +29,3 @@ reverseRead | server1.go:14:11:14:14 | vals | Origin of readStep is missing a PostUpdateNode. | | server1.go:17:41:17:41 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | server1.go:21:46:21:46 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| klog.go:24:20:24:23 | name | Node steps to itself | -| server1.go:29:3:29:3 | s | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected index ed110299878..95bea8fef59 100644 --- a/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected @@ -2,5 +2,3 @@ reverseRead | UnsafeTLS.go:329:32:329:37 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UnsafeTLS.go:336:33:336:38 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UnsafeTLS.go:353:40:353:45 | suites | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UnsafeTLS.go:353:40:353:45 | suites | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 85404bf715a..00000000000 --- a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| InsecureRandomness.go:12:3:12:3 | s | Node steps to itself | -| InsecureRandomnessGood.go:15:3:15:3 | s | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected index fdbbb022898..215578883b2 100644 --- a/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected @@ -4,14 +4,3 @@ reverseRead | UncontrolledAllocationSizeGood.go:32:12:32:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UncontrolledAllocationSizeGood.go:52:12:52:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UncontrolledAllocationSizeGood.go:73:12:73:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UncontrolledAllocationSizeBad.go:21:18:21:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeBad.go:22:3:22:8 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:23:18:23:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:24:3:24:8 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:42:19:42:22 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:43:4:43:9 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:63:19:63:22 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:64:4:64:9 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:88:18:88:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:89:3:89:8 | result | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 3178a874bb3..00000000000 --- a/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,9 +0,0 @@ -identityLocalStep -| HardcodedKeysGood.go:20:3:20:5 | ret | Node steps to itself | -| sanitizer.go:26:3:26:7 | bytes | Node steps to itself | -| sanitizer.go:39:3:39:5 | ret | Node steps to itself | -| sanitizer.go:49:3:49:7 | bytes | Node steps to itself | -| sanitizer.go:70:12:70:17 | length | Node steps to itself | -| sanitizer.go:71:27:71:33 | sources | Node steps to itself | -| sanitizer.go:71:35:71:35 | r | Node steps to itself | -| sanitizer.go:71:42:71:53 | sourceLength | Node steps to itself | From dcfa721037e71d150195265167a69db6e744c3f9 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 26 Nov 2025 10:17:49 +0000 Subject: [PATCH 026/194] (Refactor) Make `lookThroughImplicitFieldRead` public --- go/ql/lib/semmle/go/controlflow/IR.qll | 5 +++++ .../go/dataflow/internal/FlowSummaryImpl.qll | 16 ++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/go/ql/lib/semmle/go/controlflow/IR.qll b/go/ql/lib/semmle/go/controlflow/IR.qll index 2c8b673184e..144f0df6e7d 100644 --- a/go/ql/lib/semmle/go/controlflow/IR.qll +++ b/go/ql/lib/semmle/go/controlflow/IR.qll @@ -1588,4 +1588,9 @@ module IR { * in a field/method access, element access, or slice expression. */ EvalImplicitDerefInstruction implicitDerefInstruction(Expr e) { result = MkImplicitDeref(e) } + + /** Gets the base of `insn`, if `insn` is an implicit field read. */ + Instruction lookThroughImplicitFieldRead(Instruction insn) { + result = insn.(ImplicitFieldReadInstruction).getBaseInstruction() + } } diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index f12c9e6eeb1..f4ad3862da0 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -384,17 +384,13 @@ module SourceSinkInterpretationInput implements } private DataFlow::Node skipImplicitFieldReads(DataFlow::Node n) { - not exists(lookThroughImplicitFieldRead(n)) and result = n + not exists(IR::lookThroughImplicitFieldRead(n.asInstruction())) and result = n or - result = skipImplicitFieldReads(lookThroughImplicitFieldRead(n)) - } - - private DataFlow::Node lookThroughImplicitFieldRead(DataFlow::Node n) { - result.asInstruction() = - n.(DataFlow::InstructionNode) - .asInstruction() - .(IR::ImplicitFieldReadInstruction) - .getBaseInstruction() + exists(DataFlow::Node mid | + mid.asInstruction() = IR::lookThroughImplicitFieldRead(n.asInstruction()) + | + result = skipImplicitFieldReads(mid) + ) } /** Provides additional sink specification logic. */ From a20c8cfd52d9d0716491b290e279b7b299070d5c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 26 Nov 2025 10:18:02 +0000 Subject: [PATCH 027/194] Add post-update nodes for implicit field read nodes --- .../go/dataflow/internal/DataFlowNodes.qll | 6 ++- .../CONSISTENCY/DataFlowConsistency.expected | 6 --- .../CONSISTENCY/DataFlowConsistency.expected | 37 ---------------- .../CONSISTENCY/DataFlowConsistency.expected | 7 --- .../CONSISTENCY/DataFlowConsistency.expected | 20 --------- .../CONSISTENCY/DataFlowConsistency.expected | 2 - .../CONSISTENCY/DataFlowConsistency.expected | 44 ------------------- 7 files changed, 5 insertions(+), 117 deletions(-) delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected delete mode 100644 go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index a388e4bab04..4fb767e548c 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -838,7 +838,11 @@ module Public { exists(IR::MethodReadInstruction mri | ce.getTarget() instanceof Method and mri = IR::evalExprInstruction(ce.getCalleeExpr()) and - insn = mri.getReceiver() + // If a.x is reading a promoted field, and it's equivalent to a.b.c.x, + // then mri.getReceiver() will give us the implicit field read a.b.c + // and we want to have post-update nodes for a, the implicit field + // read a.b and the implicit field read a.b.c. + insn = IR::lookThroughImplicitFieldRead*(mri.getReceiver()) ) ) and mutableType(insn.getResultType()) diff --git a/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected index 32dec7bf9ad..d0324c7c4eb 100644 --- a/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected @@ -1,11 +1,5 @@ reverseRead -| pkg1/embedding.go:56:29:56:39 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:57:33:57:46 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:58:14:58:22 | implicit read of field embedder | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:58:31:58:42 | implicit read of field embedder | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:43:6:43:6 | t | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:46:6:46:6 | t | Origin of readStep is missing a PostUpdateNode. | -| pkg1/tst.go:50:2:50:2 | t | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:53:6:53:7 | t2 | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:55:6:55:7 | t2 | Origin of readStep is missing a PostUpdateNode. | -| promoted.go:18:6:18:6 | t | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 44cf180f3bb..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,37 +0,0 @@ -reverseRead -| test_methods.go:44:7:44:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:45:7:45:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:46:2:46:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:50:7:50:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:51:7:51:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:52:2:52:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:92:7:92:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:93:7:93:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:94:2:94:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:98:7:98:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:99:7:99:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:100:2:100:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:104:7:104:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:105:7:105:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:106:2:106:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:110:7:110:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:111:7:111:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:112:2:112:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:140:7:140:7 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:141:7:141:7 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:142:2:142:2 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:146:7:146:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:147:7:147:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:148:2:148:2 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:152:7:152:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:153:7:153:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:154:2:154:2 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:158:7:158:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:159:7:159:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:160:2:160:2 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:164:7:164:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:165:7:165:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:166:2:166:2 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:170:7:170:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:171:7:171:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:172:2:172:2 | t | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index f0b57ce6ab4..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,7 +0,0 @@ -reverseRead -| methods.go:48:2:48:6 | base1 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:58:2:58:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| methods.go:67:2:67:6 | base2 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:68:2:68:6 | base2 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:77:2:77:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| methods.go:78:2:78:7 | base2p | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 380c4e98ed3..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,20 +0,0 @@ -reverseRead -| test_couchbase_gocb_v2.go:151:2:151:10 | call to Next | Origin of readStep is missing a PostUpdateNode. | -| test_couchbase_gocb_v2.go:161:2:161:3 | r7 | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:66:6:66:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:69:9:69:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:80:18:80:19 | db | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:89:8:89:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:91:6:91:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:94:9:94:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:151:8:151:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:153:6:153:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:156:9:156:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:198:18:198:21 | stmt | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:207:8:207:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:209:6:209:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:212:9:212:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:254:18:254:19 | tx | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:263:8:263:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:265:6:265:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:268:9:268:12 | rows | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index bfa166137d2..00000000000 --- a/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -reverseRead -| main.go:19:2:19:4 | ctx | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected index 5c8b3afb80b..0fd726cd886 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected @@ -1,42 +1,29 @@ reverseRead -| EndToEnd.go:30:9:30:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:30:35:30:35 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:30:35:30:42 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:36:18:36:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:36:18:36:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:37:9:37:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:44:18:44:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:44:18:44:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:45:9:45:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:51:20:51:20 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:51:20:51:27 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:52:9:52:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:58:18:58:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:58:18:58:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:59:9:59:9 | c | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:64:9:64:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:64:26:64:26 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:64:26:64:33 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:69:9:69:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:69:22:69:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:69:22:69:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:74:9:74:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:74:22:74:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:74:22:74:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:79:9:79:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:79:35:79:35 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:79:35:79:42 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:84:9:84:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:84:22:84:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:84:22:84:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:89:9:89:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:89:21:89:21 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:89:21:89:28 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:94:9:94:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:94:20:94:20 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:94:20:94:27 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:26:7:26:7 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| Revel.go:26:7:26:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:27:7:27:7 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | Revel.go:27:7:27:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:30:2:30:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | @@ -55,7 +42,6 @@ reverseRead | Revel.go:60:7:60:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:63:2:63:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | Revel.go:70:22:70:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| Revel.go:71:2:71:2 | c | Origin of readStep is missing a PostUpdateNode. | | Revel.go:75:7:75:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:76:7:76:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:77:7:77:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | @@ -87,64 +73,34 @@ reverseRead | Revel.go:128:14:128:22 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:133:13:133:13 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:34:2:34:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:45:10:45:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:47:2:47:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:48:9:48:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:52:9:52:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:56:2:56:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:57:2:57:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:59:16:59:16 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:61:5:61:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:62:3:62:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:63:3:63:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:64:10:64:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:68:2:68:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:69:9:69:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:79:5:79:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:81:5:81:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:83:4:83:4 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:84:11:84:11 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:89:2:89:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:90:9:90:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:95:10:95:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:97:9:97:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:43:13:43:13 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:44:3:44:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:45:10:45:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:51:2:51:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:54:9:54:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:107:9:107:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:118:9:118:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:132:10:132:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:135:9:135:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:139:9:139:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:143:26:143:26 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:144:2:144:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:146:2:146:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:148:5:148:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:149:3:149:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:150:10:150:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:153:2:153:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:154:9:154:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:160:10:160:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:165:17:165:17 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:166:19:166:19 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:168:5:168:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:168:33:168:33 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:168:33:168:40 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:169:3:169:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:170:3:170:3 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:171:10:171:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:174:5:174:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:174:5:174:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:175:3:175:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:176:4:176:10 | booking | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:177:10:177:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:180:9:180:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:184:2:184:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:185:9:185:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:191:10:191:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:195:9:195:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:36:44:36:44 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:40:49:40:49 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:52:2:52:2 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | From e4ee7c95c55127fd7b47f169e2cc93e5e9e31572 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 4 Dec 2025 14:36:40 +0100 Subject: [PATCH 028/194] C#: Address review comments. --- .../Entities/ObjectInitMethod.cs | 2 +- .../internal/ControlFlowGraphImpl.qll | 30 ++++++++++++++----- .../test/library-tests/obinit/Flow.expected | 4 +-- csharp/ql/test/library-tests/obinit/Flow.ql | 4 +-- .../ql/test/library-tests/obinit/Flow.qlref | 2 ++ csharp/ql/test/library-tests/obinit/obinit.cs | 6 ++-- .../CONSISTENCY/CfgConsistency.expected | 2 -- .../CONSISTENCY/CfgConsistency.expected | 2 -- 8 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 csharp/ql/test/library-tests/obinit/Flow.qlref delete mode 100644 csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected delete mode 100644 csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs index ce07e56508d..81c08ec35d5 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs @@ -13,7 +13,7 @@ namespace Semmle.Extraction.CSharp.Entities this.ContainingType = containingType; } - public static readonly string Name = ""; + private static readonly string Name = ""; public static ObjectInitMethod Create(Context cx, Type containingType) { diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 66b1a9d195c..96fe5703090 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -14,16 +14,16 @@ private module Initializers { * A non-static member with an initializer, for example a field `int Field = 0`. */ class InitializedInstanceMember extends Member { + private AssignExpr ae; + InitializedInstanceMember() { - exists(AssignExpr ae | - not this.isStatic() and - expr_parent_top_level(ae, _, this) and - not ae = any(Callable c).getExpressionBody() - ) + not this.isStatic() and + expr_parent_top_level(ae, _, this) and + not ae = any(Callable c).getExpressionBody() } /** Gets the initializer expression. */ - AssignExpr getInitializer() { expr_parent_top_level(result, _, this) } + AssignExpr getInitializer() { result = ae } } /** @@ -54,7 +54,7 @@ private module Initializers { } /** - * Gets the last member initializer expression for non-static constructor `c` + * Gets the last member initializer expression for object initializer method `obinit` * in compilation `comp`. */ AssignExpr lastInitializer(ObjectInitMethod obinit, CompilationExt comp) { @@ -224,6 +224,13 @@ predicate scopeLast(CfgScope scope, AstNode last, Completion c) { or last(callable.(Constructor).getInitializer(), last, c) and not callable.hasBody() + or + // This is only relevant in the context of compilation errors, since + // normally the existence of an object initializer call implies the + // existence of an initializer. + last(callable.(Constructor).getObjectInitializerCall(), last, c) and + not callable.(Constructor).hasInitializer() and + not callable.hasBody() ) or last(Initializers::lastInitializer(scope, _), last, c) @@ -278,8 +285,15 @@ private class ConstructorTree extends ControlFlowTree instanceof Constructor { final override predicate succ(AstNode pred, AstNode succ, Completion c) { exists(CompilationExt comp | last(this.getObjectInitializerCall(comp), pred, c) and - c instanceof NormalCompletion and + c instanceof NormalCompletion + | first(this.getInitializer(comp), succ) + or + // This is only relevant in the context of compilation errors, since + // normally the existence of an object initializer call implies the + // existence of an initializer. + not exists(this.getInitializer(comp)) and + first(this.getBody(comp), succ) ) } } diff --git a/csharp/ql/test/library-tests/obinit/Flow.expected b/csharp/ql/test/library-tests/obinit/Flow.expected index 619154a60d2..a9306a762ff 100644 --- a/csharp/ql/test/library-tests/obinit/Flow.expected +++ b/csharp/ql/test/library-tests/obinit/Flow.expected @@ -6,6 +6,8 @@ edges | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | provenance | | | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | provenance | | | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:20 | access to field s | provenance | | +flow +| obinit.cs:21:18:21:20 | access to field s | nodes | obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | | obinit.cs:5:27:5:34 | "source" : String | semmle.label | "source" : String | @@ -16,5 +18,3 @@ nodes | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | | obinit.cs:21:18:21:20 | access to field s | semmle.label | access to field s | subpaths -#select -| obinit.cs:21:18:21:20 | access to field s | diff --git a/csharp/ql/test/library-tests/obinit/Flow.ql b/csharp/ql/test/library-tests/obinit/Flow.ql index 93c4bd24e5a..54f0300546c 100644 --- a/csharp/ql/test/library-tests/obinit/Flow.ql +++ b/csharp/ql/test/library-tests/obinit/Flow.ql @@ -17,6 +17,4 @@ module Flow = DataFlow::Global; import Flow::PathGraph -from DataFlow::Node source, DataFlow::Node sink -where Flow::flow(source, sink) -select sink +query predicate flow(DataFlow::Node sink) { Flow::flowTo(sink) } diff --git a/csharp/ql/test/library-tests/obinit/Flow.qlref b/csharp/ql/test/library-tests/obinit/Flow.qlref new file mode 100644 index 00000000000..f48796a83f7 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.qlref @@ -0,0 +1,2 @@ +query: Flow.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/library-tests/obinit/obinit.cs b/csharp/ql/test/library-tests/obinit/obinit.cs index e4e851ed1d8..9a9c628e71f 100644 --- a/csharp/ql/test/library-tests/obinit/obinit.cs +++ b/csharp/ql/test/library-tests/obinit/obinit.cs @@ -18,13 +18,13 @@ namespace ObInit { static void Foo() { A a = new A(); - Sink(a.s); + Sink(a.s); // $ flow A a2 = new A(0, 0); - Sink(a2.s); + Sink(a2.s); // $ MISSING: flow B b = new B(); - Sink(b.s); + Sink(b.s); // $ MISSING: flow } } } diff --git a/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected deleted file mode 100644 index 30469b120b6..00000000000 --- a/csharp/ql/test/library-tests/standalone/errorrecovery/CONSISTENCY/CfgConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -deadEnd -| errors.cs:79:11:79:12 | call to method | diff --git a/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected deleted file mode 100644 index 205e8553b18..00000000000 --- a/csharp/ql/test/query-tests/standalone/Likely Bugs/IncomparableEquals/CONSISTENCY/CfgConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -deadEnd -| IncomparableEquals.cs:45:7:45:8 | call to method | From 57bca5ca9baaa07d3573a8e60efe1869afaa4f08 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 2 Dec 2025 09:22:58 +0100 Subject: [PATCH 029/194] Rust: Include more calls in DB quality metrics --- .../PathResolutionConsistency.ql | 4 +- .../internal/PathResolutionConsistency.qll | 19 +++----- .../src/queries/telemetry/DatabaseQuality.qll | 32 ++++++------- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 4 ++ .../PathResolutionConsistency.expected | 3 ++ .../PathResolutionConsistency.expected | 2 + .../PathResolutionConsistency.expected | 2 + .../PathResolutionConsistency.expected | 26 +++++++++++ .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 5 +++ .../PathResolutionConsistency.expected | 2 + .../PathResolutionConsistency.expected | 45 +++++++++++++++++++ .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 23 +++++++++- .../PathResolutionConsistency.expected | 16 ++++++- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 18 +++++++- .../PathResolutionConsistency.expected | 2 +- .../PathResolutionConsistency.expected | 8 +++- .../PathResolutionConsistency.expected | 27 ++++++++++- .../PathResolutionConsistency.expected | 9 ++++ 25 files changed, 217 insertions(+), 44 deletions(-) create mode 100644 rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index 3b2165b712f..bc1f572eedb 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -15,8 +15,8 @@ class SourceLocatable extends Locatable { SourceLocatable() { this.fromSource() } } -query predicate multipleCallTargets(SourceLocatable a) { - PathResolutionConsistency::multipleCallTargets(a, _) +query predicate multipleResolvedTargets(SourceLocatable a) { + PathResolutionConsistency::multipleResolvedTargets(a, _) } query predicate multiplePathResolutions(SourceLocatable a) { diff --git a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll index 857afc1f552..807225d1615 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll @@ -24,17 +24,10 @@ query predicate multiplePathResolutions(Path p, ItemNode i) { strictcount(ItemNode i0 | i0 = resolvePath(p) and not i0 instanceof Crate) > 1 } -// TODO: Take other calls into account -abstract private class CallExprBase extends InvocationExpr { } - -private class CallExprCallExprBase extends CallExpr, CallExprBase { } - -private class MethodCallExprCallExprBase extends MethodCallExpr, CallExprBase { } - -/** Holds if `call` has multiple static call targets including `target`. */ -query predicate multipleCallTargets(CallExprBase call, Callable target) { - target = call.getResolvedTarget() and - strictcount(call.getResolvedTarget()) > 1 +/** Holds if `ie` has multiple resolved targets including `target`. */ +query predicate multipleResolvedTargets(InvocationExpr ie, Addressable target) { + target = ie.getResolvedTarget() and + strictcount(ie.getResolvedTarget()) > 1 } /** Holds if `fe` resolves to multiple record fields including `field`. */ @@ -62,8 +55,8 @@ int getPathResolutionInconsistencyCounts(string type) { type = "Multiple path resolutions" and result = count(Path p | multiplePathResolutions(p, _) | p) or - type = "Multiple static call targets" and - result = count(CallExprBase call | multipleCallTargets(call, _) | call) + type = "Multiple resolved targets" and + result = count(InvocationExpr ie | multipleResolvedTargets(ie, _) | ie) or type = "Multiple record fields" and result = count(FieldExpr fe | multipleStructFields(fe, _) | fe) diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index 553783498ae..c4c6341d3c2 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -20,25 +20,25 @@ private class RelevantFile extends File { } module CallTargetStats implements StatsSig { - // TODO: Take other calls into account - abstract private class CallExprBase extends InvocationExpr { } - - private class CallExprCallExprBase extends CallExpr, CallExprBase { } - - private class MethodCallExprCallExprBase extends MethodCallExpr, CallExprBase { } - - int getNumberOfOk() { - result = - count(CallExprBase c | c.getFile() instanceof RelevantFile and exists(c.getResolvedTarget())) + /** + * A call-like expression that is relevant for call target statistics. + * + * Note that this also includes tuple struct instantiations and tuple + * variant instantiations. + */ + private class RelevantInvocationExpr extends InvocationExpr { + RelevantInvocationExpr() { + this.getFile() instanceof RelevantFile and + not this instanceof CallExprImpl::DynamicCallExpr and + not this = any(Operation o | not o.isOverloaded(_, _, _)) + } } - additional predicate isNotOkCall(CallExprBase c) { - c.getFile() instanceof RelevantFile and - not exists(c.getResolvedTarget()) and - not c instanceof CallExprImpl::DynamicCallExpr - } + int getNumberOfOk() { result = count(RelevantInvocationExpr e | exists(e.getResolvedTarget())) } - int getNumberOfNotOk() { result = count(CallExprBase c | isNotOkCall(c)) } + additional predicate isNotOkCall(RelevantInvocationExpr e) { not exists(e.getResolvedTarget()) } + + int getNumberOfNotOk() { result = count(RelevantInvocationExpr e | isNotOkCall(e)) } string getOkText() { result = "calls with call target" } diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected index 141cfc355b9..f5a5b9b7b19 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | proc_macro.rs:44:27:44:30 | ...::to_tokens(...) | diff --git a/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..97a93c16a2d --- /dev/null +++ b/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,4 @@ +multipleResolvedTargets +| test.rs:419:34:419:35 | * ... | +| test.rs:420:26:420:27 | * ... | +| test.rs:597:9:597:10 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..10c2285e621 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,3 @@ +multipleResolvedTargets +| main.rs:236:11:236:15 | * ... | +| main.rs:272:13:272:29 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..f99062c73d1 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,2 @@ +multipleResolvedTargets +| main.rs:562:10:562:15 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..9ec1dde87a0 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,2 @@ +multipleResolvedTargets +| main.rs:115:14:115:35 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..3610f061406 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,26 @@ +multipleResolvedTargets +| main.rs:19:17:19:18 | * ... | +| main.rs:53:14:53:15 | * ... | +| main.rs:59:33:59:34 | * ... | +| main.rs:72:14:72:15 | * ... | +| main.rs:73:9:73:10 | * ... | +| main.rs:74:14:74:15 | * ... | +| main.rs:75:9:75:10 | * ... | +| main.rs:76:14:76:15 | * ... | +| main.rs:83:9:83:10 | * ... | +| main.rs:90:9:90:17 | * ... | +| main.rs:97:9:97:10 | * ... | +| main.rs:105:9:105:10 | * ... | +| main.rs:106:14:106:15 | * ... | +| main.rs:113:14:113:15 | * ... | +| main.rs:114:9:114:10 | * ... | +| main.rs:115:14:115:15 | * ... | +| main.rs:122:9:122:10 | * ... | +| main.rs:125:9:125:10 | * ... | +| main.rs:135:17:135:18 | * ... | +| main.rs:136:17:136:18 | * ... | +| main.rs:201:9:201:10 | * ... | +| main.rs:209:14:209:15 | * ... | +| main.rs:211:14:211:15 | * ... | +| main.rs:224:13:224:17 | * ... | +| main.rs:229:9:229:10 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected index ca5c386b720..5dfb62baf4b 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,4 @@ -multipleCallTargets +multipleResolvedTargets | test.rs:59:62:59:77 | ...::from(...) | | test.rs:66:58:66:73 | ...::from(...) | | test.rs:389:30:389:67 | pinned.poll_read(...) | diff --git a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected index ccda75006f9..a8f80f6f39c 100644 --- a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | main.rs:52:14:52:29 | ...::from(...) | diff --git a/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..8ebb39522b3 --- /dev/null +++ b/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,5 @@ +multipleResolvedTargets +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | diff --git a/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..cb94b0abf16 --- /dev/null +++ b/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,2 @@ +multipleResolvedTargets +| test.rs:52:2:52:5 | * ... | diff --git a/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..93e644c9abb --- /dev/null +++ b/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,45 @@ +multipleResolvedTargets +| main.rs:28:5:28:14 | * ... | +| main.rs:28:5:28:14 | * ... | +| main.rs:28:5:28:14 | * ... | +| main.rs:28:5:28:14 | * ... | +| main.rs:29:5:29:14 | * ... | +| main.rs:29:5:29:14 | * ... | +| main.rs:29:5:29:14 | * ... | +| main.rs:29:5:29:14 | * ... | +| main.rs:30:5:30:14 | * ... | +| main.rs:30:5:30:14 | * ... | +| main.rs:30:5:30:14 | * ... | +| main.rs:30:5:30:14 | * ... | +| main.rs:31:5:31:14 | * ... | +| main.rs:31:5:31:14 | * ... | +| main.rs:31:5:31:14 | * ... | +| main.rs:31:5:31:14 | * ... | +| main.rs:33:5:33:14 | * ... | +| main.rs:33:5:33:14 | * ... | +| main.rs:33:5:33:14 | * ... | +| main.rs:33:5:33:14 | * ... | +| main.rs:34:5:34:14 | * ... | +| main.rs:34:5:34:14 | * ... | +| main.rs:34:5:34:14 | * ... | +| main.rs:34:5:34:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:35:5:35:14 | * ... | +| main.rs:36:5:36:14 | * ... | +| main.rs:36:5:36:14 | * ... | +| main.rs:36:5:36:14 | * ... | +| main.rs:36:5:36:14 | * ... | +| main.rs:37:5:37:14 | * ... | +| main.rs:37:5:37:14 | * ... | +| main.rs:37:5:37:14 | * ... | +| main.rs:37:5:37:14 | * ... | +| main.rs:75:5:75:14 | * ... | +| main.rs:75:5:75:14 | * ... | +| main.rs:75:5:75:14 | * ... | +| main.rs:75:5:75:14 | * ... | +| main.rs:76:5:76:14 | * ... | +| main.rs:76:5:76:14 | * ... | +| main.rs:76:5:76:14 | * ... | +| main.rs:76:5:76:14 | * ... | diff --git a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected index cc34dfd2b7d..23ac5e722d5 100644 --- a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,4 @@ -multipleCallTargets +multipleResolvedTargets | main.rs:126:9:126:11 | f(...) | | main.rs:366:9:368:16 | ...::f(...) | | main.rs:369:9:371:16 | ...::f(...) | diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 16db4f5c090..38a68818c75 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,13 +1,34 @@ -multipleCallTargets +multipleResolvedTargets +| blanket_impl.rs:33:13:33:17 | * ... | | dereference.rs:69:15:69:24 | e1.deref() | +| dereference.rs:73:15:73:17 | * ... | +| dereference.rs:77:16:77:18 | * ... | | dereference.rs:182:17:182:26 | ... .foo() | | dereference.rs:183:17:183:23 | S.foo() | | dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:187:17:187:29 | S.bar(...) | +| dyn_type.rs:65:20:65:23 | * ... | +| dyn_type.rs:69:21:69:24 | * ... | +| dyn_type.rs:90:10:90:13 | * ... | +| invalid/main.rs:69:13:69:17 | * ... | +| invalid/main.rs:76:13:76:17 | * ... | +| main.rs:1077:14:1077:18 | * ... | +| main.rs:1159:26:1159:30 | * ... | +| main.rs:1504:14:1504:21 | * ... | +| main.rs:1504:16:1504:20 | * ... | +| main.rs:1509:14:1509:18 | * ... | +| main.rs:1540:27:1540:29 | * ... | +| main.rs:1654:17:1654:24 | * ... | +| main.rs:1654:18:1654:24 | * ... | +| main.rs:1792:17:1792:21 | * ... | +| main.rs:1807:28:1807:32 | * ... | +| main.rs:2440:13:2440:18 | * ... | | main.rs:2634:13:2634:31 | ...::from(...) | | main.rs:2635:13:2635:31 | ...::from(...) | | main.rs:2636:13:2636:31 | ...::from(...) | | main.rs:2642:13:2642:31 | ...::from(...) | | main.rs:2643:13:2643:31 | ...::from(...) | | main.rs:2644:13:2644:31 | ...::from(...) | +| pattern_matching.rs:273:13:273:27 | * ... | +| pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected index 6b4022b86e5..8dfdad04adf 100644 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,17 @@ -multipleCallTargets +multipleResolvedTargets +| main.rs:16:15:16:16 | * ... | | main.rs:91:19:91:40 | ...::from(...) | | main.rs:113:19:113:40 | ...::from(...) | +| main.rs:507:5:507:10 | * ... | +| main.rs:512:5:512:6 | * ... | +| main.rs:513:9:513:10 | * ... | +| main.rs:514:9:514:10 | * ... | +| main.rs:519:5:519:6 | * ... | +| main.rs:520:9:520:10 | * ... | +| main.rs:521:9:521:10 | * ... | +| main.rs:522:5:522:6 | * ... | +| main.rs:530:5:530:6 | * ... | +| main.rs:542:5:542:7 | * ... | +| main.rs:542:6:542:7 | * ... | +| main.rs:552:5:552:6 | * ... | +| main.rs:699:9:699:13 | * ... | diff --git a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected index bb60014263b..fbf9238f366 100644 --- a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | my_struct.rs:25:19:25:37 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 34a867e0917..3187982b20e 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,4 @@ -multipleCallTargets +multipleResolvedTargets | mysql.rs:15:24:15:39 | ...::from(...) | | mysql.rs:16:26:16:85 | ...::from(...) | | mysql.rs:18:13:18:66 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected index c25043e0ef6..698af5a0279 100644 --- a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | main.rs:9:43:9:63 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 078bce75133..260e09db470 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,20 @@ -multipleCallTargets +multipleResolvedTargets +| test_logging.rs:214:13:214:22 | * ... | +| test_logging.rs:214:13:214:22 | * ... | +| test_logging.rs:214:13:214:22 | * ... | +| test_logging.rs:214:13:214:22 | * ... | +| test_logging.rs:217:13:217:22 | * ... | +| test_logging.rs:217:13:217:22 | * ... | +| test_logging.rs:217:13:217:22 | * ... | +| test_logging.rs:217:13:217:22 | * ... | +| test_logging.rs:223:13:223:28 | * ... | +| test_logging.rs:223:13:223:28 | * ... | +| test_logging.rs:223:13:223:28 | * ... | +| test_logging.rs:223:13:223:28 | * ... | +| test_logging.rs:226:13:226:28 | * ... | +| test_logging.rs:226:13:226:28 | * ... | +| test_logging.rs:226:13:226:28 | * ... | +| test_logging.rs:226:13:226:28 | * ... | | test_storage.rs:13:10:13:33 | ...::from(...) | | test_storage.rs:17:10:17:35 | ...::from(...) | | test_storage.rs:21:10:21:35 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected index b9925a323cc..18400b7ab59 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | test_cipher.rs:114:23:114:50 | ...::new(...) | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index ae227c22e5a..c581cd273e6 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,6 +1,12 @@ -multipleCallTargets +multipleResolvedTargets | deallocation.rs:354:11:354:29 | ...::from(...) | | deallocation.rs:355:11:355:29 | ...::from(...) | +| lifetime.rs:217:17:217:25 | * ... | | lifetime.rs:610:13:610:31 | ...::from(...) | | lifetime.rs:611:13:611:31 | ...::from(...) | | lifetime.rs:628:13:628:31 | ...::from(...) | +| lifetime.rs:630:11:630:25 | * ... | +| lifetime.rs:692:12:692:14 | * ... | +| lifetime.rs:693:12:693:14 | * ... | +| lifetime.rs:694:12:694:14 | * ... | +| lifetime.rs:734:11:734:13 | * ... | diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected index 4d2cdee53ce..be3b445209d 100644 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected @@ -1,6 +1,31 @@ -multipleCallTargets +multipleResolvedTargets | main.rs:14:13:14:29 | ...::from(...) | | main.rs:15:13:15:29 | ...::from(...) | +| main.rs:223:9:223:18 | * ... | +| main.rs:223:9:223:18 | * ... | +| main.rs:223:9:223:18 | * ... | +| main.rs:223:9:223:18 | * ... | +| main.rs:228:9:228:18 | * ... | +| main.rs:228:9:228:18 | * ... | +| main.rs:228:9:228:18 | * ... | +| main.rs:228:9:228:18 | * ... | +| main.rs:353:5:353:14 | * ... | +| main.rs:353:5:353:14 | * ... | +| main.rs:353:5:353:14 | * ... | +| main.rs:353:5:353:14 | * ... | +| main.rs:539:13:539:14 | * ... | +| main.rs:544:19:544:20 | * ... | +| more.rs:34:11:34:19 | * ... | +| more.rs:45:20:45:26 | * ... | +| more.rs:56:20:56:30 | * ... | +| more.rs:56:21:56:30 | * ... | +| more.rs:61:20:61:30 | * ... | +| more.rs:61:21:61:30 | * ... | +| more.rs:67:20:67:25 | * ... | +| more.rs:71:5:71:10 | * ... | +| more.rs:75:5:75:10 | * ... | +| more.rs:80:5:80:10 | * ... | +| more.rs:82:20:82:26 | * ... | | unreachable.rs:165:20:165:42 | ...::from(...) | | unreachable.rs:171:9:171:15 | ...::from(...) | | unreachable.rs:177:17:177:25 | ...::from(...) | diff --git a/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..b9195fc15f0 --- /dev/null +++ b/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,9 @@ +multipleResolvedTargets +| option.rs:34:18:34:22 | * ... | +| option.rs:61:15:61:19 | * ... | +| option.rs:69:15:69:19 | * ... | +| option.rs:306:9:306:13 | * ... | +| option.rs:335:13:335:17 | * ... | +| option.rs:483:27:483:29 | * ... | +| summaries.rs:87:5:87:6 | * ... | +| summaries.rs:92:5:92:6 | * ... | From 28e9420476474214e792d9f46908f922c282335d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 5 Dec 2025 10:58:01 +0100 Subject: [PATCH 030/194] C#: Fix lambda flow. --- .../semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 3aaff74da17..a05651b4c64 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -3050,8 +3050,11 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves exists(AssignableDefinition def | def.getTargetAccess() = fa and nodeFrom.asExpr() = def.getSource() and - nodeTo = TFlowInsensitiveFieldNode(f) and + nodeTo = TFlowInsensitiveFieldNode(f) + | nodeFrom.getEnclosingCallable() instanceof Constructor + or + nodeFrom.getEnclosingCallable() instanceof ObjectInitMethod ) or nodeFrom = TFlowInsensitiveFieldNode(f) and From bfa37b8488e006373fc7853b994608b0633d50f2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 8 Dec 2025 10:17:47 +0100 Subject: [PATCH 031/194] Fix typo --- rust/ql/src/queries/telemetry/DatabaseQuality.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index c4c6341d3c2..cf0505d53e4 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -1,7 +1,7 @@ /** * Provides database quality statistics that are reported by * `rust/telemetry/extractor-information` - * and perhaps warned about by `rust/diagnostics/database-quality`. + * and perhaps warned about by `rust/diagnostic/database-quality`. */ import rust From 294089fe351ffb17413f16d898c2b3d24043d9d7 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 8 Dec 2025 13:10:29 +0100 Subject: [PATCH 032/194] JS: Use question-mark variant in all overlay annotations --- .../ql/lib/Expressions/ExprHasNoEffect.qll | 2 +- .../LanguageFeatures/UnusedIndexVariable.qll | 2 +- javascript/ql/lib/semmle/javascript/AMD.qll | 2 +- javascript/ql/lib/semmle/javascript/AST.qll | 4 +-- javascript/ql/lib/semmle/javascript/CFG.qll | 2 +- .../ql/lib/semmle/javascript/Classes.qll | 2 +- .../ql/lib/semmle/javascript/Closure.qll | 2 +- .../ql/lib/semmle/javascript/Comments.qll | 2 +- .../ql/lib/semmle/javascript/Constants.qll | 2 +- .../ql/lib/semmle/javascript/DefUse.qll | 2 +- javascript/ql/lib/semmle/javascript/E4X.qll | 2 +- .../lib/semmle/javascript/ES2015Modules.qll | 2 +- .../ql/lib/semmle/javascript/Errors.qll | 2 +- javascript/ql/lib/semmle/javascript/Expr.qll | 6 ++-- .../ql/lib/semmle/javascript/Extend.qll | 2 +- .../ql/lib/semmle/javascript/Externs.qll | 2 +- javascript/ql/lib/semmle/javascript/Files.qll | 2 +- .../ql/lib/semmle/javascript/Functions.qll | 2 +- .../semmle/javascript/GlobalAccessPaths.qll | 18 ++++++------ javascript/ql/lib/semmle/javascript/HTML.qll | 2 +- javascript/ql/lib/semmle/javascript/JSDoc.qll | 2 +- javascript/ql/lib/semmle/javascript/JSON.qll | 2 +- javascript/ql/lib/semmle/javascript/JSX.qll | 2 +- javascript/ql/lib/semmle/javascript/Lines.qll | 2 +- .../ql/lib/semmle/javascript/Locations.qll | 6 ++-- .../ql/lib/semmle/javascript/Modules.qll | 2 +- .../ql/lib/semmle/javascript/NodeJS.qll | 12 ++++---- .../ql/lib/semmle/javascript/Promises.qll | 4 +-- .../ql/lib/semmle/javascript/Regexp.qll | 2 +- javascript/ql/lib/semmle/javascript/SSA.qll | 2 +- javascript/ql/lib/semmle/javascript/Stmt.qll | 2 +- .../ql/lib/semmle/javascript/Templates.qll | 2 +- .../ql/lib/semmle/javascript/Tokens.qll | 2 +- .../lib/semmle/javascript/TypeAnnotations.qll | 2 +- .../ql/lib/semmle/javascript/TypeScript.qll | 2 +- .../ql/lib/semmle/javascript/Variables.qll | 2 +- javascript/ql/lib/semmle/javascript/XML.qll | 2 +- javascript/ql/lib/semmle/javascript/YAML.qll | 2 +- .../javascript/dataflow/AbstractValues.qll | 2 +- .../dataflow/AdditionalFlowSteps.qll | 2 +- .../javascript/dataflow/Configuration.qll | 16 +++++------ .../CustomAbstractValueDefinitions.qll | 2 +- .../semmle/javascript/dataflow/DataFlow.qll | 2 +- .../javascript/dataflow/FlowSummary.qll | 2 +- .../javascript/dataflow/InferredTypes.qll | 2 +- .../lib/semmle/javascript/dataflow/Nodes.qll | 2 +- .../javascript/dataflow/Refinements.qll | 2 +- .../semmle/javascript/dataflow/Sources.qll | 2 +- .../dataflow/internal/AbstractValuesImpl.qll | 2 +- .../dataflow/internal/AccessPaths.qll | 2 +- .../internal/AdditionalFlowInternal.qll | 4 +-- .../javascript/dataflow/internal/Contents.qll | 14 +++++----- .../dataflow/internal/DataFlowNode.qll | 2 +- .../dataflow/internal/DataFlowPrivate.qll | 6 ++-- .../dataflow/internal/FlowSteps.qll | 2 +- .../dataflow/internal/FlowSummaryPrivate.qll | 2 +- .../dataflow/internal/VariableCapture.qll | 2 +- .../dataflow/internal/VariableOrThis.qll | 2 +- .../dataflow/internal/sharedlib/Ssa.qll | 2 +- .../frameworks/AngularJS/AngularJSCore.qll | 2 +- .../javascript/frameworks/LazyCache.qll | 2 +- .../frameworks/LodashUnderscore.qll | 28 +++++++++---------- .../javascript/frameworks/NodeJSLib.qll | 8 +++--- .../frameworks/PropertyProjection.qll | 2 +- .../javascript/frameworks/Templating.qll | 2 +- .../javascript/frameworks/UriLibraries.qll | 2 +- .../frameworks/data/ModelsAsData.qll | 2 +- .../internal/ApiGraphModelsExtensions.qll | 2 +- .../data/internal/ApiGraphModelsSpecific.qll | 10 +++---- .../internal/BasicBlockInternal.qll | 10 +++---- .../javascript/internal/CachedStages.qll | 8 +++--- .../semmle/javascript/internal/Overlay.qll | 12 ++++---- .../semmle/javascript/internal/OverlayXml.qll | 2 +- .../javascript/internal/StmtContainers.qll | 4 +-- .../ql/lib/utils/test/InlineSummaries.qll | 2 +- 75 files changed, 143 insertions(+), 143 deletions(-) diff --git a/javascript/ql/lib/Expressions/ExprHasNoEffect.qll b/javascript/ql/lib/Expressions/ExprHasNoEffect.qll index 5e194b3fc3a..86f9d4133d8 100644 --- a/javascript/ql/lib/Expressions/ExprHasNoEffect.qll +++ b/javascript/ql/lib/Expressions/ExprHasNoEffect.qll @@ -1,7 +1,7 @@ /** * Provides classes and predicates for the 'js/useless-expression' query. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll b/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll index e8b235eca9b..c9905d98fcc 100644 --- a/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll +++ b/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll @@ -1,7 +1,7 @@ /** * Provides a predicate for identifying unused index variables in loops. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/AMD.qll b/javascript/ql/lib/semmle/javascript/AMD.qll index e66a04ce4ec..479be828f92 100644 --- a/javascript/ql/lib/semmle/javascript/AMD.qll +++ b/javascript/ql/lib/semmle/javascript/AMD.qll @@ -2,7 +2,7 @@ * Provides classes for working with * [Asynchronous Module Definitions](https://github.com/amdjs/amdjs-api/wiki/AMD). */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/AST.qll b/javascript/ql/lib/semmle/javascript/AST.qll index 0e6330605ba..c37a4e938a2 100644 --- a/javascript/ql/lib/semmle/javascript/AST.qll +++ b/javascript/ql/lib/semmle/javascript/AST.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the AST-based representation of JavaScript programs. */ -overlay[local] +overlay[local?] module; import javascript @@ -477,7 +477,7 @@ module AST { DataFlow::AnalyzedNode analyze() { result = DataFlow::valueNode(this).analyze() } /** Gets the data flow node associated with this program element. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::ValueNode flow() { result = DataFlow::valueNode(this) } diff --git a/javascript/ql/lib/semmle/javascript/CFG.qll b/javascript/ql/lib/semmle/javascript/CFG.qll index 2270ddfeaaf..f7943647d77 100644 --- a/javascript/ql/lib/semmle/javascript/CFG.qll +++ b/javascript/ql/lib/semmle/javascript/CFG.qll @@ -272,7 +272,7 @@ * Note that the `import` statement as a whole is part of the CFG of the body, while its single * import specifier `x as y` forms part of the preamble. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Classes.qll b/javascript/ql/lib/semmle/javascript/Classes.qll index 2485553370c..7f6ea5ba492 100644 --- a/javascript/ql/lib/semmle/javascript/Classes.qll +++ b/javascript/ql/lib/semmle/javascript/Classes.qll @@ -4,7 +4,7 @@ * Class declarations and class expressions are modeled by (QL) classes `ClassDeclaration` * and `ClassExpression`, respectively, which are both subclasses of `ClassDefinition`. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Closure.qll b/javascript/ql/lib/semmle/javascript/Closure.qll index fd13023b2e6..930e94a77d7 100644 --- a/javascript/ql/lib/semmle/javascript/Closure.qll +++ b/javascript/ql/lib/semmle/javascript/Closure.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the Closure-Library module system. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Comments.qll b/javascript/ql/lib/semmle/javascript/Comments.qll index 46ce8b8a4ba..6365127cad0 100644 --- a/javascript/ql/lib/semmle/javascript/Comments.qll +++ b/javascript/ql/lib/semmle/javascript/Comments.qll @@ -1,5 +1,5 @@ /** Provides classes for working with JavaScript comments. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Constants.qll b/javascript/ql/lib/semmle/javascript/Constants.qll index b0b4a6c03ee..acf154346cb 100644 --- a/javascript/ql/lib/semmle/javascript/Constants.qll +++ b/javascript/ql/lib/semmle/javascript/Constants.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with expressions that evaluate to constant values. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/DefUse.qll b/javascript/ql/lib/semmle/javascript/DefUse.qll index 95cf57d543d..60e0a728691 100644 --- a/javascript/ql/lib/semmle/javascript/DefUse.qll +++ b/javascript/ql/lib/semmle/javascript/DefUse.qll @@ -1,5 +1,5 @@ /** Provides classes and predicates for working with variable definitions and uses. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/E4X.qll b/javascript/ql/lib/semmle/javascript/E4X.qll index ce917c48cff..4fef3ba2389 100644 --- a/javascript/ql/lib/semmle/javascript/E4X.qll +++ b/javascript/ql/lib/semmle/javascript/E4X.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with E4X. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 9f37e3082b8..3710942e9e4 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -1,5 +1,5 @@ /** Provides classes for working with ECMAScript 2015 modules. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Errors.qll b/javascript/ql/lib/semmle/javascript/Errors.qll index 518b76b5346..9015e89efbf 100644 --- a/javascript/ql/lib/semmle/javascript/Errors.qll +++ b/javascript/ql/lib/semmle/javascript/Errors.qll @@ -1,5 +1,5 @@ /** Provides classes for working with syntax errors. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Expr.qll b/javascript/ql/lib/semmle/javascript/Expr.qll index b46faf7e2b7..008cc128377 100644 --- a/javascript/ql/lib/semmle/javascript/Expr.qll +++ b/javascript/ql/lib/semmle/javascript/Expr.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with expressions. */ -overlay[local] +overlay[local?] module; import javascript @@ -253,7 +253,7 @@ class Expr extends @expr, ExprOrStmt, ExprOrType, AST::ValueNode { * Gets the data-flow node where exceptions thrown by this expression will * propagate if this expression causes an exception to be thrown. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getExceptionTarget() { result = getCatchParameterFromStmt(getRawEnclosingStmt(this)) @@ -271,7 +271,7 @@ private DataFlow::Node getCatchParameterFromStmt(Stmt stmt) { DataFlow::parameterNode(stmt.getEnclosingTryCatchStmt().getACatchClause().getAParameter()) } -overlay[caller] +overlay[caller?] pragma[inline] private Stmt getRawEnclosingStmt(Expr e) { // For performance reasons, we need the enclosing statement without overrides diff --git a/javascript/ql/lib/semmle/javascript/Extend.qll b/javascript/ql/lib/semmle/javascript/Extend.qll index e59c11d225e..b871a74a03b 100644 --- a/javascript/ql/lib/semmle/javascript/Extend.qll +++ b/javascript/ql/lib/semmle/javascript/Extend.qll @@ -1,7 +1,7 @@ /** * Provides classes for reasoning about `extend`-like functions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Externs.qll b/javascript/ql/lib/semmle/javascript/Externs.qll index f894107528c..22d6d03d7dd 100644 --- a/javascript/ql/lib/semmle/javascript/Externs.qll +++ b/javascript/ql/lib/semmle/javascript/Externs.qll @@ -36,7 +36,7 @@ * Array.prototype.length; * */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index 8cc14ca0492..556d25911f1 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -1,5 +1,5 @@ /** Provides classes for working with files and folders. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Functions.qll b/javascript/ql/lib/semmle/javascript/Functions.qll index 9b1f98c3d0b..186ef1bc028 100644 --- a/javascript/ql/lib/semmle/javascript/Functions.qll +++ b/javascript/ql/lib/semmle/javascript/Functions.qll @@ -1,5 +1,5 @@ /** Provides classes for working with functions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll b/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll index 53e5a779a9b..7b3004dbde4 100644 --- a/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll +++ b/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll @@ -1,7 +1,7 @@ /** * Provides predicates for associating qualified names with data flow nodes. */ -overlay[local] +overlay[local?] module; import javascript @@ -357,7 +357,7 @@ module AccessPath { * Gets a variable that is relevant for the computations in the `GetLaterAccess` module. * This predicate restricts as much as it can, but without depending on `getAVariableRef`. */ - overlay[caller] + overlay[caller?] pragma[inline] private SsaVariable getARelevantVariableSimple() { // The variable might be used where `getLaterBaseAccess()` is called. @@ -409,7 +409,7 @@ module AccessPath { * } * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceTo(Root root, string path) { path = fromReference(result, root) and @@ -433,7 +433,7 @@ module AccessPath { * })(NS = NS || {}); * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceTo(string path) { path = fromReference(result, DataFlow::globalAccessPathRootPseudoNode()) @@ -455,7 +455,7 @@ module AccessPath { * } * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAnAssignmentTo(Root root, string path) { path = fromRhs(result, root) and @@ -477,7 +477,7 @@ module AccessPath { * })(foo = foo || {}); * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAnAssignmentTo(string path) { path = fromRhs(result, DataFlow::globalAccessPathRootPseudoNode()) @@ -488,7 +488,7 @@ module AccessPath { * * See `getAReferenceTo` and `getAnAssignmentTo` for more details. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceOrAssignmentTo(string path) { result = getAReferenceTo(path) @@ -501,7 +501,7 @@ module AccessPath { * * See `getAReferenceTo` and `getAnAssignmentTo` for more details. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceOrAssignmentTo(Root root, string path) { result = getAReferenceTo(root, path) @@ -530,7 +530,7 @@ module AccessPath { /** * Gets a `SourceNode` that refers to the same value or access path as the given node. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::SourceNode getAnAliasedSourceNode(DataFlow::Node node) { exists(DataFlow::SourceNode root, string accessPath | diff --git a/javascript/ql/lib/semmle/javascript/HTML.qll b/javascript/ql/lib/semmle/javascript/HTML.qll index 8f70150963e..fa3deaf661f 100644 --- a/javascript/ql/lib/semmle/javascript/HTML.qll +++ b/javascript/ql/lib/semmle/javascript/HTML.qll @@ -1,5 +1,5 @@ /** Provides classes for working with HTML documents. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSDoc.qll b/javascript/ql/lib/semmle/javascript/JSDoc.qll index f63e24d9c6c..48d2a984ec4 100644 --- a/javascript/ql/lib/semmle/javascript/JSDoc.qll +++ b/javascript/ql/lib/semmle/javascript/JSDoc.qll @@ -1,5 +1,5 @@ /** Provides classes for working with JSDoc comments. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSON.qll b/javascript/ql/lib/semmle/javascript/JSON.qll index ca322bacd46..ba5b42ba1ee 100644 --- a/javascript/ql/lib/semmle/javascript/JSON.qll +++ b/javascript/ql/lib/semmle/javascript/JSON.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with JSON data. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSX.qll b/javascript/ql/lib/semmle/javascript/JSX.qll index d182f155354..ab9a4339bf7 100644 --- a/javascript/ql/lib/semmle/javascript/JSX.qll +++ b/javascript/ql/lib/semmle/javascript/JSX.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with JSX code. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Lines.qll b/javascript/ql/lib/semmle/javascript/Lines.qll index 272be691498..e0f675aa6e0 100644 --- a/javascript/ql/lib/semmle/javascript/Lines.qll +++ b/javascript/ql/lib/semmle/javascript/Lines.qll @@ -4,7 +4,7 @@ * This information is only available for snapshots that have been extracted with * the `--extract-program-text` flag. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Locations.qll b/javascript/ql/lib/semmle/javascript/Locations.qll index 1c48a3adbd3..4aa93dd6937 100644 --- a/javascript/ql/lib/semmle/javascript/Locations.qll +++ b/javascript/ql/lib/semmle/javascript/Locations.qll @@ -1,5 +1,5 @@ /** Provides classes for working with locations and program elements that have locations. */ -overlay[local] +overlay[local?] module; import javascript @@ -32,7 +32,7 @@ final class Location extends @location_default { int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } /** Holds if this location starts before location `that`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate startsBefore(Location that) { exists(string f, int sl1, int sc1, int sl2, int sc2 | @@ -46,7 +46,7 @@ final class Location extends @location_default { } /** Holds if this location ends after location `that`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate endsAfter(Location that) { exists(string f, int el1, int ec1, int el2, int ec2 | diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index bc69695121e..9bd9ce43451 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -3,7 +3,7 @@ * ECMAScript 2015-style modules, and the older CommonJS and AMD-style * modules. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/NodeJS.qll b/javascript/ql/lib/semmle/javascript/NodeJS.qll index dfc2dd15ad3..0fbd8d79a74 100644 --- a/javascript/ql/lib/semmle/javascript/NodeJS.qll +++ b/javascript/ql/lib/semmle/javascript/NodeJS.qll @@ -17,7 +17,7 @@ private import semmle.javascript.dataflow.internal.DataFlowNode * process.stdout.write(fs.readFileSync(process.argv[i], 'utf8')); * ``` */ -overlay[local] +overlay[local?] class NodeModule extends Module { NodeModule() { is_module(this) and @@ -234,7 +234,7 @@ predicate findNodeModulesFolder(Folder f, Folder nodeModules, int distance) { /** * A Node.js `require` variable. */ -overlay[local] +overlay[local?] private class RequireVariable extends Variable { RequireVariable() { this = any(ModuleScope m).getVariable("require") @@ -247,7 +247,7 @@ private class RequireVariable extends Variable { } } -overlay[local] +overlay[local?] private predicate isModuleModule(EarlyStageNode nd) { exists(ImportDeclaration imp | imp.getRawImportPath() = "module" | nd = TDestructuredModuleImportNode(imp) @@ -261,7 +261,7 @@ private predicate isModuleModule(EarlyStageNode nd) { ) } -overlay[local] +overlay[local?] private predicate isCreateRequire(EarlyStageNode nd) { exists(PropAccess prop | isModuleModule(TValueNode(prop.getBase())) and @@ -291,7 +291,7 @@ private predicate isCreateRequire(EarlyStageNode nd) { /** * Holds if `nd` may refer to `require`, either directly or modulo local data flow. */ -overlay[local] +overlay[local?] cached private predicate isRequire(EarlyStageNode nd) { exists(VarAccess access | @@ -334,7 +334,7 @@ private predicate isRequire(EarlyStageNode nd) { * require('fs') * ``` */ -overlay[local] +overlay[local?] class Require extends CallExpr, Import { Require() { isRequire(TValueNode(this.getCallee())) } diff --git a/javascript/ql/lib/semmle/javascript/Promises.qll b/javascript/ql/lib/semmle/javascript/Promises.qll index f373ca87d39..6868505b22a 100644 --- a/javascript/ql/lib/semmle/javascript/Promises.qll +++ b/javascript/ql/lib/semmle/javascript/Promises.qll @@ -186,13 +186,13 @@ module Promises { /** * Gets the pseudo-field used to describe resolved values in a promise. */ - overlay[local] + overlay[local?] string valueProp() { result = "$PromiseResolveField$" } /** * Gets the pseudo-field used to describe rejected values in a promise. */ - overlay[local] + overlay[local?] string errorProp() { result = "$PromiseRejectField$" } /** A property set containing the pseudo-properites of a promise object. */ diff --git a/javascript/ql/lib/semmle/javascript/Regexp.qll b/javascript/ql/lib/semmle/javascript/Regexp.qll index db779e600d6..c42df3939c2 100644 --- a/javascript/ql/lib/semmle/javascript/Regexp.qll +++ b/javascript/ql/lib/semmle/javascript/Regexp.qll @@ -4,7 +4,7 @@ * Regular expression literals are represented as an abstract syntax tree of regular expression * terms. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/SSA.qll b/javascript/ql/lib/semmle/javascript/SSA.qll index 52486a7b7e3..04d08c2343f 100644 --- a/javascript/ql/lib/semmle/javascript/SSA.qll +++ b/javascript/ql/lib/semmle/javascript/SSA.qll @@ -73,7 +73,7 @@ * expression in `k` induces a re-capture of `x` to reflect the fact that `x` * is incremented between the two `console.log` calls. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Stmt.qll b/javascript/ql/lib/semmle/javascript/Stmt.qll index f97b07ac8e9..95ae6f5be59 100644 --- a/javascript/ql/lib/semmle/javascript/Stmt.qll +++ b/javascript/ql/lib/semmle/javascript/Stmt.qll @@ -1,5 +1,5 @@ /** Provides classes for working with statements. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Templates.qll b/javascript/ql/lib/semmle/javascript/Templates.qll index 1b3db059226..d6eaef94589 100644 --- a/javascript/ql/lib/semmle/javascript/Templates.qll +++ b/javascript/ql/lib/semmle/javascript/Templates.qll @@ -1,5 +1,5 @@ /** Provides classes for working with ECMAScript 2015-style template expressions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Tokens.qll b/javascript/ql/lib/semmle/javascript/Tokens.qll index 4e1c63440b5..cb55a8296e6 100644 --- a/javascript/ql/lib/semmle/javascript/Tokens.qll +++ b/javascript/ql/lib/semmle/javascript/Tokens.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the token-based representation of JavaScript programs. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll b/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll index 50201363bea..dacc3913e65 100644 --- a/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll +++ b/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll @@ -1,7 +1,7 @@ /** * Provides classes for reasoning about type annotations independently of dialect. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/TypeScript.qll b/javascript/ql/lib/semmle/javascript/TypeScript.qll index b9d6ea0af98..7772ff3e21a 100644 --- a/javascript/ql/lib/semmle/javascript/TypeScript.qll +++ b/javascript/ql/lib/semmle/javascript/TypeScript.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Variables.qll b/javascript/ql/lib/semmle/javascript/Variables.qll index 5fa7473c304..aa97233af49 100644 --- a/javascript/ql/lib/semmle/javascript/Variables.qll +++ b/javascript/ql/lib/semmle/javascript/Variables.qll @@ -1,5 +1,5 @@ /** Provides classes for modeling program variables. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/XML.qll b/javascript/ql/lib/semmle/javascript/XML.qll index ca401bd3f4b..e4073362fc6 100644 --- a/javascript/ql/lib/semmle/javascript/XML.qll +++ b/javascript/ql/lib/semmle/javascript/XML.qll @@ -1,7 +1,7 @@ /** * Provides classes and predicates for working with XML files and their content. */ -overlay[local] +overlay[local?] module; import semmle.files.FileSystem diff --git a/javascript/ql/lib/semmle/javascript/YAML.qll b/javascript/ql/lib/semmle/javascript/YAML.qll index 01473226b44..21b0825c861 100644 --- a/javascript/ql/lib/semmle/javascript/YAML.qll +++ b/javascript/ql/lib/semmle/javascript/YAML.qll @@ -4,7 +4,7 @@ * YAML documents are represented as abstract syntax trees whose nodes * are either YAML values or alias nodes referring to another YAML value. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll b/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll index c5d9993dbb7..8692f1b6ff3 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll @@ -37,7 +37,7 @@ * they represent; additionally, indefinite abstract values record * the source of imprecision that caused them to arise. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll b/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll index 83d523e0709..3b59fc52952 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll @@ -33,7 +33,7 @@ private import semmle.javascript.internal.CachedStages * Note: For performance reasons, all subclasses of this class should be part * of the standard library. Use `isAdditionalFlowStep` for query-specific flow steps. */ -overlay[local] +overlay[local?] class AdditionalFlowStep extends Unit { /** * Holds if `pred` → `succ` should be considered a value-preserving data flow edge.f diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll index 3b4a6be84d0..ffbb9e497b0 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll @@ -625,19 +625,19 @@ abstract deprecated class LabeledBarrierGuardNode extends BarrierGuardNode { * * For use with load/store steps in `DataFlow::SharedFlowStep` and TypeTracking. */ -overlay[local] +overlay[local?] module PseudoProperties { /** Holds if `s` is a pseudo-property. */ bindingset[s] - overlay[caller] + overlay[caller?] predicate isPseudoProperty(string s) { s.matches("$%$") } bindingset[s] - overlay[caller] + overlay[caller?] private string pseudoProperty(string s) { result = "$" + s + "$" } bindingset[s, v] - overlay[caller] + overlay[caller?] private string pseudoProperty(string s, string v) { result = "$" + s + "|" + v + "$" } /** @@ -684,7 +684,7 @@ module PseudoProperties { * Gets a pseudo-property for the location of a map value where the key is `key`. * The string value of the `key` is encoded in the result, and there is only a result if the string value of `key` is known. */ - overlay[caller] + overlay[caller?] pragma[inline] string mapValueKnownKey(DataFlow::Node key) { result = mapValueKey(any(string s | key.mayHaveStringValue(s))) @@ -694,20 +694,20 @@ module PseudoProperties { * Gets a pseudo-property for the location of a map value where the key is `key`. */ bindingset[key] - overlay[caller] + overlay[caller?] string mapValueKey(string key) { result = pseudoProperty("mapValue", key) } /** * Holds if `prop` equals `mapValueKey(key)` for some value of `key`. */ bindingset[prop] - overlay[caller] + overlay[caller?] predicate isMapValueKey(string prop) { prop.matches("$mapValue|%$") } /** * Gets a pseudo-property for the location of a map value where the key is `key`. */ - overlay[caller] + overlay[caller?] pragma[inline] string mapValue(DataFlow::Node key) { result = mapValueKnownKey(key) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll b/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll index 3c12284d77b..e4cc05595ec 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll @@ -7,7 +7,7 @@ * For performance reasons, all subclasses of `CustomAbstractValueDefinition` * should be part of the standard library. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index d7fa6ba2762..a24d7976b3d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -17,7 +17,7 @@ * Flow through global variables, object properties or function calls is not * modeled (except for immediately invoked functions as explained above). */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll b/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll index 13aa5628111..c4661b321ea 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll @@ -1,5 +1,5 @@ /** Provides classes and predicates for defining flow summaries. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll b/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll index 48c21d41d75..cfce0fd20cd 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; /** diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index aa12cfe1864..d854dfc3f62 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -3,7 +3,7 @@ * as nodes corresponding to function definitions or nodes corresponding to * parameters. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll b/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll index b1302df6fbc..2fa76caed79 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll @@ -27,7 +27,7 @@ * so the refinement can evaluate to both `true` and `false` for the same * candidate value. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll index 85a8a163cba..55614388e7b 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll @@ -5,7 +5,7 @@ * Note that unlike `TypeTracking.qll`, this library only performs * local tracking within a function. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll index 97daed1f30a..65f0d24e48d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll @@ -3,7 +3,7 @@ * * Provides a representation for abstract values. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll index b7538c7ffbf..bd992810517 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll @@ -14,7 +14,7 @@ * to the same value have the same access paths, so access paths are neither sound nor * complete as an approximation of expression semantics. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll index dfa924699ba..ed07ffa7395 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll @@ -5,7 +5,7 @@ private import semmle.javascript.dataflow.internal.DataFlowPrivate /** * Gets a data-flow node synthesized using `AdditionalFlowInternal#needsSynthesizedNode`. */ -overlay[local] +overlay[local?] DataFlow::Node getSynthesizedNode(AstNode node, string tag) { result = TGenericSynthesizedNode(node, tag, _) } @@ -13,7 +13,7 @@ DataFlow::Node getSynthesizedNode(AstNode node, string tag) { /** * An extension to `AdditionalFlowStep` with additional internal-only predicates. */ -overlay[local] +overlay[local?] class AdditionalFlowInternal extends DataFlow::AdditionalFlowStep { /** * Holds if a data-flow node should be synthesized for the pair `(node, tag)`. diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll index d29a450274e..787a766c897 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript @@ -337,14 +337,14 @@ module Public { /** * A content set containing only the given content. */ - overlay[caller] + overlay[caller?] pragma[inline] ContentSet singleton(Content content) { result.asSingleton() = content } /** * A content set corresponding to the given property name. */ - overlay[caller] + overlay[caller?] pragma[inline] ContentSet property(PropertyName name) { result.asSingleton().asPropertyName() = name } @@ -405,7 +405,7 @@ module Public { * If `bound` is too large, it is truncated to the greatest lower bound we can represent. */ bindingset[bound] - overlay[caller] + overlay[caller?] ContentSet arrayElementLowerBoundFromInt(int bound) { result = arrayElementLowerBound(bound.minimum(getMaxPreciseArrayIndex() + 1)) } @@ -416,7 +416,7 @@ module Public { * If `n` is too large, it is truncated to the greatest lower bound we can represent. */ bindingset[n] - overlay[caller] + overlay[caller?] ContentSet arrayElementFromInt(int n) { result = arrayElementKnown(n) or @@ -456,7 +456,7 @@ module Public { * If `key` is not one of the keys we track precisely, this is mapped to the unknown key instead. */ bindingset[key] - overlay[caller] + overlay[caller?] ContentSet mapValueFromKey(string key) { result = mapValueWithKnownKey(key) or @@ -519,7 +519,7 @@ module Public { * are mapped to their corresponding content sets (which are no longer seen as property names). */ bindingset[propertyName] - overlay[caller] + overlay[caller?] ContentSet fromLegacyProperty(string propertyName) { result = fromLegacyPseudoProperty(propertyName) or diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll index 4a354e1f759..315c8706bc0 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll @@ -3,7 +3,7 @@ * * Contains the raw data type underlying `DataFlow::Node`. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll index 24549e7f1e6..f8836e51ad9 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript @@ -1108,7 +1108,7 @@ DataFlowCallable viableImplInCallContext(DataFlowCall call, DataFlowCall ctx) { } bindingset[node, fun] -overlay[caller] +overlay[caller?] pragma[inline_late] private predicate sameContainerAsEnclosingContainer(Node node, Function fun) { node.getContainer() = fun.getEnclosingContainer() @@ -1517,7 +1517,7 @@ private Node getPostUpdateForStore(Node base) { } /** Gets node to target with a store to the given `base` object.. */ -overlay[caller] +overlay[caller?] pragma[inline] private Node getStoreTarget(DataFlow::Node base) { result = getPostUpdateForStore(base) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll index 2d199887296..7102e3c6a53 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll @@ -524,7 +524,7 @@ private module CachedSteps { /** * Holds if there is a step from `pred` to `succ` through a call to an identity function. */ - overlay[local] + overlay[local?] cached predicate identityFunctionStep(DataFlow::Node pred, DataFlow::CallNode succ) { exists(DataFlow::GlobalVarRefNode global | diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll index 509aa79eda8..fe7bab98341 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll @@ -1,7 +1,7 @@ /** * Provides JS specific classes and predicates for defining flow summaries. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll index 62892d7e5db..1799bc416ee 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript as js diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll index 8a3b79a420f..96964110e11 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll index edea8ed6c38..7b479ac475b 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll @@ -3,7 +3,7 @@ * * JavaScript's old SSA library is still responsible for the ordinary SSA flow. */ -overlay[local] +overlay[local?] module; private import javascript as js diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll index beb601dcfb9..944256bd456 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll @@ -15,7 +15,7 @@ private import AngularJS /** * Holds if `nd` is a reference to the `angular` variable. */ -overlay[local] +overlay[local?] DataFlow::SourceNode angular() { // either as a global result = DataFlow::globalVarRef("angular") diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll index e8b389e91ad..e239c79b852 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll @@ -1,7 +1,7 @@ /** * Models imports through the NPM `lazy-cache` package. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll index fe07e4f1967..74808368c71 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll @@ -9,7 +9,7 @@ module LodashUnderscore { /** * A data flow node that accesses a given member of `lodash` or `underscore`. */ - overlay[local] + overlay[local?] abstract class Member extends DataFlow::SourceNode { /** Gets the name of the accessed member. */ abstract string getName(); @@ -18,7 +18,7 @@ module LodashUnderscore { /** * An import of `lodash` or `underscore` accessing a given member of that package. */ - overlay[local] + overlay[local?] private class DefaultMember extends Member { string name; @@ -41,14 +41,14 @@ module LodashUnderscore { * In addition to normal imports, this supports per-method imports such as `require("lodash.map")` and `require("lodash/map")`. * In addition, the global variable `_` is assumed to refer to `lodash` or `underscore`. */ - overlay[local] + overlay[local?] DataFlow::SourceNode member(string name) { result.(Member).getName() = name } /** * Holds if `name` is the name of a member exported from the `lodash` package * which has a corresponding `lodash.xxx` NPM package. */ - overlay[local] + overlay[local?] private predicate isLodashMember(string name) { // Can be generated using Object.keys(require('lodash')) name = @@ -185,7 +185,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashEach extends DataFlow::SummarizedCallable { LodashEach() { this = "_.each-like" } @@ -201,7 +201,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashMap extends DataFlow::SummarizedCallable { LodashMap() { this = "_.map" } @@ -220,7 +220,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashFlatMap extends DataFlow::SummarizedCallable { LodashFlatMap() { this = "_.flatMap" } @@ -242,7 +242,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashFlatMapDeep extends DataFlow::SummarizedCallable { LodashFlatMapDeep() { this = "_.flatMapDeep" } @@ -266,7 +266,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashReduce extends DataFlow::SummarizedCallable { LodashReduce() { this = "_.reduce-like" } @@ -285,7 +285,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LoashSortBy extends DataFlow::SummarizedCallable { LoashSortBy() { this = "_.sortBy-like" } @@ -303,7 +303,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashMinMaxBy extends DataFlow::SummarizedCallable { LodashMinMaxBy() { this = "_.minBy / _.maxBy" } @@ -317,7 +317,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashPartition extends DataFlow::SummarizedCallable { LodashPartition() { this = "_.partition" } @@ -331,7 +331,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class UnderscoreMapObject extends DataFlow::SummarizedCallable { UnderscoreMapObject() { this = "_.mapObject" } @@ -352,7 +352,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashTap extends DataFlow::SummarizedCallable { LodashTap() { this = "_.tap" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll index 89d436bb64c..b6506ddd648 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll @@ -8,17 +8,17 @@ import semmle.javascript.security.SensitiveActions private import semmle.javascript.dataflow.internal.PreCallGraphStep module NodeJSLib { - overlay[local] + overlay[local?] private GlobalVariable processVariable() { variables(result, "process", any(GlobalScope sc)) } - overlay[local] + overlay[local?] pragma[nomagic] private GlobalVarAccess processExprInTopLevel(TopLevel tl) { result = processVariable().getAnAccess() and tl = result.getTopLevel() } - overlay[local] + overlay[local?] pragma[nomagic] private GlobalVarAccess processExprInNodeModule() { result = processExprInTopLevel(any(NodeModule m)) @@ -28,7 +28,7 @@ module NodeJSLib { * An access to the global `process` variable in a Node.js module, interpreted as * an import of the `process` module. */ - overlay[local] + overlay[local?] private class ImplicitProcessImport extends DataFlow::ModuleImportNode::Range { ImplicitProcessImport() { this = DataFlow::exprNode(processExprInNodeModule()) } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll b/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll index c0188361e72..957121da5af 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll @@ -4,7 +4,7 @@ * Subclass `PropertyProjection` to refine the behavior of the analysis on existing property projections. * Subclass `CustomPropertyProjection` to introduce new kinds of property projections. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll index f1f91785329..d63bafe7b6f 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll @@ -1,7 +1,7 @@ /** * Provides predicates for working with templating libraries. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll index 9097497b4f0..03887819b25 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll @@ -422,7 +422,7 @@ private module ClosureLibraryUri { } } -overlay[local] +overlay[local?] private class QueryStringStringification extends DataFlow::SummarizedCallable { QueryStringStringification() { this = "query-string stringification" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll index 9e7f94c139b..5d65f901d22 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll @@ -48,7 +48,7 @@ private class ThreatModelSourceFromDataExtension extends ThreatModelSource::Rang } } -overlay[local] +overlay[local?] private class SummarizedCallableFromModel extends DataFlow::SummarizedCallable { string type; string path; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll index 3f38c498f32..66929075904 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -1,7 +1,7 @@ /** * Defines extensible predicates for contributing library models from data extensions. */ -overlay[local] +overlay[local?] module; /** diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll index 2074b18600d..3fb76f76f70 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -41,7 +41,7 @@ class Location = JS::Location; * The model generator must explicitly generate the step between `(package)` and `(package).foo`, for example. */ bindingset[rawType] -overlay[caller] +overlay[caller?] predicate parseTypeString(string rawType, string package, string qualifiedName) { exists(string regexp | regexp = "('[^']+'|[^.]+)(.*)" and @@ -56,7 +56,7 @@ predicate parseTypeString(string rawType, string package, string qualifiedName) /** * Holds if models describing `package` may be relevant for the analysis of this database. */ -overlay[local] +overlay[local?] predicate isPackageUsed(string package) { package = "global" or @@ -70,7 +70,7 @@ predicate isPackageUsed(string package) { } bindingset[type] -overlay[local] +overlay[local?] predicate isTypeUsed(string type) { exists(string package | parseTypeString(type, package, _) and @@ -82,10 +82,10 @@ predicate isTypeUsed(string type) { * Holds if `type` can be obtained from an instance of `otherType` due to * language semantics modeled by `getExtraNodeFromType`. */ -overlay[local] +overlay[local?] predicate hasImplicitTypeModel(string type, string otherType) { none() } -overlay[local] +overlay[local?] pragma[nomagic] private predicate parseRelevantTypeString(string rawType, string package, string qualifiedName) { isRelevantFullPath(rawType, _) and diff --git a/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll b/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll index d422c960a8f..e0324bf5a6b 100644 --- a/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll +++ b/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll @@ -2,7 +2,7 @@ * Provides classes for working with basic blocks, and predicates for computing * liveness information for local variables. */ -overlay[local] +overlay[local?] module; import javascript @@ -320,7 +320,7 @@ module Public { /** * Holds if this basic block strictly dominates `bb`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate strictlyDominates(ReachableBasicBlock bb) { this = immediateDominator+(bb) } @@ -329,14 +329,14 @@ module Public { * * This predicate is reflexive: each reachable basic block dominates itself. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate dominates(ReachableBasicBlock bb) { this = immediateDominator*(bb) } /** * Holds if this basic block strictly post-dominates `bb`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate strictlyPostDominates(ReachableBasicBlock bb) { this = immediatePostDominator+(bb) } @@ -345,7 +345,7 @@ module Public { * * This predicate is reflexive: each reachable basic block post-dominates itself. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate postDominates(ReachableBasicBlock bb) { this = immediatePostDominator*(bb) } } diff --git a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll index 17aa82ced6c..eab6b76b031 100644 --- a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll +++ b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll @@ -40,7 +40,7 @@ module Stages { /** * The `ast` stage. */ - overlay[local] + overlay[local?] cached module Ast { /** @@ -85,7 +85,7 @@ module Stages { /** * The `basicblocks` stage. */ - overlay[local] + overlay[local?] cached module BasicBlocks { /** @@ -112,7 +112,7 @@ module Stages { /** * The part of data flow computed before flow summary nodes. */ - overlay[local] + overlay[local?] cached module EarlyDataFlowStage { /** @@ -137,7 +137,7 @@ module Stages { /** * The `dataflow` stage. */ - overlay[local] + overlay[local?] cached module DataFlowStage { /** diff --git a/javascript/ql/lib/semmle/javascript/internal/Overlay.qll b/javascript/ql/lib/semmle/javascript/internal/Overlay.qll index d1ca1f2b0da..db3dc8ac6bf 100644 --- a/javascript/ql/lib/semmle/javascript/internal/Overlay.qll +++ b/javascript/ql/lib/semmle/javascript/internal/Overlay.qll @@ -2,10 +2,10 @@ private import javascript private import OverlayXml /** Holds if the database is an overlay. */ -overlay[local] +overlay[local?] private predicate isOverlay() { databaseMetadata("isOverlay", "true") } -overlay[local] +overlay[local?] private string getFileFromEntity(@locatable node) { exists(@location loc | hasLocation(node, loc) @@ -19,11 +19,11 @@ private string getFileFromEntity(@locatable node) { } /** Holds if `file` was changed or deleted in the overlay. */ -overlay[local] +overlay[local?] private predicate discardFile(string file) { isOverlay() and overlayChangedFiles(file) } /** Holds if `node` is in the `file` and is part of the overlay base database. */ -overlay[local] +overlay[local?] private predicate discardableEntity(string file, @locatable node) { not isOverlay() and file = getFileFromEntity(node) } @@ -34,7 +34,7 @@ private predicate discardEntity(@locatable node) { exists(string file | discardableEntity(file, node) and discardFile(file)) } -overlay[local] +overlay[local?] private string getFileFromLocation(@location loc) { exists(@file file | locations_default(loc, file, _, _, _, _) and @@ -43,7 +43,7 @@ private string getFileFromLocation(@location loc) { } /** Holds if `loc` is in the `file` and is part of the overlay base database. */ -overlay[local] +overlay[local?] private predicate discardableLocation(string file, @location node) { not isOverlay() and file = getFileFromLocation(node) } diff --git a/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll b/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll index 95d49f2d611..f0f95340850 100644 --- a/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll +++ b/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; /** diff --git a/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll b/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll index 741575c3242..65984e2eb9b 100644 --- a/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll +++ b/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll @@ -4,7 +4,7 @@ * Provides predicates and classes for relating nodes to their * enclosing `StmtContainer`. */ -overlay[local] +overlay[local?] module; private import javascript @@ -48,7 +48,7 @@ class NodeInStmtContainer extends Locatable, @node_in_stmt_container { /** * Gets the function or toplevel to which this node belongs. */ - overlay[caller] + overlay[caller?] pragma[inline] final StmtContainer getContainer() { result = getStmtContainer(this) } } diff --git a/javascript/ql/lib/utils/test/InlineSummaries.qll b/javascript/ql/lib/utils/test/InlineSummaries.qll index 0366736eaf6..1633e056b7f 100644 --- a/javascript/ql/lib/utils/test/InlineSummaries.qll +++ b/javascript/ql/lib/utils/test/InlineSummaries.qll @@ -1,7 +1,7 @@ import javascript import semmle.javascript.dataflow.FlowSummary -overlay[local] +overlay[local?] class MkSummary extends SummarizedCallable { private CallExpr mkSummary; From 4d1200fd1397c50d63e45d509525f821314829ee Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 8 Dec 2025 13:26:19 +0100 Subject: [PATCH 033/194] Revert changes in synced files --- .../frameworks/data/internal/ApiGraphModelsExtensions.qll | 2 +- javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll index 66929075904..3f38c498f32 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -1,7 +1,7 @@ /** * Defines extensible predicates for contributing library models from data extensions. */ -overlay[local?] +overlay[local] module; /** diff --git a/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll b/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll index f0f95340850..95d49f2d611 100644 --- a/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll +++ b/javascript/ql/lib/semmle/javascript/internal/OverlayXml.qll @@ -1,4 +1,4 @@ -overlay[local?] +overlay[local] module; /** From 66c51e979ef2720cb84c8a34e012fa088ffe53cf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 8 Dec 2025 14:38:23 +0000 Subject: [PATCH 034/194] Release preparation for version 2.23.8 --- actions/ql/lib/CHANGELOG.md | 4 ++++ actions/ql/lib/change-notes/released/0.4.24.md | 3 +++ actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 4 ++++ actions/ql/src/change-notes/released/0.6.16.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 4 ++++ cpp/ql/lib/change-notes/released/6.1.3.md | 3 +++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 4 ++++ cpp/ql/src/change-notes/released/1.5.7.md | 3 +++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../Solorigate/lib/change-notes/released/1.7.55.md | 3 +++ csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../Solorigate/src/change-notes/released/1.7.55.md | 3 +++ csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 4 ++++ csharp/ql/lib/change-notes/released/5.4.3.md | 3 +++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 4 ++++ csharp/ql/src/change-notes/released/1.5.3.md | 3 +++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ go/ql/consistency-queries/change-notes/released/1.0.38.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/5.0.5.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/1.5.2.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 4 ++++ java/ql/lib/change-notes/released/7.8.2.md | 3 +++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 6 ++++++ .../1.10.3.md} | 7 ++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/2.6.18.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/2.2.3.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/1.0.38.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 4 ++++ python/ql/lib/change-notes/released/5.0.3.md | 3 +++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 4 ++++ python/ql/src/change-notes/released/1.7.3.md | 3 +++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/5.1.6.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 4 ++++ ruby/ql/src/change-notes/released/1.5.3.md | 3 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 4 ++++ rust/ql/lib/change-notes/released/0.2.2.md | 3 +++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 4 ++++ rust/ql/src/change-notes/released/0.1.23.md | 3 +++ rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/CHANGELOG.md | 4 ++++ shared/concepts/change-notes/released/0.0.12.md | 3 +++ shared/concepts/codeql-pack.release.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/2.0.22.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/2.0.22.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.38.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 4 ++++ shared/quantum/change-notes/released/0.0.16.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ shared/rangeanalysis/change-notes/released/1.0.38.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.38.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/2.0.14.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ shared/threat-models/change-notes/released/1.0.38.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/1.0.38.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ shared/typeflow/change-notes/released/1.0.38.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ shared/typeinference/change-notes/released/0.0.19.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ shared/typetracking/change-notes/released/2.0.22.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.38.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.25.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.38.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.38.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 4 ++++ swift/ql/lib/change-notes/released/6.1.3.md | 3 +++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/1.2.12.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 164 files changed, 372 insertions(+), 85 deletions(-) create mode 100644 actions/ql/lib/change-notes/released/0.4.24.md create mode 100644 actions/ql/src/change-notes/released/0.6.16.md create mode 100644 cpp/ql/lib/change-notes/released/6.1.3.md create mode 100644 cpp/ql/src/change-notes/released/1.5.7.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md create mode 100644 csharp/ql/lib/change-notes/released/5.4.3.md create mode 100644 csharp/ql/src/change-notes/released/1.5.3.md create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.38.md create mode 100644 go/ql/lib/change-notes/released/5.0.5.md create mode 100644 go/ql/src/change-notes/released/1.5.2.md create mode 100644 java/ql/lib/change-notes/released/7.8.2.md rename java/ql/src/change-notes/{2025-12-08-maven-no-source-target-flags.md => released/1.10.3.md} (81%) create mode 100644 javascript/ql/lib/change-notes/released/2.6.18.md create mode 100644 javascript/ql/src/change-notes/released/2.2.3.md create mode 100644 misc/suite-helpers/change-notes/released/1.0.38.md create mode 100644 python/ql/lib/change-notes/released/5.0.3.md create mode 100644 python/ql/src/change-notes/released/1.7.3.md create mode 100644 ruby/ql/lib/change-notes/released/5.1.6.md create mode 100644 ruby/ql/src/change-notes/released/1.5.3.md create mode 100644 rust/ql/lib/change-notes/released/0.2.2.md create mode 100644 rust/ql/src/change-notes/released/0.1.23.md create mode 100644 shared/concepts/change-notes/released/0.0.12.md create mode 100644 shared/controlflow/change-notes/released/2.0.22.md create mode 100644 shared/dataflow/change-notes/released/2.0.22.md create mode 100644 shared/mad/change-notes/released/1.0.38.md create mode 100644 shared/quantum/change-notes/released/0.0.16.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.38.md create mode 100644 shared/regex/change-notes/released/1.0.38.md create mode 100644 shared/ssa/change-notes/released/2.0.14.md create mode 100644 shared/threat-models/change-notes/released/1.0.38.md create mode 100644 shared/tutorial/change-notes/released/1.0.38.md create mode 100644 shared/typeflow/change-notes/released/1.0.38.md create mode 100644 shared/typeinference/change-notes/released/0.0.19.md create mode 100644 shared/typetracking/change-notes/released/2.0.22.md create mode 100644 shared/typos/change-notes/released/1.0.38.md create mode 100644 shared/util/change-notes/released/2.0.25.md create mode 100644 shared/xml/change-notes/released/1.0.38.md create mode 100644 shared/yaml/change-notes/released/1.0.38.md create mode 100644 swift/ql/lib/change-notes/released/6.1.3.md create mode 100644 swift/ql/src/change-notes/released/1.2.12.md diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 507c5e80716..4713be3d4f5 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.24 + +No user-facing changes. + ## 0.4.23 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.24.md b/actions/ql/lib/change-notes/released/0.4.24.md new file mode 100644 index 00000000000..c481220bc14 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.24.md @@ -0,0 +1,3 @@ +## 0.4.24 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 482605d096c..b26f62aec37 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.23 +lastReleaseVersion: 0.4.24 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index be9fdac3892..082d5cd5ba2 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.24-dev +version: 0.4.24 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index abe6a3a85be..9a9f8964755 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.16 + +No user-facing changes. + ## 0.6.15 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.16.md b/actions/ql/src/change-notes/released/0.6.16.md new file mode 100644 index 00000000000..ec5c49b7d64 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.16.md @@ -0,0 +1,3 @@ +## 0.6.16 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index d2638922927..169788bff08 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.15 +lastReleaseVersion: 0.6.16 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index decd31da2d1..39b5cb5399e 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.16-dev +version: 0.6.16 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index a493369e8dd..e0c8b287adc 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.3 + +No user-facing changes. + ## 6.1.2 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/released/6.1.3.md b/cpp/ql/lib/change-notes/released/6.1.3.md new file mode 100644 index 00000000000..34916dd37c8 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/6.1.3.md @@ -0,0 +1,3 @@ +## 6.1.3 + +No user-facing changes. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 8a2b5999dee..e641a874973 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.2 +lastReleaseVersion: 6.1.3 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 4692d1ea27e..70fc7be5109 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.3-dev +version: 6.1.3 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 813bbda6a8a..a6caf3c6a6b 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.7 + +No user-facing changes. + ## 1.5.6 No user-facing changes. diff --git a/cpp/ql/src/change-notes/released/1.5.7.md b/cpp/ql/src/change-notes/released/1.5.7.md new file mode 100644 index 00000000000..c60c55034a6 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.5.7.md @@ -0,0 +1,3 @@ +## 1.5.7 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 9a0b3c9461b..227ac5febef 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.6 +lastReleaseVersion: 1.5.7 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 5d26c687851..e74997f97a2 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.7-dev +version: 1.5.7 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 34a8c2f3799..73990a2c6fd 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.55 + +No user-facing changes. + ## 1.7.54 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md new file mode 100644 index 00000000000..8c13e6f5191 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md @@ -0,0 +1,3 @@ +## 1.7.55 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 7d3013ec3c0..26e02fb41f4 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.54 +lastReleaseVersion: 1.7.55 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index a758d0d4ca4..ea173a6b515 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.55-dev +version: 1.7.55 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 34a8c2f3799..73990a2c6fd 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.55 + +No user-facing changes. + ## 1.7.54 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md new file mode 100644 index 00000000000..8c13e6f5191 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md @@ -0,0 +1,3 @@ +## 1.7.55 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 7d3013ec3c0..26e02fb41f4 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.54 +lastReleaseVersion: 1.7.55 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index ce6202bf9c2..a3a470ea694 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.55-dev +version: 1.7.55 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 3e3a49681f9..59eb2a98cf0 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3 + +No user-facing changes. + ## 5.4.2 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/5.4.3.md b/csharp/ql/lib/change-notes/released/5.4.3.md new file mode 100644 index 00000000000..61270c2fe02 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.4.3.md @@ -0,0 +1,3 @@ +## 5.4.3 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0318ae05ad8..dc2d3dec96c 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.2 +lastReleaseVersion: 5.4.3 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 1f20395f975..65a5412c23f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.3-dev +version: 5.4.3 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index dcb688a3e62..e91f882b9ed 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.3 + +No user-facing changes. + ## 1.5.2 No user-facing changes. diff --git a/csharp/ql/src/change-notes/released/1.5.3.md b/csharp/ql/src/change-notes/released/1.5.3.md new file mode 100644 index 00000000000..2e9bcb5e663 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.5.3.md @@ -0,0 +1,3 @@ +## 1.5.3 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 7eb901bae56..232224b0e26 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.5.3 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9876f3b9f07..27c4315f63a 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.3-dev +version: 1.5.3 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index b4d2815a622..00273047253 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.38.md b/go/ql/consistency-queries/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 164d4aefbed..5329a680c75 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.38-dev +version: 1.0.38 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 8b78244ad87..5f0fda7c3e6 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.5 + +No user-facing changes. + ## 5.0.4 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/5.0.5.md b/go/ql/lib/change-notes/released/5.0.5.md new file mode 100644 index 00000000000..be08f873636 --- /dev/null +++ b/go/ql/lib/change-notes/released/5.0.5.md @@ -0,0 +1,3 @@ +## 5.0.5 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 8cb0167caf0..02e5f00fa9e 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.4 +lastReleaseVersion: 5.0.5 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index b35a4ac281a..077d88b4ab7 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.5-dev +version: 5.0.5 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index d73a2a4a480..126e2b8583c 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.2 + +No user-facing changes. + ## 1.5.1 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.5.2.md b/go/ql/src/change-notes/released/1.5.2.md new file mode 100644 index 00000000000..384c27833f1 --- /dev/null +++ b/go/ql/src/change-notes/released/1.5.2.md @@ -0,0 +1,3 @@ +## 1.5.2 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index c5775c46013..7eb901bae56 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.1 +lastReleaseVersion: 1.5.2 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index e376a7e6033..09af5091f68 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.2-dev +version: 1.5.2 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index b2f589ac1a4..ee076ba77a7 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.8.2 + +No user-facing changes. + ## 7.8.1 No user-facing changes. diff --git a/java/ql/lib/change-notes/released/7.8.2.md b/java/ql/lib/change-notes/released/7.8.2.md new file mode 100644 index 00000000000..8b7244cb0b6 --- /dev/null +++ b/java/ql/lib/change-notes/released/7.8.2.md @@ -0,0 +1,3 @@ +## 7.8.2 + +No user-facing changes. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 3c5be70cd79..40a3d24f296 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.8.1 +lastReleaseVersion: 7.8.2 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index b651ef50689..44ab148e1cf 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.2-dev +version: 7.8.2 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index f78a970245f..a30e72bfaef 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.10.3 + +### Minor Analysis Improvements + +* Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility. + ## 1.10.2 No user-facing changes. diff --git a/java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md b/java/ql/src/change-notes/released/1.10.3.md similarity index 81% rename from java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md rename to java/ql/src/change-notes/released/1.10.3.md index 3ebe525f822..758236f0cc0 100644 --- a/java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md +++ b/java/ql/src/change-notes/released/1.10.3.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.10.3 + +### Minor Analysis Improvements + * Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 7303d5a6761..d3e15295550 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.2 +lastReleaseVersion: 1.10.3 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 0bdaeaf48d7..8dac7fa1daf 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.3-dev +version: 1.10.3 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index f9beb4db97c..b36b8f521a0 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.18 + +No user-facing changes. + ## 2.6.17 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/2.6.18.md b/javascript/ql/lib/change-notes/released/2.6.18.md new file mode 100644 index 00000000000..d04860dce6b --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.18.md @@ -0,0 +1,3 @@ +## 2.6.18 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 93b62e82ca2..ce85aee60d1 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.17 +lastReleaseVersion: 2.6.18 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index f70791d9d73..c0553e5c29c 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.18-dev +version: 2.6.18 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 166ee6e7c29..11b27f044cf 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.3 + +No user-facing changes. + ## 2.2.2 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.2.3.md b/javascript/ql/src/change-notes/released/2.2.3.md new file mode 100644 index 00000000000..1db16246c5a --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.2.3.md @@ -0,0 +1,3 @@ +## 2.2.3 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 31b4d2fab76..5ee5c5be7fc 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.2.2 +lastReleaseVersion: 2.2.3 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index a655acffcf9..dbdd402abb5 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.3-dev +version: 2.2.3 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 26ed76e0015..5e5c3c37bae 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.38.md b/misc/suite-helpers/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 88499ce2fa6..61d94ab3ef0 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.38-dev +version: 1.0.38 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 94be3c9b8b1..17da65f262d 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.3 + +No user-facing changes. + ## 5.0.2 No user-facing changes. diff --git a/python/ql/lib/change-notes/released/5.0.3.md b/python/ql/lib/change-notes/released/5.0.3.md new file mode 100644 index 00000000000..57074925279 --- /dev/null +++ b/python/ql/lib/change-notes/released/5.0.3.md @@ -0,0 +1,3 @@ +## 5.0.3 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 3940dee0f32..6997554f6dd 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.2 +lastReleaseVersion: 5.0.3 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 80a0e095778..9f7bae40e6a 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.3-dev +version: 5.0.3 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 0e6b6f8f677..43e0f12a212 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.3 + +No user-facing changes. + ## 1.7.2 No user-facing changes. diff --git a/python/ql/src/change-notes/released/1.7.3.md b/python/ql/src/change-notes/released/1.7.3.md new file mode 100644 index 00000000000..a629082e215 --- /dev/null +++ b/python/ql/src/change-notes/released/1.7.3.md @@ -0,0 +1,3 @@ +## 1.7.3 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 39bbba86c19..9f9661b1e77 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.2 +lastReleaseVersion: 1.7.3 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index a71b676aaca..2cc62425f30 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.3-dev +version: 1.7.3 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index fcb8e3b2745..7c3ccd16c8a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.6 + +No user-facing changes. + ## 5.1.5 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.6.md b/ruby/ql/lib/change-notes/released/5.1.6.md new file mode 100644 index 00000000000..74ba63bd37a --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.6.md @@ -0,0 +1,3 @@ +## 5.1.6 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index fee02733251..5ddeeed69fc 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.5 +lastReleaseVersion: 5.1.6 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 56041f3ddec..c3d1c07c2bc 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.6-dev +version: 5.1.6 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 24e725365af..ab000feb4a3 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.3 + +No user-facing changes. + ## 1.5.2 No user-facing changes. diff --git a/ruby/ql/src/change-notes/released/1.5.3.md b/ruby/ql/src/change-notes/released/1.5.3.md new file mode 100644 index 00000000000..2e9bcb5e663 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.5.3.md @@ -0,0 +1,3 @@ +## 1.5.3 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 7eb901bae56..232224b0e26 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.5.3 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index ca906b7f8b3..480f35c0170 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.3-dev +version: 1.5.3 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index b714dc31cb9..e2aeb59f40b 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.2 + +No user-facing changes. + ## 0.2.1 No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.2.2.md b/rust/ql/lib/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..98e69fd0772 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.2.md @@ -0,0 +1,3 @@ +## 0.2.2 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index a1006c2fb73..31f1e4b6074 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.2-dev +version: 0.2.2 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 61c5c651894..f5e2fdb6407 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.23 + +No user-facing changes. + ## 0.1.22 No user-facing changes. diff --git a/rust/ql/src/change-notes/released/0.1.23.md b/rust/ql/src/change-notes/released/0.1.23.md new file mode 100644 index 00000000000..3e1036afffa --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.23.md @@ -0,0 +1,3 @@ +## 0.1.23 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index c9f15f8e72c..484c6d90798 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.22 +lastReleaseVersion: 0.1.23 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 0ff9d3d1f2e..f82c2989119 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.23-dev +version: 0.1.23 groups: - rust - queries diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index 062bb537ba2..e2c7978d2b6 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.12 + +No user-facing changes. + ## 0.0.11 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.12.md b/shared/concepts/change-notes/released/0.0.12.md new file mode 100644 index 00000000000..0e206033bc4 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.12.md @@ -0,0 +1,3 @@ +## 0.0.12 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index e679dc42092..997fb8da83c 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.11 +lastReleaseVersion: 0.0.12 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index fa25c3b42fc..9563fa88a75 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.12-dev +version: 0.0.12 groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index c35db78c988..523f7667b24 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.22.md b/shared/controlflow/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index ac8be746d3f..6235f8a9415 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.22-dev +version: 2.0.22 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index a447303727c..8ade6c20ef4 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.22.md b/shared/dataflow/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 523275d527a..f48e193d0e0 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.22-dev +version: 2.0.22 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index f57268a5033..27e5fb03dfa 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.38.md b/shared/mad/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/mad/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index a0429dd8ea0..e68fc9cacc0 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 4f4b3189bb4..28235d47f61 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.16 + +No user-facing changes. + ## 0.0.15 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.16.md b/shared/quantum/change-notes/released/0.0.16.md new file mode 100644 index 00000000000..62b5521ea01 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.16.md @@ -0,0 +1,3 @@ +## 0.0.16 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index dff35216fc6..a49f7be4cff 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.15 +lastReleaseVersion: 0.0.16 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index aabdb5f63ea..292c5e71a4c 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.16-dev +version: 0.0.16 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 99a7f790327..c1a36a57de3 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.38.md b/shared/rangeanalysis/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 66c25d137f0..7274389d494 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index bfca1c264b2..0002bcde38e 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.38.md b/shared/regex/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/regex/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index addf0bb8af6..863bbd2cec4 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 46a9b5f6985..1dfec3daacc 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.14 + +No user-facing changes. + ## 2.0.13 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.14.md b/shared/ssa/change-notes/released/2.0.14.md new file mode 100644 index 00000000000..13190ad53e3 --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.14.md @@ -0,0 +1,3 @@ +## 2.0.14 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 30d169d6eb8..23aa0864b29 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.13 +lastReleaseVersion: 2.0.14 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 5271eda059b..0c98b21ac8c 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.14-dev +version: 2.0.14 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index b4d2815a622..00273047253 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.38.md b/shared/threat-models/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 35beca0110a..4b0a24349a5 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.38-dev +version: 1.0.38 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 2760cd1f529..ad2c71497db 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.38.md b/shared/tutorial/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index c6ca9c2088e..ad3ab5d1e36 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 2fc9a954f23..38e81a0275d 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.38.md b/shared/typeflow/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index f474a085b54..7aae5aa639d 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index 172f2ee2b29..d5252bfc0c4 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.19 + +No user-facing changes. + ## 0.0.18 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.19.md b/shared/typeinference/change-notes/released/0.0.19.md new file mode 100644 index 00000000000..914e4c9074d --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.19.md @@ -0,0 +1,3 @@ +## 0.0.19 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index a0d2bc59d97..f406319f372 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.18 +lastReleaseVersion: 0.0.19 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index fb32a3f11f2..96b4b994f18 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.19-dev +version: 0.0.19 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 52da09238e5..81415ed396f 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.22.md b/shared/typetracking/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 5b9eac9fed3..327586ea4a4 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.22-dev +version: 2.0.22 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index bfc79532079..6c9dced04a3 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.38.md b/shared/typos/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/typos/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 074a90c7d5c..b144d6becde 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index e3ff0ae2f34..30fd964656d 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.25 + +No user-facing changes. + ## 2.0.24 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.25.md b/shared/util/change-notes/released/2.0.25.md new file mode 100644 index 00000000000..ca39dd50c69 --- /dev/null +++ b/shared/util/change-notes/released/2.0.25.md @@ -0,0 +1,3 @@ +## 2.0.25 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 1460df314d5..f54d8620118 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.24 +lastReleaseVersion: 2.0.25 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 56307bd090e..f5cf46fc74c 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.25-dev +version: 2.0.25 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index a196b41e650..5c7447a15dd 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.38.md b/shared/xml/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/xml/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 129a49f7d4f..b3fc028fe4d 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 4a595f06ff9..073ffd8edae 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.38.md b/shared/yaml/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 1785f83701c..8303f3fdda5 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.38-dev +version: 1.0.38 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index bcf798b73d4..da1d658ad02 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.3 + +No user-facing changes. + ## 6.1.2 No user-facing changes. diff --git a/swift/ql/lib/change-notes/released/6.1.3.md b/swift/ql/lib/change-notes/released/6.1.3.md new file mode 100644 index 00000000000..34916dd37c8 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.1.3.md @@ -0,0 +1,3 @@ +## 6.1.3 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 8a2b5999dee..e641a874973 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.2 +lastReleaseVersion: 6.1.3 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a47b2056aea..4abb4c29a3a 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.3-dev +version: 6.1.3 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index b019c583059..d3fc5577d26 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.12 + +No user-facing changes. + ## 1.2.11 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.2.12.md b/swift/ql/src/change-notes/released/1.2.12.md new file mode 100644 index 00000000000..222316e646d --- /dev/null +++ b/swift/ql/src/change-notes/released/1.2.12.md @@ -0,0 +1,3 @@ +## 1.2.12 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 4bbe68e3fc0..3f5f457c354 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.11 +lastReleaseVersion: 1.2.12 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 56ad421ffac..40cf85918ab 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.12-dev +version: 1.2.12 groups: - swift - queries From 2854330759bac037fc956a4a457394abe72932d6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 8 Dec 2025 15:49:10 +0000 Subject: [PATCH 035/194] Post-release preparation for codeql-cli-2.23.8 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 082d5cd5ba2..2ef4b7765bf 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.24 +version: 0.4.25-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 39b5cb5399e..51286147674 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.16 +version: 0.6.17-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 70fc7be5109..76f68c8b83e 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.3 +version: 6.1.4-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index e74997f97a2..9161494a401 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.7 +version: 1.5.8-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index ea173a6b515..46f964a1bae 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.55 +version: 1.7.56-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index a3a470ea694..cb91019ff14 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.55 +version: 1.7.56-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 65a5412c23f..527e890f47b 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.3 +version: 5.4.4-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 27c4315f63a..efe787aaae5 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.3 +version: 1.5.4-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 5329a680c75..8bb3c230c3e 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.38 +version: 1.0.39-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 077d88b4ab7..64cb6fbf98c 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.5 +version: 5.0.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 09af5091f68..d0c0874c987 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.2 +version: 1.5.3-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 44ab148e1cf..f0f57e7150d 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.2 +version: 7.8.3-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 8dac7fa1daf..d5ab0a6cc4a 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.3 +version: 1.10.4-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index c0553e5c29c..88072819279 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.18 +version: 2.6.19-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index dbdd402abb5..1ef59ad1834 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.3 +version: 2.2.4-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 61d94ab3ef0..3a79aea9f46 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.38 +version: 1.0.39-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 9f7bae40e6a..43e09a9cd09 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.3 +version: 5.0.4-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 2cc62425f30..cc3a6b25740 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.3 +version: 1.7.4-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index c3d1c07c2bc..6cc2814827c 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.6 +version: 5.1.7-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 480f35c0170..833f85894e3 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.3 +version: 1.5.4-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 31f1e4b6074..551f2cd20cf 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.2 +version: 0.2.3-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index f82c2989119..2162add3f35 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.23 +version: 0.1.24-dev groups: - rust - queries diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 9563fa88a75..8c44a51ff93 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.12 +version: 0.0.13-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 6235f8a9415..37ae8d21aaf 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.22 +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index f48e193d0e0..33335ec904f 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.22 +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index e68fc9cacc0..271e93b5c0b 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 292c5e71a4c..1f08c524321 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.16 +version: 0.0.17-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 7274389d494..f69da48d3fe 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 863bbd2cec4..522248c9f30 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 0c98b21ac8c..30854239413 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.14 +version: 2.0.15-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 4b0a24349a5..6b972def924 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.38 +version: 1.0.39-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index ad3ab5d1e36..a1ea6bd35cf 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index 7aae5aa639d..e2e41e87b79 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 96b4b994f18..0a5b99e7f11 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.19 +version: 0.0.20-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 327586ea4a4..e657f74f636 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.22 +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index b144d6becde..31dfb14955f 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index f5cf46fc74c..fed06829e33 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.25 +version: 2.0.26-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index b3fc028fe4d..079ebe8518c 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 8303f3fdda5..1e60008ca44 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.38 +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 4abb4c29a3a..3e1437148de 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.3 +version: 6.1.4-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 40cf85918ab..82f916cc3cc 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.12 +version: 1.2.13-dev groups: - swift - queries From c8992fc8342028a8f0f3ecee662613f7165882ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 00:33:13 +0000 Subject: [PATCH 036/194] Bump the nuget group with 1 update Bumps Newtonsoft.Json from 6.0.4 to 13.0.1 --- updated-dependencies: - dependency-name: Newtonsoft.Json dependency-version: 13.0.1 dependency-type: direct:production dependency-group: nuget ... Signed-off-by: dependabot[bot] --- .../posix/standalone_dependencies_no_framework/test_sdk.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj index 3beee773f83..b93eda83d55 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj @@ -11,6 +11,6 @@ - + From 134312173fdf93ff12f4f20a4a7cf4131f8767af Mon Sep 17 00:00:00 2001 From: i Date: Tue, 9 Dec 2025 08:41:01 +0800 Subject: [PATCH 037/194] MethodAccess has been deprecated, Change MethodAccess to MethodCall in query example. --- ...classes-for-working-with-java-programs.rst | 4 +-- .../basic-query-for-java-code.rst | 30 +++++++++---------- .../navigating-the-call-graph.rst | 2 +- .../codeql-language-guides/types-in-java.rst | 6 ++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst index 9921ba9734b..08f57a22519 100644 --- a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst +++ b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst @@ -231,7 +231,7 @@ Accesses +--------------------------------+---------------------+ | ``a[i]`` | ArrayAccess_ | +--------------------------------+---------------------+ -| ``f(...)`` | MethodAccess_ | +| ``f(...)`` | MethodCall_ | +--------------------------------+ | | ``e.m(...)`` | | +--------------------------------+---------------------+ @@ -374,7 +374,7 @@ Further reading .. _ThisAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$ThisAccess.html .. _SuperAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$SuperAccess.html .. _ArrayAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$ArrayAccess.html -.. _MethodAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$MethodAccess.html +.. _MethodCall: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$MethodCall.html .. _WildcardTypeAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$WildcardTypeAccess.html .. _FieldAccess: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$FieldAccess.html .. _CastExpr: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$CastExpr.html diff --git a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst index 63944d25d43..d9e61faeb9d 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst @@ -42,11 +42,11 @@ Running a quick query .. code-block:: ql - from MethodAccess ma + from MethodCall mc where - ma.getMethod().hasName("equals") and - ma.getArgument(0).(StringLiteral).getValue() = "" - select ma, "This comparison to empty string is inefficient, use isEmpty() instead." + mc.getMethod().hasName("equals") and + mc.getArgument(0).(StringLiteral).getValue() = "" + select mc, "This comparison to empty string is inefficient, use isEmpty() instead." Note that CodeQL treats Java and Kotlin as part of the same language, so even though this query starts with ``import java``, it will work for both Java and Kotlin code. @@ -55,7 +55,7 @@ Running a quick query .. image:: ../images/codeql-for-visual-studio-code/basic-java-query-results-1.png :align: center -If any matching code is found, click a link in the ``ma`` column to view the ``.equals`` expression in the code viewer. +If any matching code is found, click a link in the ``mc`` column to view the ``.equals`` expression in the code viewer. .. image:: ../images/codeql-for-visual-studio-code/basic-java-query-results-2.png :align: center @@ -72,15 +72,15 @@ After the initial ``import`` statement, this simple query comprises three parts +==================================================================================================+===================================================================================================================+===================================================================================================+ | ``import java`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ -| ``from MethodAccess ma`` | Defines the variables for the query. | We use: | +| ``from MethodCall mc`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | -| | `` `` | - a ``MethodAccess`` variable for call expressions | +| | `` `` | - a ``MethodCall`` variable for call expressions | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ -| ``where ma.getMethod().hasName("equals") and ma.getArgument(0).(StringLiteral).getValue() = ""`` | Defines a condition on the variables. | ``ma.getMethod().hasName("equals")`` restricts ``ma`` to only calls to methods call ``equals``. | +| ``where mc.getMethod().hasName("equals") and mc.getArgument(0).(StringLiteral).getValue() = ""`` | Defines a condition on the variables. | ``mc.getMethod().hasName("equals")`` restricts ``mc`` to only calls to methods call ``equals``. | | | | | -| | | ``ma.getArgument(0).(StringLiteral).getValue() = ""`` says the argument must be literal ``""``. | +| | | ``mc.getArgument(0).(StringLiteral).getValue() = ""`` says the argument must be literal ``""``. | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ -| ``select ma, "This comparison to empty string is inefficient, use isEmpty() instead."`` | Defines what to report for each match. | Reports the resulting ``.equals`` expression with a string that explains the problem. | +| ``select mc, "This comparison to empty string is inefficient, use isEmpty() instead."`` | Defines what to report for each match. | Reports the resulting ``.equals`` expression with a string that explains the problem. | | | | | | | ``select`` statements for queries that are used to find instances of poor coding practice are always in the form: | | | | ``select , ""`` | | @@ -110,16 +110,16 @@ In this case, it is not possible to simply use ``o.isEmpty()`` instead, as ``o`` .. code-block:: ql - ma.getQualifier().getType() instanceof TypeString + mc.getQualifier().getType() instanceof TypeString The ``where`` clause is now: .. code-block:: ql where - ma.getQualifier().getType() instanceof TypeString and - ma.getMethod().hasName("equals") and - ma.getArgument(0).(StringLiteral).getValue() = "" + mc.getQualifier().getType() instanceof TypeString and + mc.getMethod().hasName("equals") and + mc.getArgument(0).(StringLiteral).getValue() = "" #. Re-run the query. @@ -141,4 +141,4 @@ Further reading .. |image-quick-query| image:: ../images/codeql-for-visual-studio-code/quick-query-tab-java.png -.. |result-col-1| replace:: The first column corresponds to the expression ``ma`` and is linked to the location in the source code of the project where ``ma`` occurs. \ No newline at end of file +.. |result-col-1| replace:: The first column corresponds to the expression ``mc`` and is linked to the location in the source code of the project where ``mc`` occurs. \ No newline at end of file diff --git a/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst b/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst index 6e1b443f96b..a36b029b1d3 100644 --- a/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst +++ b/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst @@ -8,7 +8,7 @@ CodeQL has classes for identifying code that calls other code, and code that can Call graph classes ------------------ -The CodeQL library for Java/Kotlin provides two abstract classes for representing a program's call graph: ``Callable`` and ``Call``. The former is simply the common superclass of ``Method`` and ``Constructor``, the latter is a common superclass of ``MethodAccess``, ``ClassInstanceExpression``, ``ThisConstructorInvocationStmt`` and ``SuperConstructorInvocationStmt``. Simply put, a ``Callable`` is something that can be invoked, and a ``Call`` is something that invokes a ``Callable``. +The CodeQL library for Java/Kotlin provides two abstract classes for representing a program's call graph: ``Callable`` and ``Call``. The former is simply the common superclass of ``Method`` and ``Constructor``, the latter is a common superclass of ``MethodCall``, ``ClassInstanceExpression``, ``ThisConstructorInvocationStmt`` and ``SuperConstructorInvocationStmt``. Simply put, a ``Callable`` is something that can be invoked, and a ``Call`` is something that invokes a ``Callable``. For example, in the following program all callables and calls have been annotated with comments: diff --git a/docs/codeql/codeql-language-guides/types-in-java.rst b/docs/codeql/codeql-language-guides/types-in-java.rst index bed021489ea..2633f8d012f 100644 --- a/docs/codeql/codeql-language-guides/types-in-java.rst +++ b/docs/codeql/codeql-language-guides/types-in-java.rst @@ -113,7 +113,7 @@ To identify these cases, we can create two CodeQL classes that represent, respec } /** class representing calls to java.util.Collection.toArray(T[]) */ - class CollectionToArrayCall extends MethodAccess { + class CollectionToArrayCall extends MethodCall { CollectionToArrayCall() { exists(CollectionToArray m | this.getMethod().getSourceDeclaration().overridesOrInstantiates*(m) @@ -210,7 +210,7 @@ Now we want to identify all calls to ``Collection.contains``, including any meth .. code-block:: ql - class JavaUtilCollectionContainsCall extends MethodAccess { + class JavaUtilCollectionContainsCall extends MethodCall { JavaUtilCollectionContainsCall() { exists(JavaUtilCollectionContains jucc | this.getMethod().getSourceDeclaration().overrides*(jucc) @@ -297,7 +297,7 @@ Adding these three improvements, our final query becomes: } } - class JavaUtilCollectionContainsCall extends MethodAccess { + class JavaUtilCollectionContainsCall extends MethodCall { JavaUtilCollectionContainsCall() { exists(JavaUtilCollectionContains jucc | this.getMethod().getSourceDeclaration().overrides*(jucc) From d15342db1fc18ec72fd961860c8b9a97f5dd2815 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Tue, 9 Dec 2025 01:12:53 +0000 Subject: [PATCH 038/194] Fix table padding --- ...act-syntax-tree-classes-for-working-with-java-programs.rst | 2 +- .../codeql-language-guides/basic-query-for-java-code.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst index 08f57a22519..c94b9d1891e 100644 --- a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst +++ b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst @@ -231,7 +231,7 @@ Accesses +--------------------------------+---------------------+ | ``a[i]`` | ArrayAccess_ | +--------------------------------+---------------------+ -| ``f(...)`` | MethodCall_ | +| ``f(...)`` | MethodCall_ | +--------------------------------+ | | ``e.m(...)`` | | +--------------------------------+---------------------+ diff --git a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst index d9e61faeb9d..b61e0f01ee7 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst @@ -72,9 +72,9 @@ After the initial ``import`` statement, this simple query comprises three parts +==================================================================================================+===================================================================================================================+===================================================================================================+ | ``import java`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ -| ``from MethodCall mc`` | Defines the variables for the query. | We use: | +| ``from MethodCall mc`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | -| | `` `` | - a ``MethodCall`` variable for call expressions | +| | `` `` | - a ``MethodCall`` variable for call expressions | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ | ``where mc.getMethod().hasName("equals") and mc.getArgument(0).(StringLiteral).getValue() = ""`` | Defines a condition on the variables. | ``mc.getMethod().hasName("equals")`` restricts ``mc`` to only calls to methods call ``equals``. | | | | | From 9eb1eb8f0d40b3f97838ccc37ec2a502f8f0e9a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 03:07:27 +0000 Subject: [PATCH 039/194] Bump the extractor-dependencies group in /go/extractor with 2 updates Bumps the extractor-dependencies group in /go/extractor with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/tools](https://github.com/golang/tools). Updates `golang.org/x/mod` from 0.30.0 to 0.31.0 - [Commits](https://github.com/golang/mod/compare/v0.30.0...v0.31.0) Updates `golang.org/x/tools` from 0.39.0 to 0.40.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.39.0...v0.40.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-version: 0.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies - dependency-name: golang.org/x/tools dependency-version: 0.40.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies ... Signed-off-by: dependabot[bot] --- go/extractor/go.mod | 6 +++--- go/extractor/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go/extractor/go.mod b/go/extractor/go.mod index e581fdb652c..2729c7dfcc5 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,8 +9,8 @@ toolchain go1.25.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.30.0 - golang.org/x/tools v0.39.0 + golang.org/x/mod v0.31.0 + golang.org/x/tools v0.40.0 ) -require golang.org/x/sync v0.18.0 // indirect +require golang.org/x/sync v0.19.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 6579b482848..488d2003193 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,8 +1,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= From 31b184a404d19e66c97367a13037b82075034e87 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 9 Dec 2025 08:54:51 +0100 Subject: [PATCH 040/194] Rust: Exclude deref expressions on raw pointers from call resolution stats --- rust/ql/src/queries/telemetry/DatabaseQuality.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index cf0505d53e4..5f50cdd4c4f 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -8,6 +8,7 @@ import rust import codeql.util.ReportStats import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl import codeql.rust.internal.TypeInference as TypeInference +import codeql.rust.internal.Type /** * A file that is included in the quality statistics. @@ -30,7 +31,8 @@ module CallTargetStats implements StatsSig { RelevantInvocationExpr() { this.getFile() instanceof RelevantFile and not this instanceof CallExprImpl::DynamicCallExpr and - not this = any(Operation o | not o.isOverloaded(_, _, _)) + not this = any(Operation o | not o.isOverloaded(_, _, _)) and + not this = any(DerefExpr de | TypeInference::inferType(de.getExpr()) instanceof PtrType) } } From e054741061bd4f3a7c6a9ed5601a33f53245bf46 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 9 Dec 2025 09:13:26 +0100 Subject: [PATCH 041/194] Update expected test output --- .../standalone_dependencies_no_framework/Assemblies.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected index 0934f8063db..10fa6873383 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected @@ -1 +1 @@ -| test-db/working/packages/newtonsoft.json/6.0.4/lib/net45/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | +| test-db/working/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | From 53ad3282c355ac01aa5b417ff504e9b07c62ca2e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 9 Dec 2025 13:47:53 +0100 Subject: [PATCH 042/194] Rust: Accept changes to expected files --- .../library-tests/dataflow/global/inline-flow.expected | 9 ++++++--- .../dataflow/global/viableCallable.expected | 1 + .../security/CWE-825/AccessAfterLifetime.expected | 9 --------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected index 9a3c906ac90..2ffa7e10995 100644 --- a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected @@ -1,6 +1,7 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | -| 2 | Summary: futures_executor::local_pool::block_on; Argument[0]; ReturnValue; value | +| 2 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | +| 3 | Summary: futures_executor::local_pool::block_on; Argument[0]; ReturnValue; value | edges | main.rs:12:28:14:1 | { ... } | main.rs:17:13:17:23 | get_data(...) | provenance | | | main.rs:13:5:13:13 | source(...) | main.rs:12:28:14:1 | { ... } | provenance | | @@ -192,10 +193,11 @@ edges | main.rs:326:17:326:25 | source(...) | main.rs:326:13:326:13 | c | provenance | | | main.rs:334:9:334:9 | a | main.rs:335:10:335:10 | a | provenance | | | main.rs:334:13:334:55 | ...::block_on(...) | main.rs:334:9:334:9 | a | provenance | | -| main.rs:334:41:334:54 | async_source(...) | main.rs:334:13:334:55 | ...::block_on(...) | provenance | MaD:2 | +| main.rs:334:41:334:54 | async_source(...) | main.rs:334:13:334:55 | ...::block_on(...) | provenance | MaD:3 | | main.rs:346:44:348:9 | { ... } | main.rs:383:18:383:38 | t.get_double_number() | provenance | | | main.rs:346:44:348:9 | { ... } | main.rs:387:18:387:50 | ...::get_double_number(...) | provenance | | -| main.rs:347:13:347:29 | self.get_number() | main.rs:346:44:348:9 | { ... } | provenance | | +| main.rs:347:13:347:29 | self.get_number() | main.rs:347:13:347:33 | ... * ... | provenance | MaD:2 | +| main.rs:347:13:347:33 | ... * ... | main.rs:346:44:348:9 | { ... } | provenance | | | main.rs:350:33:352:9 | { ... } | main.rs:391:18:391:37 | ...::get_default(...) | provenance | | | main.rs:351:13:351:21 | source(...) | main.rs:350:33:352:9 | { ... } | provenance | | | main.rs:358:37:360:9 | { ... } | main.rs:347:13:347:29 | self.get_number() | provenance | | @@ -426,6 +428,7 @@ nodes | main.rs:335:10:335:10 | a | semmle.label | a | | main.rs:346:44:348:9 | { ... } | semmle.label | { ... } | | main.rs:347:13:347:29 | self.get_number() | semmle.label | self.get_number() | +| main.rs:347:13:347:33 | ... * ... | semmle.label | ... * ... | | main.rs:350:33:352:9 | { ... } | semmle.label | { ... } | | main.rs:351:13:351:21 | source(...) | semmle.label | source(...) | | main.rs:358:37:360:9 | { ... } | semmle.label | { ... } | diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index 66b4abd4649..9170332ea25 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -108,6 +108,7 @@ | main.rs:337:33:337:61 | test_async_await_async_part(...) | main.rs:321:1:331:1 | fn test_async_await_async_part | | main.rs:347:13:347:29 | self.get_number() | main.rs:358:9:360:9 | fn get_number | | main.rs:347:13:347:29 | self.get_number() | main.rs:366:9:368:9 | fn get_number | +| main.rs:347:13:347:33 | ... * ... | {EXTERNAL LOCATION} | fn mul | | main.rs:351:13:351:21 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:359:13:359:21 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:371:13:371:22 | source(...) | main.rs:1:1:3:1 | fn source | diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index 5f819dee521..f768a95011c 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -193,10 +193,6 @@ edges | lifetime.rs:798:9:798:12 | &val | lifetime.rs:798:2:798:12 | return ... | provenance | | | lifetime.rs:802:6:802:8 | ptr | lifetime.rs:808:23:808:25 | ptr | provenance | | | lifetime.rs:802:12:802:24 | get_pointer(...) | lifetime.rs:802:6:802:8 | ptr | provenance | | -| lifetime.rs:841:13:841:27 | ...: ... | lifetime.rs:843:12:843:14 | ptr | provenance | | -| lifetime.rs:851:6:851:8 | ptr | lifetime.rs:853:20:853:22 | ptr | provenance | | -| lifetime.rs:851:12:851:23 | &local_value | lifetime.rs:851:6:851:8 | ptr | provenance | | -| lifetime.rs:853:20:853:22 | ptr | lifetime.rs:841:13:841:27 | ...: ... | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:21:19:21:20 | p1 | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:29:19:29:20 | p1 | provenance | | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | main.rs:18:9:18:10 | p1 [&ref] | provenance | | @@ -412,11 +408,6 @@ nodes | lifetime.rs:802:6:802:8 | ptr | semmle.label | ptr | | lifetime.rs:802:12:802:24 | get_pointer(...) | semmle.label | get_pointer(...) | | lifetime.rs:808:23:808:25 | ptr | semmle.label | ptr | -| lifetime.rs:841:13:841:27 | ...: ... | semmle.label | ...: ... | -| lifetime.rs:843:12:843:14 | ptr | semmle.label | ptr | -| lifetime.rs:851:6:851:8 | ptr | semmle.label | ptr | -| lifetime.rs:851:12:851:23 | &local_value | semmle.label | &local_value | -| lifetime.rs:853:20:853:22 | ptr | semmle.label | ptr | | main.rs:18:9:18:10 | p1 [&ref] | semmle.label | p1 [&ref] | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | semmle.label | ...::as_ptr(...) [&ref] | | main.rs:18:26:18:28 | &b1 | semmle.label | &b1 | From e9aa6ddf53b31426df1f84137408daef4da4c934 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 10 Dec 2025 10:08:21 +0100 Subject: [PATCH 043/194] Swift: Strip more unsupported arguments We had customer reports where these occur in practise, although we have not observed these ourselves in frontend calls. --- swift/tools/tracing-config.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/swift/tools/tracing-config.lua b/swift/tools/tracing-config.lua index fdb0cfd16b6..a96d6bf68ca 100644 --- a/swift/tools/tracing-config.lua +++ b/swift/tools/tracing-config.lua @@ -53,6 +53,13 @@ function RegisterExtractorPack(id) strip_unsupported_arg(args, '-stack-check', 0) strip_unsupported_arg(args, '-experimental-skip-non-inlinable-function-bodies-without-types', 0) strip_unsupported_clang_arg(args, '-ivfsstatcache', 1) + strip_unsupported_clang_arg(args, '-fno-odr-hash-protocols', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+enableAggressiveVLAFolding', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+revert09abecef7bbf', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+thisNoAlignAttr', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+thisNoNullAttr', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError', 0) -- The four args below are removed to workaround version mismatches due to recent versions -- of Xcode defaulting to explicit modules: strip_unsupported_arg(args, '-disable-implicit-swift-modules', 0) From 3cabcfef75e9d1ffbe226ed6e4830539e7d2f942 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 10 Dec 2025 10:11:41 +0100 Subject: [PATCH 044/194] Swift: Skip `-scan-dependencies` compiler calls These do not produce any useful data and just crash our frontend. --- swift/tools/tracing-config.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/swift/tools/tracing-config.lua b/swift/tools/tracing-config.lua index a96d6bf68ca..a29e7b3b953 100644 --- a/swift/tools/tracing-config.lua +++ b/swift/tools/tracing-config.lua @@ -127,6 +127,9 @@ function RegisterExtractorPack(id) if compilerArguments.argv[1] == '-emit-supported-features' then return nil end + if compilerArguments.argv[1] == '-scan-dependencies' then + return nil + end strip_unsupported_args(compilerArguments.argv) replace_resource_dir(compilerPath, compilerArguments.argv) From 30b903604d2d91060989e51d6a8d9a72fcf98dcc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 10 Dec 2025 11:02:04 +0100 Subject: [PATCH 045/194] Rust: Update expected test output --- .../CONSISTENCY/PathResolutionConsistency.expected | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..9ff99af9fac --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,8 @@ +multipleResolvedTargets +| main.rs:18:14:18:26 | * ... | +| main.rs:22:14:22:26 | * ... | +| main.rs:42:9:42:25 | * ... | +| main.rs:85:15:85:25 | * ... | +| main.rs:94:9:94:23 | * ... | +| main.rs:104:9:104:23 | * ... | +| main.rs:110:10:110:24 | * ... | From fa02842d30c46eeee8a7a24c1f9f61eddf3b9bd1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:16:22 +0000 Subject: [PATCH 046/194] Rust: Accept consistency check changes. --- .../CONSISTENCY/PathResolutionConsistency.expected | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..9ff99af9fac --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,8 @@ +multipleResolvedTargets +| main.rs:18:14:18:26 | * ... | +| main.rs:22:14:22:26 | * ... | +| main.rs:42:9:42:25 | * ... | +| main.rs:85:15:85:25 | * ... | +| main.rs:94:9:94:23 | * ... | +| main.rs:104:9:104:23 | * ... | +| main.rs:110:10:110:24 | * ... | From 7d1acbcb8781876c637dc173f881a464f061221f Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 5 Dec 2025 11:19:06 +0100 Subject: [PATCH 047/194] Rust: Restrict the scope of `DereferenceSink` to dereferences of raw pointers --- .../AccessInvalidPointerExtensions.qll | 22 ++-- .../security/CWE-825/AccessAfterLifetime.ql | 14 +-- .../CWE-825/AccessAfterLifetime.expected | 119 ++---------------- 3 files changed, 29 insertions(+), 126 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll index b8b40ffa257..d8d7be25933 100644 --- a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll @@ -10,6 +10,8 @@ private import codeql.rust.dataflow.FlowSink private import codeql.rust.Concepts private import codeql.rust.dataflow.internal.Node private import codeql.rust.security.Barriers as Barriers +private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.Type /** * Provides default sources, sinks and barriers for detecting accesses to @@ -47,16 +49,22 @@ module AccessInvalidPointer { ModelsAsDataSource() { sourceNode(this, "pointer-invalidate") } } - /** - * A pointer access using the unary `*` operator. - */ + /** A raw pointer access using the unary `*` operator. */ private class DereferenceSink extends Sink { - DereferenceSink() { any(DerefExpr p).getExpr() = this.asExpr() } + DereferenceSink() { + exists(Expr p, DerefExpr d | p = d.getExpr() and p = this.asExpr() | + // Dereferencing a raw pointer is an unsafe operation. Hence relevant + // dereferences must occur inside code marked as unsafe. + // See: https://doc.rust-lang.org/reference/types/pointer.html#r-type.pointer.raw.safety + (p.getEnclosingBlock*().isUnsafe() or p.getEnclosingCallable().(Function).isUnsafe()) and + // We are only interested in dereferences of raw pointers, as other uses + // of `*` are safe. + (not exists(TypeInference::inferType(p)) or TypeInference::inferType(p) instanceof PtrType) + ) + } } - /** - * A pointer access from model data. - */ + /** A pointer access from model data. */ private class ModelsAsDataSink extends Sink { ModelsAsDataSink() { sinkNode(this, "pointer-access") } } diff --git a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql index b9bf80c9474..edc22a86409 100644 --- a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql +++ b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql @@ -26,18 +26,18 @@ module AccessAfterLifetimeConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node node) { node instanceof AccessAfterLifetime::Source and // exclude cases with sources in macros, since these results are difficult to interpret - not node.asExpr().isFromMacroExpansion() + not node.asExpr().isFromMacroExpansion() and + AccessAfterLifetime::sourceValueScope(node, _, _) } predicate isSink(DataFlow::Node node) { node instanceof AccessAfterLifetime::Sink and - // exclude cases with sinks in macros, since these results are difficult to interpret + // Exclude cases with sinks in macros, since these results are difficult to interpret not node.asExpr().isFromMacroExpansion() and - // include only results inside `unsafe` blocks, as other results tend to be false positives - ( - node.asExpr().getEnclosingBlock*().isUnsafe() or - node.asExpr().getEnclosingCallable().(Function).isUnsafe() - ) + // TODO: Remove this condition if it can be done without negatively + // impacting performance. This condition only include nodes with + // corresponding to an expression. This excludes sinks from models-as-data. + exists(node.asExpr()) } predicate isBarrier(DataFlow::Node barrier) { barrier instanceof AccessAfterLifetime::Barrier } diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index f768a95011c..db3179988be 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -27,24 +27,6 @@ edges | deallocation.rs:242:6:242:7 | p1 | deallocation.rs:245:14:245:15 | p1 | provenance | | | deallocation.rs:242:6:242:7 | p1 | deallocation.rs:252:14:252:15 | p1 | provenance | | | deallocation.rs:242:30:242:38 | &raw const my_buffer | deallocation.rs:242:6:242:7 | p1 | provenance | | -| deallocation.rs:322:28:322:43 | ...: ... | deallocation.rs:324:18:324:20 | ptr | provenance | | -| deallocation.rs:334:27:334:42 | ...: ... | deallocation.rs:342:18:342:20 | ptr | provenance | | -| deallocation.rs:351:7:351:10 | ptr1 | deallocation.rs:354:4:354:7 | ptr1 | provenance | | -| deallocation.rs:351:7:351:10 | ptr1 | deallocation.rs:354:4:354:7 | ptr1 | provenance | | -| deallocation.rs:351:14:351:33 | &raw mut ... | deallocation.rs:351:7:351:10 | ptr1 | provenance | | -| deallocation.rs:352:7:352:10 | ptr2 | deallocation.rs:355:4:355:7 | ptr2 | provenance | | -| deallocation.rs:352:7:352:10 | ptr2 | deallocation.rs:355:4:355:7 | ptr2 | provenance | | -| deallocation.rs:352:14:352:33 | &raw mut ... | deallocation.rs:352:7:352:10 | ptr2 | provenance | | -| deallocation.rs:354:4:354:7 | ptr1 | deallocation.rs:357:27:357:30 | ptr1 | provenance | | -| deallocation.rs:355:4:355:7 | ptr2 | deallocation.rs:359:26:359:29 | ptr2 | provenance | | -| deallocation.rs:357:27:357:30 | ptr1 | deallocation.rs:322:28:322:43 | ...: ... | provenance | | -| deallocation.rs:359:26:359:29 | ptr2 | deallocation.rs:334:27:334:42 | ...: ... | provenance | | -| deallocation.rs:370:6:370:9 | ptr1 | deallocation.rs:373:13:373:16 | ptr1 | provenance | | -| deallocation.rs:370:6:370:9 | ptr1 | deallocation.rs:381:13:381:16 | ptr1 | provenance | | -| deallocation.rs:370:13:370:28 | &raw mut ... | deallocation.rs:370:6:370:9 | ptr1 | provenance | | -| deallocation.rs:389:6:389:9 | ptr2 | deallocation.rs:392:13:392:16 | ptr2 | provenance | | -| deallocation.rs:389:6:389:9 | ptr2 | deallocation.rs:402:13:402:16 | ptr2 | provenance | | -| deallocation.rs:389:13:389:28 | &raw mut ... | deallocation.rs:389:6:389:9 | ptr2 | provenance | | | lifetime.rs:21:2:21:18 | return ... | lifetime.rs:54:11:54:30 | get_local_dangling(...) | provenance | | | lifetime.rs:21:9:21:18 | &my_local1 | lifetime.rs:21:2:21:18 | return ... | provenance | | | lifetime.rs:27:2:27:22 | return ... | lifetime.rs:55:11:55:34 | get_local_dangling_mut(...) | provenance | | @@ -80,15 +62,6 @@ edges | lifetime.rs:94:7:94:16 | &my_local1 | lifetime.rs:94:2:94:3 | p3 | provenance | | | lifetime.rs:119:15:119:24 | &my_local3 | lifetime.rs:91:17:91:30 | ...: ... | provenance | | | lifetime.rs:119:27:119:44 | &mut my_local_mut4 | lifetime.rs:91:33:91:44 | ...: ... | provenance | | -| lifetime.rs:127:2:127:24 | return ... | lifetime.rs:139:11:139:21 | get_const(...) | provenance | | -| lifetime.rs:127:9:127:24 | &MY_GLOBAL_CONST | lifetime.rs:127:2:127:24 | return ... | provenance | | -| lifetime.rs:134:3:134:30 | return ... | lifetime.rs:140:11:140:26 | get_static_mut(...) | provenance | | -| lifetime.rs:134:10:134:30 | &mut MY_GLOBAL_STATIC | lifetime.rs:134:3:134:30 | return ... | provenance | | -| lifetime.rs:139:6:139:7 | p1 | lifetime.rs:147:14:147:15 | p1 | provenance | | -| lifetime.rs:139:11:139:21 | get_const(...) | lifetime.rs:139:6:139:7 | p1 | provenance | | -| lifetime.rs:140:6:140:7 | p2 | lifetime.rs:148:14:148:15 | p2 | provenance | | -| lifetime.rs:140:6:140:7 | p2 | lifetime.rs:154:5:154:6 | p2 | provenance | | -| lifetime.rs:140:11:140:26 | get_static_mut(...) | lifetime.rs:140:6:140:7 | p2 | provenance | | | lifetime.rs:161:17:161:31 | ...: ... | lifetime.rs:164:13:164:15 | ptr | provenance | | | lifetime.rs:169:17:169:31 | ...: ... | lifetime.rs:172:13:172:15 | ptr | provenance | | | lifetime.rs:177:17:177:31 | ...: ... | lifetime.rs:180:13:180:15 | ptr | provenance | | @@ -106,7 +79,6 @@ edges | lifetime.rs:201:15:201:17 | ptr | lifetime.rs:177:17:177:31 | ...: ... | provenance | | | lifetime.rs:206:19:206:36 | ...: ... | lifetime.rs:216:16:216:21 | ptr_up | provenance | | | lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:211:33:211:40 | ptr_ours | provenance | | -| lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:217:18:217:25 | ptr_ours | provenance | | | lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:225:2:225:16 | return ptr_ours | provenance | | | lifetime.rs:208:17:208:29 | &my_local_rec | lifetime.rs:208:6:208:13 | ptr_ours | provenance | | | lifetime.rs:211:7:211:14 | ptr_down | lifetime.rs:218:18:218:25 | ptr_down | provenance | | @@ -150,41 +122,21 @@ edges | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:428:7:428:8 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:433:7:433:8 | p1 | provenance | | | lifetime.rs:383:31:383:37 | &raw mut my_pair | lifetime.rs:383:3:383:4 | p1 | provenance | | -| lifetime.rs:384:3:384:4 | p2 | lifetime.rs:394:14:394:15 | p2 | provenance | | -| lifetime.rs:384:3:384:4 | p2 | lifetime.rs:421:15:421:16 | p2 | provenance | | -| lifetime.rs:384:27:384:35 | &raw const ... | lifetime.rs:384:3:384:4 | p2 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:395:14:395:15 | p3 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:400:5:400:6 | p3 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:400:5:400:6 | p3 | provenance | | -| lifetime.rs:385:31:385:39 | &raw mut ... | lifetime.rs:385:3:385:4 | p3 | provenance | | -| lifetime.rs:400:5:400:6 | p3 | lifetime.rs:422:15:422:16 | p3 | provenance | | -| lifetime.rs:400:5:400:6 | p3 | lifetime.rs:429:6:429:7 | p3 | provenance | | | lifetime.rs:442:6:442:7 | r1 | lifetime.rs:443:42:443:43 | r1 | provenance | | | lifetime.rs:442:17:442:23 | &my_val | lifetime.rs:442:6:442:7 | r1 | provenance | | | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:446:13:446:14 | p1 | provenance | | | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:450:2:450:10 | return p1 | provenance | | | lifetime.rs:443:23:443:44 | ...::from_ref(...) | lifetime.rs:443:6:443:7 | p1 | provenance | | -| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:5 | +| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:3 | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:454:11:454:29 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:460:13:460:31 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:454:6:454:7 | p1 | lifetime.rs:459:13:459:14 | p1 | provenance | | | lifetime.rs:454:11:454:29 | get_ptr_from_ref(...) | lifetime.rs:454:6:454:7 | p1 | provenance | | | lifetime.rs:568:7:568:8 | p2 | lifetime.rs:572:14:572:15 | p2 | provenance | | | lifetime.rs:568:24:568:33 | &my_local2 | lifetime.rs:568:7:568:8 | p2 | provenance | | -| lifetime.rs:630:3:630:6 | str2 | lifetime.rs:633:15:633:18 | str2 | provenance | | -| lifetime.rs:630:3:630:6 | str2 | lifetime.rs:641:14:641:17 | str2 | provenance | | -| lifetime.rs:630:10:630:25 | &... | lifetime.rs:630:3:630:6 | str2 | provenance | | -| lifetime.rs:654:4:654:7 | str2 | lifetime.rs:655:22:655:25 | str2 | provenance | | -| lifetime.rs:654:11:654:35 | ... + ... | lifetime.rs:654:4:654:7 | str2 | provenance | | -| lifetime.rs:654:31:654:35 | &str1 | lifetime.rs:654:11:654:35 | ... + ... | provenance | MaD:2 | -| lifetime.rs:654:31:654:35 | &str1 | lifetime.rs:654:11:654:35 | ... + ... | provenance | MaD:1 | | lifetime.rs:655:4:655:7 | ref1 | lifetime.rs:659:15:659:18 | ref1 | provenance | | | lifetime.rs:655:4:655:7 | ref1 | lifetime.rs:667:14:667:17 | ref1 | provenance | | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | lifetime.rs:659:15:659:18 | ref1 | provenance | | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | lifetime.rs:667:14:667:17 | ref1 | provenance | | | lifetime.rs:655:11:655:25 | &raw const str2 | lifetime.rs:655:4:655:7 | ref1 | provenance | | -| lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | lifetime.rs:655:4:655:7 | ref1 [&ref] | provenance | | -| lifetime.rs:655:22:655:25 | str2 | lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | provenance | | | lifetime.rs:781:2:781:19 | return ... | lifetime.rs:785:11:785:41 | get_local_for_unsafe_function(...) | provenance | | | lifetime.rs:781:9:781:19 | &my_local10 | lifetime.rs:781:2:781:19 | return ... | provenance | | | lifetime.rs:785:6:785:7 | p1 | lifetime.rs:789:12:789:13 | p1 | provenance | | @@ -196,47 +148,23 @@ edges | main.rs:18:9:18:10 | p1 [&ref] | main.rs:21:19:21:20 | p1 | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:29:19:29:20 | p1 | provenance | | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | main.rs:18:9:18:10 | p1 [&ref] | provenance | | -| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | +| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:51:23:51:24 | p2 | provenance | | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:64:23:64:24 | p2 | provenance | | | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | main.rs:44:9:44:10 | p2 [&ref] | provenance | | -| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | +| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | | main.rs:47:9:47:10 | p3 [&ref] | main.rs:52:23:52:24 | p3 | provenance | | | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | main.rs:47:9:47:10 | p3 [&ref] | provenance | | -| main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:3 | +| main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:1 | models -| 1 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 2 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 3 | Summary: ::as_mut_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 4 | Summary: ::as_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 5 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | +| 1 | Summary: ::as_mut_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | +| 2 | Summary: ::as_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | +| 3 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | nodes | deallocation.rs:242:6:242:7 | p1 | semmle.label | p1 | | deallocation.rs:242:30:242:38 | &raw const my_buffer | semmle.label | &raw const my_buffer | | deallocation.rs:245:14:245:15 | p1 | semmle.label | p1 | | deallocation.rs:252:14:252:15 | p1 | semmle.label | p1 | -| deallocation.rs:322:28:322:43 | ...: ... | semmle.label | ...: ... | -| deallocation.rs:324:18:324:20 | ptr | semmle.label | ptr | -| deallocation.rs:334:27:334:42 | ...: ... | semmle.label | ...: ... | -| deallocation.rs:342:18:342:20 | ptr | semmle.label | ptr | -| deallocation.rs:351:7:351:10 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:351:14:351:33 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:352:7:352:10 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:352:14:352:33 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:354:4:354:7 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:354:4:354:7 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:355:4:355:7 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:355:4:355:7 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:357:27:357:30 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:359:26:359:29 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:370:6:370:9 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:370:13:370:28 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:373:13:373:16 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:381:13:381:16 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:389:6:389:9 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:389:13:389:28 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:392:13:392:16 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:402:13:402:16 | ptr2 | semmle.label | ptr2 | | lifetime.rs:21:2:21:18 | return ... | semmle.label | return ... | | lifetime.rs:21:9:21:18 | &my_local1 | semmle.label | &my_local1 | | lifetime.rs:27:2:27:22 | return ... | semmle.label | return ... | @@ -282,17 +210,6 @@ nodes | lifetime.rs:110:5:110:6 | p2 | semmle.label | p2 | | lifetime.rs:119:15:119:24 | &my_local3 | semmle.label | &my_local3 | | lifetime.rs:119:27:119:44 | &mut my_local_mut4 | semmle.label | &mut my_local_mut4 | -| lifetime.rs:127:2:127:24 | return ... | semmle.label | return ... | -| lifetime.rs:127:9:127:24 | &MY_GLOBAL_CONST | semmle.label | &MY_GLOBAL_CONST | -| lifetime.rs:134:3:134:30 | return ... | semmle.label | return ... | -| lifetime.rs:134:10:134:30 | &mut MY_GLOBAL_STATIC | semmle.label | &mut MY_GLOBAL_STATIC | -| lifetime.rs:139:6:139:7 | p1 | semmle.label | p1 | -| lifetime.rs:139:11:139:21 | get_const(...) | semmle.label | get_const(...) | -| lifetime.rs:140:6:140:7 | p2 | semmle.label | p2 | -| lifetime.rs:140:11:140:26 | get_static_mut(...) | semmle.label | get_static_mut(...) | -| lifetime.rs:147:14:147:15 | p1 | semmle.label | p1 | -| lifetime.rs:148:14:148:15 | p2 | semmle.label | p2 | -| lifetime.rs:154:5:154:6 | p2 | semmle.label | p2 | | lifetime.rs:161:17:161:31 | ...: ... | semmle.label | ...: ... | | lifetime.rs:164:13:164:15 | ptr | semmle.label | ptr | | lifetime.rs:169:17:169:31 | ...: ... | semmle.label | ...: ... | @@ -315,7 +232,6 @@ nodes | lifetime.rs:211:18:211:52 | access_ptr_rec(...) | semmle.label | access_ptr_rec(...) | | lifetime.rs:211:33:211:40 | ptr_ours | semmle.label | ptr_ours | | lifetime.rs:216:16:216:21 | ptr_up | semmle.label | ptr_up | -| lifetime.rs:217:18:217:25 | ptr_ours | semmle.label | ptr_ours | | lifetime.rs:218:18:218:25 | ptr_down | semmle.label | ptr_down | | lifetime.rs:225:2:225:16 | return ptr_ours | semmle.label | return ptr_ours | | lifetime.rs:230:6:230:14 | ptr_start | semmle.label | ptr_start | @@ -351,24 +267,13 @@ nodes | lifetime.rs:317:13:317:18 | result | semmle.label | result | | lifetime.rs:383:3:383:4 | p1 | semmle.label | p1 | | lifetime.rs:383:31:383:37 | &raw mut my_pair | semmle.label | &raw mut my_pair | -| lifetime.rs:384:3:384:4 | p2 | semmle.label | p2 | -| lifetime.rs:384:27:384:35 | &raw const ... | semmle.label | &raw const ... | -| lifetime.rs:385:3:385:4 | p3 | semmle.label | p3 | -| lifetime.rs:385:31:385:39 | &raw mut ... | semmle.label | &raw mut ... | | lifetime.rs:388:15:388:16 | p1 | semmle.label | p1 | | lifetime.rs:391:15:391:16 | p1 | semmle.label | p1 | -| lifetime.rs:394:14:394:15 | p2 | semmle.label | p2 | -| lifetime.rs:395:14:395:15 | p3 | semmle.label | p3 | | lifetime.rs:399:6:399:7 | p1 | semmle.label | p1 | -| lifetime.rs:400:5:400:6 | p3 | semmle.label | p3 | -| lifetime.rs:400:5:400:6 | p3 | semmle.label | p3 | | lifetime.rs:401:6:401:7 | p1 | semmle.label | p1 | | lifetime.rs:411:16:411:17 | p1 | semmle.label | p1 | | lifetime.rs:416:16:416:17 | p1 | semmle.label | p1 | -| lifetime.rs:421:15:421:16 | p2 | semmle.label | p2 | -| lifetime.rs:422:15:422:16 | p3 | semmle.label | p3 | | lifetime.rs:428:7:428:8 | p1 | semmle.label | p1 | -| lifetime.rs:429:6:429:7 | p3 | semmle.label | p3 | | lifetime.rs:433:7:433:8 | p1 | semmle.label | p1 | | lifetime.rs:442:6:442:7 | r1 | semmle.label | r1 | | lifetime.rs:442:17:442:23 | &my_val | semmle.label | &my_val | @@ -384,18 +289,8 @@ nodes | lifetime.rs:568:7:568:8 | p2 | semmle.label | p2 | | lifetime.rs:568:24:568:33 | &my_local2 | semmle.label | &my_local2 | | lifetime.rs:572:14:572:15 | p2 | semmle.label | p2 | -| lifetime.rs:630:3:630:6 | str2 | semmle.label | str2 | -| lifetime.rs:630:10:630:25 | &... | semmle.label | &... | -| lifetime.rs:633:15:633:18 | str2 | semmle.label | str2 | -| lifetime.rs:641:14:641:17 | str2 | semmle.label | str2 | -| lifetime.rs:654:4:654:7 | str2 | semmle.label | str2 | -| lifetime.rs:654:11:654:35 | ... + ... | semmle.label | ... + ... | -| lifetime.rs:654:31:654:35 | &str1 | semmle.label | &str1 | | lifetime.rs:655:4:655:7 | ref1 | semmle.label | ref1 | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | semmle.label | ref1 [&ref] | | lifetime.rs:655:11:655:25 | &raw const str2 | semmle.label | &raw const str2 | -| lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | semmle.label | &raw const str2 [&ref] | -| lifetime.rs:655:22:655:25 | str2 | semmle.label | str2 | | lifetime.rs:659:15:659:18 | ref1 | semmle.label | ref1 | | lifetime.rs:667:14:667:17 | ref1 | semmle.label | ref1 | | lifetime.rs:781:2:781:19 | return ... | semmle.label | return ... | From ade7815125e877e0c03f2d71e24b273c6818cc4c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 5 Dec 2025 14:35:26 +0100 Subject: [PATCH 048/194] Rust: Add change note --- .../src/change-notes/2025-12-05-exclude-dereference-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md diff --git a/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md b/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md new file mode 100644 index 00000000000..c0ccd758e8d --- /dev/null +++ b/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed false positives from the `rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. From 506a1ea0b8264c4b5954edd48844e3eee65b5488 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:32:12 +0000 Subject: [PATCH 049/194] Rust: Add test case for rust/access-after-lifetime-ended involving an invalidated reference. --- .../security/CWE-825/deallocation.rs | 26 +++++++++++++++++++ .../test/query-tests/security/CWE-825/main.rs | 3 +++ 2 files changed, 29 insertions(+) diff --git a/rust/ql/test/query-tests/security/CWE-825/deallocation.rs b/rust/ql/test/query-tests/security/CWE-825/deallocation.rs index 073d03260b3..ce043d69fdd 100644 --- a/rust/ql/test/query-tests/security/CWE-825/deallocation.rs +++ b/rust/ql/test/query-tests/security/CWE-825/deallocation.rs @@ -403,3 +403,29 @@ pub fn test_vec_reserve() { println!(" v4 = {}", v4); // corrupt in practice } } + +// --- pointer to reference --- + +pub fn test_pointer_converted_to_reference() { + let layout = std::alloc::Layout::new::(); + let m3; + + // allocate + unsafe { + let m1 = std::alloc::alloc(layout); // *mut u8 + let m2 = m1 as *mut u128; // *mut u128 + m3 = &mut *m2; // &u128 + } + + *m3 = 1; // GOOD + println!(" v1 = {}", *m3); // GOOD + + // free + unsafe { + std::alloc::dealloc((&raw mut *m3) as *mut u8, layout); // $ MISSING: Source[rust/access-invalid-pointer]=dealloc + } + // (m1, m2, m3 are now dangling) + + // (this is corrupt in practice) + println!(" v2 = {} (!)", *m3); // $ MISSING: Alert[rust/access-invalid-pointer]=dealloc +} diff --git a/rust/ql/test/query-tests/security/CWE-825/main.rs b/rust/ql/test/query-tests/security/CWE-825/main.rs index 09a3d279c21..d14c5d463ec 100644 --- a/rust/ql/test/query-tests/security/CWE-825/main.rs +++ b/rust/ql/test/query-tests/security/CWE-825/main.rs @@ -143,6 +143,9 @@ fn main() { println!("test_vec_reserve:"); test_vec_reserve(); + println!("test_pointer_converted_to_reference:"); + test_pointer_converted_to_reference(); + // --- println!("test_local_dangling:"); From c5a44cf8ffc3f738d72faa56bb4381d993d281ba Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 10 Dec 2025 09:53:07 +0100 Subject: [PATCH 050/194] Rust: Accept changes to expected files --- .../CWE-825/CONSISTENCY/PathResolutionConsistency.expected | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index c581cd273e6..b3a011a27af 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,6 +1,10 @@ multipleResolvedTargets | deallocation.rs:354:11:354:29 | ...::from(...) | | deallocation.rs:355:11:355:29 | ...::from(...) | +| deallocation.rs:420:2:420:4 | * ... | +| deallocation.rs:421:23:421:25 | * ... | +| deallocation.rs:425:33:425:35 | * ... | +| deallocation.rs:430:27:430:29 | * ... | | lifetime.rs:217:17:217:25 | * ... | | lifetime.rs:610:13:610:31 | ...::from(...) | | lifetime.rs:611:13:611:31 | ...::from(...) | From ebb989962c17c1533cb1d078dc1f5d45e8214898 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 9 Dec 2025 16:17:46 +0100 Subject: [PATCH 051/194] Guards: Generalise ValidationWrapper to support GuardValue-based BarrierGuards. --- .../semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/SsaImpl.qll | 6 ++++-- shared/controlflow/codeql/controlflow/Guards.qll | 10 +++++----- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 285e0dc8419..32ce89e2674 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -1051,12 +1051,12 @@ module BarrierGuardWithIntParam { } private predicate guardChecksInstr( - IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, boolean branch, + IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, IRGuards::GuardValue gv, int indirectionIndex ) { exists(Node node | nodeHasInstruction(node, instr, indirectionIndex) and - guardChecksNode(g, node, branch, indirectionIndex) + guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 624f82fd341..079fad797d8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -568,8 +568,10 @@ private module Cached { cached // nothing is actually cached module BarrierGuard { - private predicate guardChecksAdjTypes(Guards::Guards_v3::Guard g, Expr e, boolean branch) { - guardChecks(g, e, branch) + private predicate guardChecksAdjTypes( + Guards::Guards_v3::Guard g, Expr e, Guards::GuardValue gv + ) { + guardChecks(g, e, gv.asBooleanValue()) } private predicate guardChecksWithWrappers( diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index c0d07278b9a..0e5cf25fecb 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -1280,21 +1280,21 @@ module Make< } } - signature predicate guardChecksSig(Guard g, Expr e, boolean branch); + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv); bindingset[this] signature class StateSig; private module WithState { - signature predicate guardChecksSig(Guard g, Expr e, boolean branch, State state); + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, State state); } /** * Extends a `BarrierGuard` input predicate with wrapped invocations. */ module ValidationWrapper { - private predicate guardChecksWithState(Guard g, Expr e, boolean branch, Unit state) { - guardChecks0(g, e, branch) and exists(state) + private predicate guardChecksWithState(Guard g, Expr e, GuardValue gv, Unit state) { + guardChecks0(g, e, gv) and exists(state) } private module StatefulWrapper = ValidationWrapperWithState; @@ -1366,7 +1366,7 @@ module Make< * Holds if the guard `g` validates the expression `e` upon evaluating to `val`. */ private predicate guardChecks(Guard g, Expr e, GuardValue val, State state) { - guardChecks0(g, e, val.asBooleanValue(), state) + guardChecks0(g, e, val, state) or exists(NonOverridableMethodCall call, ParameterPosition ppos, ArgumentPosition apos | g = call and From 09058e48aa6c68858d9e9b70dbad5cb738a79111 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 9 Dec 2025 16:30:07 +0100 Subject: [PATCH 052/194] Guards: Rename -WithState to Parameterized-. --- .../code/cpp/ir/dataflow/internal/SsaImpl.qll | 4 +- .../controlflow/codeql/controlflow/Guards.qll | 39 +++++++++---------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 32ce89e2674..8dc3513b444 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -1064,8 +1064,8 @@ module BarrierGuardWithIntParam { DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, IRGuards::GuardValue val, int indirectionIndex ) { - IRGuards::Guards_v1::ValidationWrapperWithState::guardChecksDef(g, def, - val, indirectionIndex) + IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecksDef(g, + def, val, indirectionIndex) } Node getABarrierNode(int indirectionIndex) { diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 0e5cf25fecb..b313afcdb6b 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -1283,36 +1283,35 @@ module Make< signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv); bindingset[this] - signature class StateSig; + signature class ParamSig; - private module WithState { - signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, State state); + private module WithParam { + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, P par); } /** * Extends a `BarrierGuard` input predicate with wrapped invocations. */ module ValidationWrapper { - private predicate guardChecksWithState(Guard g, Expr e, GuardValue gv, Unit state) { - guardChecks0(g, e, gv) and exists(state) + private predicate guardChecksWithParam(Guard g, Expr e, GuardValue gv, Unit par) { + guardChecks0(g, e, gv) and exists(par) } - private module StatefulWrapper = ValidationWrapperWithState; + private module ParameterizedWrapper = + ParameterizedValidationWrapper; /** * Holds if the guard `g` validates the SSA definition `def` upon evaluating to `val`. */ predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val) { - StatefulWrapper::guardChecksDef(g, def, val, _) + ParameterizedWrapper::guardChecksDef(g, def, val, _) } } /** * Extends a `BarrierGuard` input predicate with wrapped invocations. */ - module ValidationWrapperWithState< - StateSig State, WithState::guardChecksSig/4 guardChecks0> - { + module ParameterizedValidationWrapper::guardChecksSig/4 guardChecks0> { private import WrapperGuard /** @@ -1321,12 +1320,12 @@ module Make< * parameter has been validated by the given guard. */ private predicate validReturnInValidationWrapper( - ReturnExpr ret, ParameterPosition ppos, GuardValue retval, State state + ReturnExpr ret, ParameterPosition ppos, GuardValue retval, P par ) { exists(NonOverridableMethod m, SsaParameterInit param, Guard guard, GuardValue val | m.getAReturnExpr() = ret and param.getParameter() = m.getParameter(ppos) and - guardChecksDef(guard, param, val, state) + guardChecksDef(guard, param, val, par) | guard.valueControls(ret.getBasicBlock(), val) and relevantReturnExprValue(m, ret, retval) @@ -1341,7 +1340,7 @@ module Make< * that the argument has been validated by the given guard. */ private NonOverridableMethod validationWrapper( - ParameterPosition ppos, GuardValue retval, State state + ParameterPosition ppos, GuardValue retval, P par ) { forex(ReturnExpr ret | result.getAReturnExpr() = ret and @@ -1350,12 +1349,12 @@ module Make< disjointValues(notRetval, retval) ) | - validReturnInValidationWrapper(ret, ppos, retval, state) + validReturnInValidationWrapper(ret, ppos, retval, par) ) or exists(SsaParameterInit param, BasicBlock bb, Guard guard, GuardValue val | param.getParameter() = result.getParameter(ppos) and - guardChecksDef(guard, param, val, state) and + guardChecksDef(guard, param, val, par) and guard.valueControls(bb, val) and normalExitBlock(bb) and retval = TException(false) @@ -1365,12 +1364,12 @@ module Make< /** * Holds if the guard `g` validates the expression `e` upon evaluating to `val`. */ - private predicate guardChecks(Guard g, Expr e, GuardValue val, State state) { - guardChecks0(g, e, val, state) + private predicate guardChecks(Guard g, Expr e, GuardValue val, P par) { + guardChecks0(g, e, val, par) or exists(NonOverridableMethodCall call, ParameterPosition ppos, ArgumentPosition apos | g = call and - call.getMethod() = validationWrapper(ppos, val, state) and + call.getMethod() = validationWrapper(ppos, val, par) and call.getArgument(apos) = e and parameterMatch(pragma[only_bind_out](ppos), pragma[only_bind_out](apos)) ) @@ -1379,9 +1378,9 @@ module Make< /** * Holds if the guard `g` validates the SSA definition `def` upon evaluating to `val`. */ - predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val, State state) { + predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val, P par) { exists(Expr e | - guardChecks(g, e, val, state) and + guardChecks(g, e, val, par) and guardReadsSsaVar(e, def) ) } From 9cd2247b91d4fe55ca32283ff1e3dc1c3f44fed3 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 10 Dec 2025 11:21:01 +0100 Subject: [PATCH 053/194] Java: expose support for more general BarrierGuards. --- .../java/dataflow/internal/DataFlowUtil.qll | 32 ++++++++++++++++--- .../code/java/dataflow/internal/SsaImpl.qll | 4 +-- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index 00e7d15ee8b..d96834a5533 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -374,6 +374,29 @@ class ContentSet instanceof Content { } } +/** + * Holds if the guard `g` validates the expression `e` upon evaluating to `gv`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ +signature predicate valueGuardChecksSig(Guard g, Expr e, GuardValue gv); + +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module BarrierGuardValue { + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode() { + SsaFlow::asNode(result) = + SsaImpl::DataFlowIntegration::BarrierGuard::getABarrierNode() + } +} + /** * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. * @@ -390,9 +413,10 @@ signature predicate guardChecksSig(Guard g, Expr e, boolean branch); * in data flow and taint tracking. */ module BarrierGuard { - /** Gets a node that is safely guarded by the given guard check. */ - Node getABarrierNode() { - SsaFlow::asNode(result) = - SsaImpl::DataFlowIntegration::BarrierGuard::getABarrierNode() + private predicate guardChecks0(Guard g, Expr e, GuardValue gv) { + guardChecks(g, e, gv.asBooleanValue()) } + + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode() { result = BarrierGuardValue::getABarrierNode() } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 079fad797d8..323f14f550f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -564,14 +564,14 @@ private module Cached { DataFlowIntegrationImpl::localMustFlowStep(v, nodeFrom, nodeTo) } - signature predicate guardChecksSig(Guards::Guard g, Expr e, boolean branch); + signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue gv); cached // nothing is actually cached module BarrierGuard { private predicate guardChecksAdjTypes( Guards::Guards_v3::Guard g, Expr e, Guards::GuardValue gv ) { - guardChecks(g, e, gv.asBooleanValue()) + guardChecks(g, e, gv) } private predicate guardChecksWithWrappers( From eaa96864f7581dc3f1d93562da13ce014420fd7a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 10 Dec 2025 12:20:56 +0100 Subject: [PATCH 054/194] Java: Extend test to cover assertion-like barrier guards. --- .../ql/test/library-tests/dataflow/ssa/A.java | 27 ++++++++++++++++++- .../test/library-tests/dataflow/ssa/test.ql | 10 +++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/java/ql/test/library-tests/dataflow/ssa/A.java b/java/ql/test/library-tests/dataflow/ssa/A.java index 79303697d64..d7047bec276 100644 --- a/java/ql/test/library-tests/dataflow/ssa/A.java +++ b/java/ql/test/library-tests/dataflow/ssa/A.java @@ -4,7 +4,13 @@ public class A { boolean isSafe(Object o) { return o == null; } - void foo() { + void assertSafe(Object o) { if (o != null) throw new RuntimeException(); } + + private boolean wrapIsSafe(Object o) { return isSafe(o); } + + private void wrapAssertSafe(Object o) { assertSafe(o); } + + void test1() { Object x = source(); if (!isSafe(x)) { x = null; @@ -21,4 +27,23 @@ public class A { } sink(x); } + + void test2() { + Object x = source(); + assertSafe(x); + sink(x); + } + + void test3() { + Object x = source(); + if (wrapIsSafe(x)) { + sink(x); + } + } + + void test4() { + Object x = source(); + wrapAssertSafe(x); + sink(x); + } } diff --git a/java/ql/test/library-tests/dataflow/ssa/test.ql b/java/ql/test/library-tests/dataflow/ssa/test.ql index cb601dab5eb..0bea0aa71a1 100644 --- a/java/ql/test/library-tests/dataflow/ssa/test.ql +++ b/java/ql/test/library-tests/dataflow/ssa/test.ql @@ -10,6 +10,14 @@ private predicate isSafe(Guard g, Expr checked, boolean branch) { ) } +private predicate assertSafe(Guard g, Expr checked, GuardValue gv) { + exists(MethodCall mc | g = mc | + mc.getMethod().hasName("assertSafe") and + checked = mc.getAnArgument() and + gv.getDualValue().isThrowsException() + ) +} + module TestConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(MethodCall).getMethod().hasName("source") @@ -21,6 +29,8 @@ module TestConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node = DataFlow::BarrierGuard::getABarrierNode() + or + node = DataFlow::BarrierGuardValue::getABarrierNode() } } From 8a0e5b5675ef11954b3bea1c19b6e7801701ba82 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 20 Nov 2025 17:12:25 +0100 Subject: [PATCH 055/194] Rust: Lift content reads as taint steps --- .../dataflow/internal/TaintTrackingImpl.qll | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index 3bb35085484..e4321fd8786 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -7,6 +7,9 @@ private import Node as Node private import Content private import FlowSummaryImpl as FlowSummaryImpl private import codeql.rust.internal.CachedStages +private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.Type as Type +private import codeql.rust.frameworks.stdlib.Builtins as Builtins module RustTaintTracking implements InputSig { predicate defaultTaintSanitizer(DataFlow::Node node) { none() } @@ -28,11 +31,22 @@ module RustTaintTracking implements InputSig { succ.asExpr() = index ) or - // Although data flow through collections and references is modeled using - // stores/reads, we also allow taint to flow out of a tainted collection - // or reference. - // This is needed in order to support taint-tracking configurations where - // the source is a collection or reference. + // Read steps give rise to taint steps. This has the effect that if `foo` + // is tainted and an operation reads from `foo` (e.g., `foo.bar`) then + // taint is propagated. We limit this to not apply if the type of the + // operation is a small primitive type as these are often uninteresting + // (for instance in the case of an injection query). + RustDataFlow::readContentStep(pred, _, succ) and + not exists(Struct s | + s = TypeInference::inferType(succ.asExpr()).(Type::StructType).getStruct() + | + s instanceof Builtins::NumericType or + s instanceof Builtins::Bool or + s instanceof Builtins::Char + ) + or + // Let all read steps (including those from flow summaries and those that + // result in small primitive types) give rise to taint steps. exists(SingletonContentSet cs | RustDataFlow::readStep(pred, cs, succ) | cs.getContent() instanceof ElementContent or From 0f97e7e29dd3000d8de9d0b75dea09df7be46f86 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 21 Nov 2025 12:44:59 +0100 Subject: [PATCH 056/194] Rust: Remov unneeded model --- rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml b/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml index 17b76e137d8..bef64edf68d 100644 --- a/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml @@ -15,9 +15,4 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[0]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[1]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[2]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[3]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[4]", "taint", "manual"] \ No newline at end of file + - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "manual"] \ No newline at end of file From 047ea10a9aa7ab945fe2b2d03f70fd84ee7bfa3e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 21 Nov 2025 12:28:04 +0100 Subject: [PATCH 057/194] Rust: Update tests and expected files --- .../sources/database/InlineFlow.expected | 28 +++++ .../dataflow/sources/database/test.rs | 8 +- .../dataflow/sources/env/InlineFlow.expected | 72 +++++++---- .../dataflow/sources/env/test.rs | 8 +- .../dataflow/sources/file/InlineFlow.expected | 15 +++ .../dataflow/sources/net/test.rs | 2 +- .../web_frameworks/InlineFlow.expected | 116 +++++++----------- .../dataflow/sources/web_frameworks/test.rs | 14 +-- .../CWE-825/AccessAfterLifetime.expected | 26 ++++ 9 files changed, 175 insertions(+), 114 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index 7fd1387d652..d463c2ab0bf 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -50,6 +50,8 @@ edges | test.rs:42:20:42:21 | t1 [element] | test.rs:42:13:42:15 | row | provenance | | | test.rs:48:22:48:30 | query_map | test.rs:50:14:50:24 | ...: i64 | provenance | Src:MaD:3 | | test.rs:50:14:50:24 | ...: i64 | test.rs:51:22:51:27 | values | provenance | | +| test.rs:55:22:55:30 | query_map | test.rs:57:14:57:39 | ...: ... | provenance | Src:MaD:3 | +| test.rs:57:14:57:39 | ...: ... | test.rs:59:22:59:29 | values.1 | provenance | | | test.rs:64:13:64:17 | total | test.rs:68:14:68:18 | total | provenance | | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | test.rs:64:21:67:11 | TryExpr | provenance | | | test.rs:64:21:67:11 | TryExpr | test.rs:64:13:64:17 | total | provenance | | @@ -61,6 +63,9 @@ edges | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:11 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | +| test.rs:70:22:70:31 | query_fold | test.rs:70:83:70:105 | ...: ... | provenance | Src:MaD:2 | +| test.rs:70:83:70:105 | ...: ... | test.rs:72:17:72:20 | name | provenance | | +| test.rs:72:17:72:20 | name | test.rs:75:18:75:21 | name | provenance | | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | | test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | @@ -81,6 +86,8 @@ edges | test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | | test.rs:137:14:137:24 | ...: i64 | test.rs:138:22:138:27 | values | provenance | | +| test.rs:142:22:142:30 | query_map | test.rs:144:14:144:39 | ...: ... | provenance | Src:MaD:5 | +| test.rs:144:14:144:39 | ...: ... | test.rs:146:22:146:29 | values.1 | provenance | | | test.rs:151:13:151:17 | total | test.rs:155:14:155:18 | total | provenance | | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | test.rs:151:21:154:16 | await ... [Ok] | provenance | | | test.rs:151:21:154:16 | await ... [Ok] | test.rs:151:21:154:17 | TryExpr | provenance | | @@ -93,6 +100,9 @@ edges | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:11 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | +| test.rs:157:22:157:31 | query_fold | test.rs:157:83:157:105 | ...: ... | provenance | Src:MaD:4 | +| test.rs:157:83:157:105 | ...: ... | test.rs:159:17:159:20 | name | provenance | | +| test.rs:159:17:159:20 | name | test.rs:162:18:162:21 | name | provenance | | nodes | test.rs:18:13:18:14 | v1 | semmle.label | v1 | | test.rs:18:24:18:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | @@ -135,6 +145,9 @@ nodes | test.rs:48:22:48:30 | query_map | semmle.label | query_map | | test.rs:50:14:50:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:51:22:51:27 | values | semmle.label | values | +| test.rs:55:22:55:30 | query_map | semmle.label | query_map | +| test.rs:57:14:57:39 | ...: ... | semmle.label | ...: ... | +| test.rs:59:22:59:29 | values.1 | semmle.label | values.1 | | test.rs:64:13:64:17 | total | semmle.label | total | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | semmle.label | conn.query_fold(...) [Ok] | | test.rs:64:21:67:11 | TryExpr | semmle.label | TryExpr | @@ -145,6 +158,10 @@ nodes | test.rs:66:13:66:21 | ... + ... | semmle.label | ... + ... | | test.rs:66:19:66:21 | row | semmle.label | row | | test.rs:68:14:68:18 | total | semmle.label | total | +| test.rs:70:22:70:31 | query_fold | semmle.label | query_fold | +| test.rs:70:83:70:105 | ...: ... | semmle.label | ...: ... | +| test.rs:72:17:72:20 | name | semmle.label | name | +| test.rs:75:18:75:21 | name | semmle.label | name | | test.rs:105:13:105:14 | v1 | semmle.label | v1 | | test.rs:105:24:105:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | | test.rs:105:24:105:42 | ... .unwrap() | semmle.label | ... .unwrap() | @@ -170,6 +187,9 @@ nodes | test.rs:135:22:135:30 | query_map | semmle.label | query_map | | test.rs:137:14:137:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:138:22:138:27 | values | semmle.label | values | +| test.rs:142:22:142:30 | query_map | semmle.label | query_map | +| test.rs:144:14:144:39 | ...: ... | semmle.label | ...: ... | +| test.rs:146:22:146:29 | values.1 | semmle.label | values.1 | | test.rs:151:13:151:17 | total | semmle.label | total | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | semmle.label | conn.query_fold(...) [future, Ok] | | test.rs:151:21:154:16 | await ... [Ok] | semmle.label | await ... [Ok] | @@ -181,6 +201,10 @@ nodes | test.rs:153:13:153:21 | ... + ... | semmle.label | ... + ... | | test.rs:153:19:153:21 | row | semmle.label | row | | test.rs:155:14:155:18 | total | semmle.label | total | +| test.rs:157:22:157:31 | query_fold | semmle.label | query_fold | +| test.rs:157:83:157:105 | ...: ... | semmle.label | ...: ... | +| test.rs:159:17:159:20 | name | semmle.label | name | +| test.rs:162:18:162:21 | name | semmle.label | name | subpaths testFailures #select @@ -192,12 +216,16 @@ testFailures | test.rs:41:14:41:70 | ... .unwrap() | test.rs:41:42:41:44 | get | test.rs:41:14:41:70 | ... .unwrap() | $@ | test.rs:41:42:41:44 | get | get | | test.rs:44:22:44:22 | v | test.rs:40:27:40:35 | exec_iter | test.rs:44:22:44:22 | v | $@ | test.rs:40:27:40:35 | exec_iter | exec_iter | | test.rs:51:22:51:27 | values | test.rs:48:22:48:30 | query_map | test.rs:51:22:51:27 | values | $@ | test.rs:48:22:48:30 | query_map | query_map | +| test.rs:59:22:59:29 | values.1 | test.rs:55:22:55:30 | query_map | test.rs:59:22:59:29 | values.1 | $@ | test.rs:55:22:55:30 | query_map | query_map | | test.rs:65:18:65:20 | row | test.rs:64:26:64:35 | query_fold | test.rs:65:18:65:20 | row | $@ | test.rs:64:26:64:35 | query_fold | query_fold | | test.rs:68:14:68:18 | total | test.rs:64:26:64:35 | query_fold | test.rs:68:14:68:18 | total | $@ | test.rs:64:26:64:35 | query_fold | query_fold | +| test.rs:75:18:75:21 | name | test.rs:70:22:70:31 | query_fold | test.rs:75:18:75:21 | name | $@ | test.rs:70:22:70:31 | query_fold | query_fold | | test.rs:106:14:106:15 | v1 | test.rs:105:28:105:30 | get | test.rs:106:14:106:15 | v1 | $@ | test.rs:105:28:105:30 | get | get | | test.rs:109:14:109:15 | v2 | test.rs:108:28:108:34 | get_opt | test.rs:109:14:109:15 | v2 | $@ | test.rs:108:28:108:34 | get_opt | get_opt | | test.rs:112:14:112:15 | v3 | test.rs:111:28:111:31 | take | test.rs:112:14:112:15 | v3 | $@ | test.rs:111:28:111:31 | take | take | | test.rs:115:14:115:15 | v4 | test.rs:114:28:114:35 | take_opt | test.rs:115:14:115:15 | v4 | $@ | test.rs:114:28:114:35 | take_opt | take_opt | | test.rs:138:22:138:27 | values | test.rs:135:22:135:30 | query_map | test.rs:138:22:138:27 | values | $@ | test.rs:135:22:135:30 | query_map | query_map | +| test.rs:146:22:146:29 | values.1 | test.rs:142:22:142:30 | query_map | test.rs:146:22:146:29 | values.1 | $@ | test.rs:142:22:142:30 | query_map | query_map | | test.rs:152:18:152:20 | row | test.rs:151:26:151:35 | query_fold | test.rs:152:18:152:20 | row | $@ | test.rs:151:26:151:35 | query_fold | query_fold | | test.rs:155:14:155:18 | total | test.rs:151:26:151:35 | query_fold | test.rs:155:14:155:18 | total | $@ | test.rs:151:26:151:35 | query_fold | query_fold | +| test.rs:162:18:162:21 | name | test.rs:157:22:157:31 | query_fold | test.rs:162:18:162:21 | name | $@ | test.rs:157:22:157:31 | query_fold | query_fold | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/test.rs b/rust/ql/test/library-tests/dataflow/sources/database/test.rs index 5fbaef71144..68943608ee4 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/database/test.rs @@ -56,7 +56,7 @@ mod test_mysql { "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { sink(values.0); // $ MISSING: hasTaintFlow - sink(values.1); // $ MISSING: hasTaintFlow + sink(values.1); // $ hasTaintFlow sink(values.2); // $ MISSING: hasTaintFlow } )?; @@ -72,7 +72,7 @@ mod test_mysql { let name: String = row.1; let age: i32 = row.2; sink(id); // $ MISSING: hasTaintFlow - sink(name); // $ MISSING: hasTaintFlow + sink(name); // $ hasTaintFlow sink(age); // $ MISSING: hasTaintFlow acc + 1 })?; @@ -143,7 +143,7 @@ mod test_mysql_async { "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { sink(values.0); // $ MISSING: hasTaintFlow - sink(values.1); // $ MISSING: hasTaintFlow + sink(values.1); // $ hasTaintFlow sink(values.2); // $ MISSING: hasTaintFlow } ).await?; @@ -159,7 +159,7 @@ mod test_mysql_async { let name: String = row.1; let age: i32 = row.2; sink(id); // $ MISSING: hasTaintFlow - sink(name); // $ MISSING: hasTaintFlow + sink(name); // $ hasTaintFlow sink(age); // $ MISSING: hasTaintFlow acc + 1 }).await?; diff --git a/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected index 60066fdd74e..ac8b8c8c334 100644 --- a/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected @@ -6,54 +6,64 @@ models | 5 | Source: std::env::home_dir; ReturnValue.Field[core::option::Option::Some(0)]; commandargs | | 6 | Source: std::env::var; ReturnValue.Field[core::result::Result::Ok(0)]; environment | | 7 | Source: std::env::var_os; ReturnValue.Field[core::option::Option::Some(0)]; environment | -| 8 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value | -| 9 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 10 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | -| 11 | Summary: ::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 12 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 13 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 14 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 15 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 8 | Source: std::env::vars; ReturnValue.Element; environment | +| 9 | Source: std::env::vars_os; ReturnValue.Element; environment | +| 10 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value | +| 11 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 12 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | +| 13 | Summary: ::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 14 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 15 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 17 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | edges | test.rs:6:10:6:22 | ...::var | test.rs:6:10:6:30 | ...::var(...) | provenance | Src:MaD:6 | | test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | provenance | Src:MaD:7 | | test.rs:9:9:9:12 | var1 | test.rs:12:10:12:13 | var1 | provenance | | | test.rs:9:16:9:28 | ...::var | test.rs:9:16:9:36 | ...::var(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:13 | +| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:15 | | test.rs:9:16:9:59 | ... .expect(...) | test.rs:9:9:9:12 | var1 | provenance | | | test.rs:10:9:10:12 | var2 | test.rs:13:10:13:13 | var2 | provenance | | | test.rs:10:16:10:31 | ...::var_os | test.rs:10:16:10:39 | ...::var_os(...) [Some] | provenance | Src:MaD:7 | -| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:12 | +| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:14 | | test.rs:10:16:10:48 | ... .unwrap() | test.rs:10:9:10:12 | var2 | provenance | | +| test.rs:15:9:15:20 | TuplePat | test.rs:16:14:16:16 | key | provenance | | +| test.rs:15:9:15:20 | TuplePat | test.rs:17:14:17:18 | value | provenance | | +| test.rs:15:25:15:38 | ...::vars | test.rs:15:25:15:40 | ...::vars(...) [element] | provenance | Src:MaD:8 | +| test.rs:15:25:15:40 | ...::vars(...) [element] | test.rs:15:9:15:20 | TuplePat | provenance | | +| test.rs:20:9:20:20 | TuplePat | test.rs:21:14:21:16 | key | provenance | | +| test.rs:20:9:20:20 | TuplePat | test.rs:22:14:22:18 | value | provenance | | +| test.rs:20:25:20:41 | ...::vars_os | test.rs:20:25:20:43 | ...::vars_os(...) [element] | provenance | Src:MaD:9 | +| test.rs:20:25:20:43 | ...::vars_os(...) [element] | test.rs:20:9:20:20 | TuplePat | provenance | | | test.rs:27:9:27:12 | args [element] | test.rs:28:20:28:23 | args [element] | provenance | | | test.rs:27:9:27:12 | args [element] | test.rs:29:17:29:20 | args [element] | provenance | | | test.rs:27:29:27:42 | ...::args | test.rs:27:29:27:44 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:27:29:27:44 | ...::args(...) [element] | test.rs:27:29:27:54 | ... .collect() [element] | provenance | MaD:8 | +| test.rs:27:29:27:44 | ...::args(...) [element] | test.rs:27:29:27:54 | ... .collect() [element] | provenance | MaD:10 | | test.rs:27:29:27:54 | ... .collect() [element] | test.rs:27:9:27:12 | args [element] | provenance | | | test.rs:28:9:28:15 | my_path [&ref] | test.rs:34:10:34:16 | my_path | provenance | | | test.rs:28:19:28:26 | &... [&ref] | test.rs:28:9:28:15 | my_path [&ref] | provenance | | -| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | MaD:10 | +| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | MaD:12 | | test.rs:28:20:28:26 | args[0] | test.rs:28:19:28:26 | &... [&ref] | provenance | | | test.rs:29:9:29:12 | arg1 [&ref] | test.rs:35:10:35:13 | arg1 | provenance | | | test.rs:29:16:29:23 | &... [&ref] | test.rs:29:9:29:12 | arg1 [&ref] | provenance | | -| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | MaD:10 | +| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | MaD:12 | | test.rs:29:17:29:23 | args[1] | test.rs:29:16:29:23 | &... [&ref] | provenance | | | test.rs:30:9:30:12 | arg2 | test.rs:36:10:36:13 | arg2 | provenance | | | test.rs:30:16:30:29 | ...::args | test.rs:30:16:30:31 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:12 | +| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:14 | | test.rs:30:16:30:47 | ... .unwrap() | test.rs:30:9:30:12 | arg2 | provenance | | | test.rs:31:9:31:12 | arg3 | test.rs:37:10:37:13 | arg3 | provenance | | | test.rs:31:16:31:32 | ...::args_os | test.rs:31:16:31:34 | ...::args_os(...) [element] | provenance | Src:MaD:2 | -| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:12 | +| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:14 | | test.rs:31:16:31:50 | ... .unwrap() | test.rs:31:9:31:12 | arg3 | provenance | | | test.rs:32:9:32:12 | arg4 | test.rs:38:10:38:13 | arg4 | provenance | | | test.rs:32:16:32:29 | ...::args | test.rs:32:16:32:31 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:12 | -| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:15 | -| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:14 | +| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:14 | +| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:17 | +| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:16 | | test.rs:32:16:32:73 | ... .unwrap() | test.rs:32:9:32:12 | arg4 | provenance | | | test.rs:40:9:40:11 | arg | test.rs:41:14:41:16 | arg | provenance | | | test.rs:40:16:40:29 | ...::args | test.rs:40:16:40:31 | ...::args(...) [element] | provenance | Src:MaD:1 | @@ -63,15 +73,15 @@ edges | test.rs:44:16:44:34 | ...::args_os(...) [element] | test.rs:44:9:44:11 | arg | provenance | | | test.rs:50:9:50:11 | dir | test.rs:54:10:54:12 | dir | provenance | | | test.rs:50:15:50:35 | ...::current_dir | test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | provenance | Src:MaD:3 | -| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:13 | +| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:15 | | test.rs:50:15:50:54 | ... .expect(...) | test.rs:50:9:50:11 | dir | provenance | | | test.rs:51:9:51:11 | exe | test.rs:55:10:55:12 | exe | provenance | | | test.rs:51:15:51:35 | ...::current_exe | test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | provenance | Src:MaD:4 | -| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:13 | +| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:15 | | test.rs:51:15:51:54 | ... .expect(...) | test.rs:51:9:51:11 | exe | provenance | | | test.rs:52:9:52:12 | home | test.rs:56:10:56:13 | home | provenance | | | test.rs:52:16:52:33 | ...::home_dir | test.rs:52:16:52:35 | ...::home_dir(...) [Some] | provenance | Src:MaD:5 | -| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:11 | +| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:13 | | test.rs:52:16:52:52 | ... .expect(...) | test.rs:52:9:52:12 | home | provenance | | nodes | test.rs:6:10:6:22 | ...::var | semmle.label | ...::var | @@ -88,6 +98,16 @@ nodes | test.rs:10:16:10:48 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:12:10:12:13 | var1 | semmle.label | var1 | | test.rs:13:10:13:13 | var2 | semmle.label | var2 | +| test.rs:15:9:15:20 | TuplePat | semmle.label | TuplePat | +| test.rs:15:25:15:38 | ...::vars | semmle.label | ...::vars | +| test.rs:15:25:15:40 | ...::vars(...) [element] | semmle.label | ...::vars(...) [element] | +| test.rs:16:14:16:16 | key | semmle.label | key | +| test.rs:17:14:17:18 | value | semmle.label | value | +| test.rs:20:9:20:20 | TuplePat | semmle.label | TuplePat | +| test.rs:20:25:20:41 | ...::vars_os | semmle.label | ...::vars_os | +| test.rs:20:25:20:43 | ...::vars_os(...) [element] | semmle.label | ...::vars_os(...) [element] | +| test.rs:21:14:21:16 | key | semmle.label | key | +| test.rs:22:14:22:18 | value | semmle.label | value | | test.rs:27:9:27:12 | args [element] | semmle.label | args [element] | | test.rs:27:29:27:42 | ...::args | semmle.label | ...::args | | test.rs:27:29:27:44 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | @@ -152,6 +172,10 @@ testFailures | test.rs:7:10:7:33 | ...::var_os(...) | test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | $@ | test.rs:7:10:7:25 | ...::var_os | ...::var_os | | test.rs:12:10:12:13 | var1 | test.rs:9:16:9:28 | ...::var | test.rs:12:10:12:13 | var1 | $@ | test.rs:9:16:9:28 | ...::var | ...::var | | test.rs:13:10:13:13 | var2 | test.rs:10:16:10:31 | ...::var_os | test.rs:13:10:13:13 | var2 | $@ | test.rs:10:16:10:31 | ...::var_os | ...::var_os | +| test.rs:16:14:16:16 | key | test.rs:15:25:15:38 | ...::vars | test.rs:16:14:16:16 | key | $@ | test.rs:15:25:15:38 | ...::vars | ...::vars | +| test.rs:17:14:17:18 | value | test.rs:15:25:15:38 | ...::vars | test.rs:17:14:17:18 | value | $@ | test.rs:15:25:15:38 | ...::vars | ...::vars | +| test.rs:21:14:21:16 | key | test.rs:20:25:20:41 | ...::vars_os | test.rs:21:14:21:16 | key | $@ | test.rs:20:25:20:41 | ...::vars_os | ...::vars_os | +| test.rs:22:14:22:18 | value | test.rs:20:25:20:41 | ...::vars_os | test.rs:22:14:22:18 | value | $@ | test.rs:20:25:20:41 | ...::vars_os | ...::vars_os | | test.rs:34:10:34:16 | my_path | test.rs:27:29:27:42 | ...::args | test.rs:34:10:34:16 | my_path | $@ | test.rs:27:29:27:42 | ...::args | ...::args | | test.rs:35:10:35:13 | arg1 | test.rs:27:29:27:42 | ...::args | test.rs:35:10:35:13 | arg1 | $@ | test.rs:27:29:27:42 | ...::args | ...::args | | test.rs:36:10:36:13 | arg2 | test.rs:30:16:30:29 | ...::args | test.rs:36:10:36:13 | arg2 | $@ | test.rs:30:16:30:29 | ...::args | ...::args | diff --git a/rust/ql/test/library-tests/dataflow/sources/env/test.rs b/rust/ql/test/library-tests/dataflow/sources/env/test.rs index e02aa7c8f1b..b5af0b412d3 100644 --- a/rust/ql/test/library-tests/dataflow/sources/env/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/env/test.rs @@ -13,13 +13,13 @@ fn test_env_vars() { sink(var2); // $ hasTaintFlow="PATH" for (key, value) in std::env::vars() { // $ Alert[rust/summary/taint-sources] - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ hasTaintFlow + sink(value); // $ hasTaintFlow } for (key, value) in std::env::vars_os() { // $ Alert[rust/summary/taint-sources] - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ hasTaintFlow + sink(value); // $ hasTaintFlow } } diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index 22bc5f61d77..bf756d999cc 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -41,20 +41,26 @@ models edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:43 | ...::read [Ok] | provenance | Src:MaD:11 | +| test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) | provenance | Src:MaD:12 MaD:12 | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | | test.rs:12:31:12:43 | ...::read [Ok] | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | MaD:12 | +| test.rs:12:31:12:55 | ...::read(...) | test.rs:12:13:12:18 | buffer | provenance | | | test.rs:12:31:12:55 | ...::read(...) [Ok] | test.rs:12:31:12:56 | TryExpr | provenance | | | test.rs:12:31:12:56 | TryExpr | test.rs:12:13:12:18 | buffer | provenance | | | test.rs:17:13:17:18 | buffer | test.rs:18:14:18:19 | buffer | provenance | | | test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:38 | ...::read [Ok] | provenance | Src:MaD:11 | +| test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:50 | ...::read(...) | provenance | Src:MaD:12 MaD:12 | | test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | Src:MaD:11 | | test.rs:17:31:17:38 | ...::read [Ok] | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | MaD:12 | +| test.rs:17:31:17:50 | ...::read(...) | test.rs:17:13:17:18 | buffer | provenance | | | test.rs:17:31:17:50 | ...::read(...) [Ok] | test.rs:17:31:17:51 | TryExpr | provenance | | | test.rs:17:31:17:51 | TryExpr | test.rs:17:13:17:18 | buffer | provenance | | | test.rs:22:13:22:18 | buffer | test.rs:23:14:23:19 | buffer | provenance | | | test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:39 | ...::read_to_string [Ok] | provenance | Src:MaD:14 | +| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) | provenance | Src:MaD:15 MaD:15 | | test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:14 | | test.rs:22:22:22:39 | ...::read_to_string [Ok] | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | MaD:15 | +| test.rs:22:22:22:51 | ...::read_to_string(...) | test.rs:22:13:22:18 | buffer | provenance | | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | test.rs:22:22:22:52 | TryExpr | provenance | | | test.rs:22:22:22:52 | TryExpr | test.rs:22:13:22:18 | buffer | provenance | | | test.rs:29:13:29:16 | path | test.rs:30:14:30:17 | path | provenance | | @@ -262,19 +268,25 @@ edges nodes | test.rs:12:13:12:18 | buffer | semmle.label | buffer | | test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | +| test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | | test.rs:12:31:12:43 | ...::read [Ok] | semmle.label | ...::read [Ok] | +| test.rs:12:31:12:55 | ...::read(...) | semmle.label | ...::read(...) | | test.rs:12:31:12:55 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:12:31:12:56 | TryExpr | semmle.label | TryExpr | | test.rs:13:14:13:19 | buffer | semmle.label | buffer | | test.rs:17:13:17:18 | buffer | semmle.label | buffer | | test.rs:17:31:17:38 | ...::read | semmle.label | ...::read | +| test.rs:17:31:17:38 | ...::read | semmle.label | ...::read | | test.rs:17:31:17:38 | ...::read [Ok] | semmle.label | ...::read [Ok] | +| test.rs:17:31:17:50 | ...::read(...) | semmle.label | ...::read(...) | | test.rs:17:31:17:50 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:17:31:17:51 | TryExpr | semmle.label | TryExpr | | test.rs:18:14:18:19 | buffer | semmle.label | buffer | | test.rs:22:13:22:18 | buffer | semmle.label | buffer | | test.rs:22:22:22:39 | ...::read_to_string | semmle.label | ...::read_to_string | +| test.rs:22:22:22:39 | ...::read_to_string | semmle.label | ...::read_to_string | | test.rs:22:22:22:39 | ...::read_to_string [Ok] | semmle.label | ...::read_to_string [Ok] | +| test.rs:22:22:22:51 | ...::read_to_string(...) | semmle.label | ...::read_to_string(...) | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | semmle.label | ...::read_to_string(...) [Ok] | | test.rs:22:22:22:52 | TryExpr | semmle.label | TryExpr | | test.rs:23:14:23:19 | buffer | semmle.label | buffer | @@ -503,7 +515,10 @@ subpaths testFailures #select | test.rs:13:14:13:19 | buffer | test.rs:12:31:12:43 | ...::read | test.rs:13:14:13:19 | buffer | $@ | test.rs:12:31:12:43 | ...::read | ...::read | +| test.rs:13:14:13:19 | buffer | test.rs:12:31:12:43 | ...::read | test.rs:13:14:13:19 | buffer | $@ | test.rs:12:31:12:43 | ...::read | ...::read | | test.rs:18:14:18:19 | buffer | test.rs:17:31:17:38 | ...::read | test.rs:18:14:18:19 | buffer | $@ | test.rs:17:31:17:38 | ...::read | ...::read | +| test.rs:18:14:18:19 | buffer | test.rs:17:31:17:38 | ...::read | test.rs:18:14:18:19 | buffer | $@ | test.rs:17:31:17:38 | ...::read | ...::read | +| test.rs:23:14:23:19 | buffer | test.rs:22:22:22:39 | ...::read_to_string | test.rs:23:14:23:19 | buffer | $@ | test.rs:22:22:22:39 | ...::read_to_string | ...::read_to_string | | test.rs:23:14:23:19 | buffer | test.rs:22:22:22:39 | ...::read_to_string | test.rs:23:14:23:19 | buffer | $@ | test.rs:22:22:22:39 | ...::read_to_string | ...::read_to_string | | test.rs:30:14:30:25 | path.clone() | test.rs:29:22:29:25 | path | test.rs:30:14:30:25 | path.clone() | $@ | test.rs:29:22:29:25 | path | path | | test.rs:31:14:31:35 | ... .as_path() | test.rs:29:22:29:25 | path | test.rs:31:14:31:35 | ... .as_path() | $@ | test.rs:29:22:29:25 | path | path | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/test.rs b/rust/ql/test/library-tests/dataflow/sources/net/test.rs index 254a27349d9..178f539dc6e 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/net/test.rs @@ -204,7 +204,7 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { for line in reader.lines() { // $ MISSING: Alert[rust/summary/taint-sources] if let Ok(string) = line { println!("line = {}", string); - sink(string); // $ MISSING: hasTaintFlow + sink(string); // $ MISSING: hasTaintFlow=&sock_addr } } } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected index 1b1e8c7fc7a..8777ff626eb 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected @@ -4,73 +4,44 @@ models | 3 | Source: <_ as warp::filter::Filter>::then; Argument[0].Parameter[0..7]; remote | | 4 | Source: ::to; Argument[0].Parameter[0..7]; remote | | 5 | Source: ::to; Argument[0].Parameter[0..7]; remote | -| 6 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[0]; taint | -| 7 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[1]; taint | -| 8 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[2]; taint | -| 9 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | -| 10 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 11 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 6 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | +| 7 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | +| 8 | Summary: ::as_str; Argument[self]; ReturnValue; value | edges | test.rs:11:31:11:31 | a | test.rs:13:14:13:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:14:14:14:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:15:14:15:14 | a | provenance | | -| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:11 | -| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:10 | +| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:8 | +| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:7 | +| test.rs:22:14:22:19 | TuplePat | test.rs:24:14:24:14 | a | provenance | | +| test.rs:22:14:22:19 | TuplePat | test.rs:25:14:25:14 | b | provenance | | +| test.rs:48:14:48:30 | MyStruct {...} | test.rs:50:14:50:14 | a | provenance | | +| test.rs:48:14:48:30 | MyStruct {...} | test.rs:51:14:51:14 | b | provenance | | +| test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | provenance | | +| test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | provenance | | | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | provenance | | | test.rs:98:9:98:31 | ...: ...::Path::<...> | test.rs:100:17:100:20 | path | provenance | | | test.rs:100:13:100:13 | a | test.rs:101:14:101:14 | a | provenance | | | test.rs:100:13:100:13 | a | test.rs:102:14:102:14 | a | provenance | | | test.rs:100:13:100:13 | a | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:101:14:101:14 | a [tuple.0] | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:102:14:102:14 | a [tuple.0] | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:101:14:101:14 | a [tuple.1] | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:102:14:102:14 | a [tuple.1] | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:101:14:101:14 | a [tuple.2] | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:102:14:102:14 | a [tuple.2] | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() | provenance | MaD:9 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.2] | provenance | MaD:8 | +| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() | provenance | MaD:6 | | test.rs:100:17:100:33 | path.into_inner() | test.rs:100:13:100:13 | a | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.0] | test.rs:100:13:100:13 | a [tuple.0] | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.1] | test.rs:100:13:100:13 | a [tuple.1] | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.2] | test.rs:100:13:100:13 | a [tuple.2] | provenance | | -| test.rs:101:14:101:14 | a | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.0] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.1] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.2] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:102:14:102:14 | a | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.0] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.1] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.2] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | +| test.rs:101:14:101:14 | a | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:8 | +| test.rs:102:14:102:14 | a | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:7 | | test.rs:109:9:109:41 | ...: ...::Path::<...> | test.rs:111:22:111:25 | path | provenance | | -| test.rs:111:13:111:18 | TuplePat [tuple.0] | test.rs:111:14:111:14 | a | provenance | | -| test.rs:111:13:111:18 | TuplePat [tuple.1] | test.rs:111:17:111:17 | b | provenance | | -| test.rs:111:14:111:14 | a | test.rs:113:14:113:14 | a | provenance | | -| test.rs:111:17:111:17 | b | test.rs:114:14:114:14 | b | provenance | | -| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:111:22:111:38 | path.into_inner() [tuple.0] | test.rs:111:13:111:18 | TuplePat [tuple.0] | provenance | | -| test.rs:111:22:111:38 | path.into_inner() [tuple.1] | test.rs:111:13:111:18 | TuplePat [tuple.1] | provenance | | +| test.rs:111:13:111:18 | TuplePat | test.rs:113:14:113:14 | a | provenance | | +| test.rs:111:13:111:18 | TuplePat | test.rs:114:14:114:14 | b | provenance | | +| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() | provenance | MaD:6 | +| test.rs:111:22:111:38 | path.into_inner() | test.rs:111:13:111:18 | TuplePat | provenance | | +| test.rs:120:9:120:41 | ...: ...::Query::<...> | test.rs:122:14:122:14 | a | provenance | | | test.rs:127:5:127:20 | to | test.rs:129:9:129:31 | ...: ...::Path::<...> | provenance | Src:MaD:4 | | test.rs:129:9:129:31 | ...: ...::Path::<...> | test.rs:131:17:131:20 | path | provenance | | | test.rs:131:13:131:13 | a | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.0] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.1] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.2] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() | provenance | MaD:9 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.2] | provenance | MaD:8 | +| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() | provenance | MaD:6 | | test.rs:131:17:131:33 | path.into_inner() | test.rs:131:13:131:13 | a | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.0] | test.rs:131:13:131:13 | a [tuple.0] | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.1] | test.rs:131:13:131:13 | a [tuple.1] | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.2] | test.rs:131:13:131:13 | a [tuple.2] | provenance | | | test.rs:139:41:139:42 | to | test.rs:98:9:98:31 | ...: ...::Path::<...> | provenance | Src:MaD:5 | | test.rs:140:45:140:46 | to | test.rs:109:9:109:41 | ...: ...::Path::<...> | provenance | Src:MaD:5 | +| test.rs:141:41:141:42 | to | test.rs:120:9:120:41 | ...: ...::Query::<...> | provenance | Src:MaD:5 | | test.rs:242:33:242:35 | map | test.rs:242:38:242:46 | ...: String | provenance | Src:MaD:2 | | test.rs:242:38:242:46 | ...: String | test.rs:244:18:244:18 | a | provenance | | | test.rs:250:46:250:49 | then | test.rs:251:25:251:33 | ...: String | provenance | Src:MaD:3 | @@ -86,53 +57,43 @@ nodes | test.rs:14:14:14:14 | a | semmle.label | a | | test.rs:14:14:14:25 | a.as_bytes() | semmle.label | a.as_bytes() | | test.rs:15:14:15:14 | a | semmle.label | a | +| test.rs:22:14:22:19 | TuplePat | semmle.label | TuplePat | +| test.rs:24:14:24:14 | a | semmle.label | a | +| test.rs:25:14:25:14 | b | semmle.label | b | +| test.rs:48:14:48:30 | MyStruct {...} | semmle.label | MyStruct {...} | +| test.rs:50:14:50:14 | a | semmle.label | a | +| test.rs:51:14:51:14 | b | semmle.label | b | +| test.rs:58:14:58:15 | ms | semmle.label | ms | +| test.rs:60:14:60:17 | ms.a | semmle.label | ms.a | +| test.rs:61:14:61:17 | ms.b | semmle.label | ms.b | | test.rs:68:15:68:15 | a | semmle.label | a | | test.rs:70:14:70:14 | a | semmle.label | a | | test.rs:98:9:98:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | | test.rs:100:13:100:13 | a | semmle.label | a | -| test.rs:100:13:100:13 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:100:13:100:13 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:100:13:100:13 | a [tuple.2] | semmle.label | a [tuple.2] | | test.rs:100:17:100:20 | path | semmle.label | path | | test.rs:100:17:100:33 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:100:17:100:33 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:100:17:100:33 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | -| test.rs:100:17:100:33 | path.into_inner() [tuple.2] | semmle.label | path.into_inner() [tuple.2] | | test.rs:101:14:101:14 | a | semmle.label | a | -| test.rs:101:14:101:14 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:101:14:101:14 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:101:14:101:14 | a [tuple.2] | semmle.label | a [tuple.2] | | test.rs:101:14:101:23 | a.as_str() | semmle.label | a.as_str() | | test.rs:102:14:102:14 | a | semmle.label | a | -| test.rs:102:14:102:14 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:102:14:102:14 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:102:14:102:14 | a [tuple.2] | semmle.label | a [tuple.2] | | test.rs:102:14:102:25 | a.as_bytes() | semmle.label | a.as_bytes() | | test.rs:103:14:103:14 | a | semmle.label | a | | test.rs:109:9:109:41 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:111:13:111:18 | TuplePat [tuple.0] | semmle.label | TuplePat [tuple.0] | -| test.rs:111:13:111:18 | TuplePat [tuple.1] | semmle.label | TuplePat [tuple.1] | -| test.rs:111:14:111:14 | a | semmle.label | a | -| test.rs:111:17:111:17 | b | semmle.label | b | +| test.rs:111:13:111:18 | TuplePat | semmle.label | TuplePat | | test.rs:111:22:111:25 | path | semmle.label | path | -| test.rs:111:22:111:38 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:111:22:111:38 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | +| test.rs:111:22:111:38 | path.into_inner() | semmle.label | path.into_inner() | | test.rs:113:14:113:14 | a | semmle.label | a | | test.rs:114:14:114:14 | b | semmle.label | b | +| test.rs:120:9:120:41 | ...: ...::Query::<...> | semmle.label | ...: ...::Query::<...> | +| test.rs:122:14:122:14 | a | semmle.label | a | | test.rs:127:5:127:20 | to | semmle.label | to | | test.rs:129:9:129:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | | test.rs:131:13:131:13 | a | semmle.label | a | -| test.rs:131:13:131:13 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:131:13:131:13 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:131:13:131:13 | a [tuple.2] | semmle.label | a [tuple.2] | | test.rs:131:17:131:20 | path | semmle.label | path | | test.rs:131:17:131:33 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:131:17:131:33 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:131:17:131:33 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | -| test.rs:131:17:131:33 | path.into_inner() [tuple.2] | semmle.label | path.into_inner() [tuple.2] | | test.rs:132:14:132:14 | a | semmle.label | a | | test.rs:139:41:139:42 | to | semmle.label | to | | test.rs:140:45:140:46 | to | semmle.label | to | +| test.rs:141:41:141:42 | to | semmle.label | to | | test.rs:242:33:242:35 | map | semmle.label | map | | test.rs:242:38:242:46 | ...: String | semmle.label | ...: String | | test.rs:244:18:244:18 | a | semmle.label | a | @@ -151,12 +112,19 @@ testFailures | test.rs:13:14:13:23 | a.as_str() | test.rs:11:31:11:31 | a | test.rs:13:14:13:23 | a.as_str() | $@ | test.rs:11:31:11:31 | a | a | | test.rs:14:14:14:25 | a.as_bytes() | test.rs:11:31:11:31 | a | test.rs:14:14:14:25 | a.as_bytes() | $@ | test.rs:11:31:11:31 | a | a | | test.rs:15:14:15:14 | a | test.rs:11:31:11:31 | a | test.rs:15:14:15:14 | a | $@ | test.rs:11:31:11:31 | a | a | +| test.rs:24:14:24:14 | a | test.rs:22:14:22:19 | TuplePat | test.rs:24:14:24:14 | a | $@ | test.rs:22:14:22:19 | TuplePat | TuplePat | +| test.rs:25:14:25:14 | b | test.rs:22:14:22:19 | TuplePat | test.rs:25:14:25:14 | b | $@ | test.rs:22:14:22:19 | TuplePat | TuplePat | +| test.rs:50:14:50:14 | a | test.rs:48:14:48:30 | MyStruct {...} | test.rs:50:14:50:14 | a | $@ | test.rs:48:14:48:30 | MyStruct {...} | MyStruct {...} | +| test.rs:51:14:51:14 | b | test.rs:48:14:48:30 | MyStruct {...} | test.rs:51:14:51:14 | b | $@ | test.rs:48:14:48:30 | MyStruct {...} | MyStruct {...} | +| test.rs:60:14:60:17 | ms.a | test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | $@ | test.rs:58:14:58:15 | ms | ms | +| test.rs:61:14:61:17 | ms.b | test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | $@ | test.rs:58:14:58:15 | ms | ms | | test.rs:70:14:70:14 | a | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | $@ | test.rs:68:15:68:15 | a | a | | test.rs:101:14:101:23 | a.as_str() | test.rs:139:41:139:42 | to | test.rs:101:14:101:23 | a.as_str() | $@ | test.rs:139:41:139:42 | to | to | | test.rs:102:14:102:25 | a.as_bytes() | test.rs:139:41:139:42 | to | test.rs:102:14:102:25 | a.as_bytes() | $@ | test.rs:139:41:139:42 | to | to | | test.rs:103:14:103:14 | a | test.rs:139:41:139:42 | to | test.rs:103:14:103:14 | a | $@ | test.rs:139:41:139:42 | to | to | | test.rs:113:14:113:14 | a | test.rs:140:45:140:46 | to | test.rs:113:14:113:14 | a | $@ | test.rs:140:45:140:46 | to | to | | test.rs:114:14:114:14 | b | test.rs:140:45:140:46 | to | test.rs:114:14:114:14 | b | $@ | test.rs:140:45:140:46 | to | to | +| test.rs:122:14:122:14 | a | test.rs:141:41:141:42 | to | test.rs:122:14:122:14 | a | $@ | test.rs:141:41:141:42 | to | to | | test.rs:132:14:132:14 | a | test.rs:127:5:127:20 | to | test.rs:132:14:132:14 | a | $@ | test.rs:127:5:127:20 | to | to | | test.rs:244:18:244:18 | a | test.rs:242:33:242:35 | map | test.rs:244:18:244:18 | a | $@ | test.rs:242:33:242:35 | map | map | | test.rs:252:22:252:22 | a | test.rs:250:46:250:49 | then | test.rs:252:22:252:22 | a | $@ | test.rs:250:46:250:49 | then | then | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs index 3bcea0dee4e..124f7615ef1 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs @@ -21,8 +21,8 @@ mod poem_test { fn my_poem_handler_2( Path((a, b)): Path<(String, String)>, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + sink(a); // $ hasTaintFlow + sink(b); // $ hasTaintFlow "".to_string() } @@ -47,8 +47,8 @@ mod poem_test { fn my_poem_handler_4( Path(MyStruct { a, b }): Path, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + sink(a); // $ hasTaintFlow + sink(b); // $ hasTaintFlow "".to_string() } @@ -57,8 +57,8 @@ mod poem_test { fn my_poem_handler_5( Path(ms): Path, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(ms.a); // $ MISSING: hasTaintFlow - sink(ms.b); // $ MISSING: hasTaintFlow + sink(ms.a); // $ hasTaintFlow + sink(ms.b); // $ hasTaintFlow "".to_string() } @@ -119,7 +119,7 @@ mod actix_test { async fn my_actix_handler_3( web::Query(a): web::Query, ) -> String { - sink(a); // $ MISSING: hasTaintFlow + sink(a); // $ hasTaintFlow=my_actix_handler_3 "".to_string() } diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index db3179988be..4b08efdb439 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -113,6 +113,18 @@ edges | lifetime.rs:305:15:305:37 | get_pointer_from_enum(...) | lifetime.rs:305:6:305:11 | result | provenance | | | lifetime.rs:313:10:313:29 | ...::Pointer(...) [Pointer] | lifetime.rs:313:27:313:28 | p2 | provenance | | | lifetime.rs:313:27:313:28 | p2 | lifetime.rs:314:23:314:24 | p2 | provenance | | +| lifetime.rs:332:6:332:13 | mut ref1 | lifetime.rs:338:9:338:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:332:17:332:22 | &enum1 | lifetime.rs:332:6:332:13 | mut ref1 | provenance | | +| lifetime.rs:336:3:336:6 | ref1 | lifetime.rs:338:9:338:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:336:10:336:15 | &inner | lifetime.rs:336:3:336:6 | ref1 | provenance | | +| lifetime.rs:338:9:338:35 | ...::Pointer(...) | lifetime.rs:339:27:339:30 | * ... | provenance | | +| lifetime.rs:338:9:338:35 | ...::Pointer(...) | lifetime.rs:339:28:339:30 | ptr | provenance | | +| lifetime.rs:348:6:348:13 | mut ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:348:17:348:22 | &enum1 | lifetime.rs:348:6:348:13 | mut ref1 | provenance | | +| lifetime.rs:352:3:352:6 | ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:352:10:352:15 | &inner | lifetime.rs:352:3:352:6 | ref1 | provenance | | +| lifetime.rs:354:9:354:35 | ...::Pointer(...) | lifetime.rs:355:27:355:30 | * ... | provenance | | +| lifetime.rs:354:9:354:35 | ...::Pointer(...) | lifetime.rs:355:28:355:30 | ptr | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:388:15:388:16 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:391:15:391:16 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:399:6:399:7 | p1 | provenance | | @@ -265,6 +277,20 @@ nodes | lifetime.rs:313:27:313:28 | p2 | semmle.label | p2 | | lifetime.rs:314:23:314:24 | p2 | semmle.label | p2 | | lifetime.rs:317:13:317:18 | result | semmle.label | result | +| lifetime.rs:332:6:332:13 | mut ref1 | semmle.label | mut ref1 | +| lifetime.rs:332:17:332:22 | &enum1 | semmle.label | &enum1 | +| lifetime.rs:336:3:336:6 | ref1 | semmle.label | ref1 | +| lifetime.rs:336:10:336:15 | &inner | semmle.label | &inner | +| lifetime.rs:338:9:338:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | +| lifetime.rs:339:27:339:30 | * ... | semmle.label | * ... | +| lifetime.rs:339:28:339:30 | ptr | semmle.label | ptr | +| lifetime.rs:348:6:348:13 | mut ref1 | semmle.label | mut ref1 | +| lifetime.rs:348:17:348:22 | &enum1 | semmle.label | &enum1 | +| lifetime.rs:352:3:352:6 | ref1 | semmle.label | ref1 | +| lifetime.rs:352:10:352:15 | &inner | semmle.label | &inner | +| lifetime.rs:354:9:354:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | +| lifetime.rs:355:27:355:30 | * ... | semmle.label | * ... | +| lifetime.rs:355:28:355:30 | ptr | semmle.label | ptr | | lifetime.rs:383:3:383:4 | p1 | semmle.label | p1 | | lifetime.rs:383:31:383:37 | &raw mut my_pair | semmle.label | &raw mut my_pair | | lifetime.rs:388:15:388:16 | p1 | semmle.label | p1 | From 6fcd8d194ad078110290176a23f7e4337082cec9 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 26 Nov 2025 13:02:17 +0100 Subject: [PATCH 058/194] Rust: Refactor flow summary implementation --- .../dataflow/internal/FlowSummaryImpl.qll | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll index 4aef065efdf..582e5861235 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll @@ -11,6 +11,20 @@ private import codeql.rust.dataflow.FlowSummary private import codeql.rust.dataflow.Ssa private import Content +predicate encodeContentTupleField(TupleFieldContent c, string arg) { + exists(Addressable a, int pos, string prefix | + arg = prefix + "(" + pos + ")" and prefix = a.getCanonicalPath() + | + c.isStructField(a, pos) or c.isVariantField(a, pos) + ) +} + +predicate encodeContentStructField(StructFieldContent c, string arg) { + exists(Addressable a, string field | arg = a.getCanonicalPath() + "::" + field | + c.isStructField(a, field) or c.isVariantField(a, field) + ) +} + module Input implements InputSig { private import codeql.rust.frameworks.stdlib.Stdlib @@ -58,24 +72,11 @@ module Input implements InputSig { exists(Content c | cs = TSingletonContentSet(c) | result = "Field" and ( - exists(Addressable a, int pos, string prefix | - arg = prefix + "(" + pos + ")" and prefix = a.getCanonicalPath() - | - c.(TupleFieldContent).isStructField(a, pos) - or - c.(TupleFieldContent).isVariantField(a, pos) - ) + encodeContentTupleField(c, arg) or - exists(Addressable a, string field | arg = a.getCanonicalPath() + "::" + field | - c.(StructFieldContent).isStructField(a, field) - or - c.(StructFieldContent).isVariantField(a, field) - ) + encodeContentStructField(c, arg) or - exists(int pos | - c = TTuplePositionContent(pos) and - arg = pos.toString() - ) + exists(int pos | c = TTuplePositionContent(pos) and arg = pos.toString()) ) or result = "Reference" and From 647bed9e2fe5cd3ccdb55cb72cdf47084df16d22 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 26 Nov 2025 13:09:41 +0100 Subject: [PATCH 059/194] Rust: Add extensible predicate to exclude fields and block fieldless enum types --- .../dataflow/internal/TaintTrackingImpl.qll | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index e4321fd8786..52bec3f0414 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -11,6 +11,20 @@ private import codeql.rust.internal.TypeInference as TypeInference private import codeql.rust.internal.Type as Type private import codeql.rust.frameworks.stdlib.Builtins as Builtins +/** + * Holds if the field `field` should, by default, be excluded from taint steps. + * The syntax used to denote the field is the same as for `Field` in + * models-as-data. + */ +extensible predicate excludeFieldTaintStep(string field); + +private predicate excludedTaintStepContent(Content c) { + exists(string arg | excludeFieldTaintStep(arg) | + FlowSummaryImpl::encodeContentStructField(c, arg) or + FlowSummaryImpl::encodeContentTupleField(c, arg) + ) +} + module RustTaintTracking implements InputSig { predicate defaultTaintSanitizer(DataFlow::Node node) { none() } @@ -36,13 +50,17 @@ module RustTaintTracking implements InputSig { // taint is propagated. We limit this to not apply if the type of the // operation is a small primitive type as these are often uninteresting // (for instance in the case of an injection query). - RustDataFlow::readContentStep(pred, _, succ) and - not exists(Struct s | - s = TypeInference::inferType(succ.asExpr()).(Type::StructType).getStruct() - | - s instanceof Builtins::NumericType or - s instanceof Builtins::Bool or - s instanceof Builtins::Char + exists(Content c | + RustDataFlow::readContentStep(pred, c, succ) and + forex(Type::Type t | t = TypeInference::inferType(succ.asExpr()) | + not exists(Struct s | s = t.(Type::StructType).getStruct() | + s instanceof Builtins::NumericType or + s instanceof Builtins::Bool or + s instanceof Builtins::Char + ) + ) and + not excludedTaintStepContent(c) and + not TypeInference::inferType(succ.asExpr()).(Type::EnumType).getEnum().isFieldless() ) or // Let all read steps (including those from flow summaries and those that From 5ba4e30c20eae0eee2d492b9d9ecf299e6681448 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 27 Nov 2025 09:24:18 +0100 Subject: [PATCH 060/194] Rust: Exclude range start and end from field taint steps --- rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 8e214ab77bd..0cdc4cc0af2 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -141,3 +141,9 @@ extensions: - ["core::ptr::write_bytes", "Argument[0]", "pointer-access", "manual"] - ["core::ptr::write_unaligned", "Argument[0]", "pointer-access", "manual"] - ["core::ptr::write_volatile", "Argument[0]", "pointer-access", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: excludeFieldTaintStep + data: + - ["core::ops::range::RangeInclusive::start"] + - ["core::ops::range::RangeInclusive::end"] \ No newline at end of file From 273eb19b88c54883a6158cc985f05eb93f9ab071 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 28 Nov 2025 09:24:31 +0100 Subject: [PATCH 061/194] Rust: Apply suggestions from code review Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- .../lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index 52bec3f0414..bf8e8062623 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -12,9 +12,9 @@ private import codeql.rust.internal.Type as Type private import codeql.rust.frameworks.stdlib.Builtins as Builtins /** - * Holds if the field `field` should, by default, be excluded from taint steps. - * The syntax used to denote the field is the same as for `Field` in - * models-as-data. + * Holds if the field `field` should, by default, be excluded from taint steps + * from the containing type to reads of the field. The models-as-data syntax + * used to denote the field is the same as for `Field[]` access path elements. */ extensible predicate excludeFieldTaintStep(string field); From fe37e3d9be41dd08abba9320f503aef4948e1a55 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 28 Nov 2025 09:42:35 +0100 Subject: [PATCH 062/194] Rust: Address PR feedback --- .../codeql/rust/dataflow/internal/TaintTrackingImpl.qll | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index bf8e8062623..d4965db92e8 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -57,13 +57,14 @@ module RustTaintTracking implements InputSig { s instanceof Builtins::NumericType or s instanceof Builtins::Bool or s instanceof Builtins::Char - ) + ) and + not t.(Type::EnumType).getEnum().isFieldless() ) and - not excludedTaintStepContent(c) and - not TypeInference::inferType(succ.asExpr()).(Type::EnumType).getEnum().isFieldless() + not excludedTaintStepContent(c) ) or - // Let all read steps (including those from flow summaries and those that + // In addition to the above, for element and reference content we let + // _all_ read steps (including those from flow summaries and those that // result in small primitive types) give rise to taint steps. exists(SingletonContentSet cs | RustDataFlow::readStep(pred, cs, succ) | cs.getContent() instanceof ElementContent From efbc0934c41ca99effa60b0168810e9df26840cf Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 28 Nov 2025 11:27:30 +0100 Subject: [PATCH 063/194] Rust: Do not use types to limit lifting of reads to taint steps --- .../rust/dataflow/internal/TaintTrackingImpl.qll | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index d4965db92e8..33d44501cfc 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -18,6 +18,10 @@ private import codeql.rust.frameworks.stdlib.Builtins as Builtins */ extensible predicate excludeFieldTaintStep(string field); +/** + * Holds if the content `c` corresponds to a field that has explicitly been + * excluded as a taint step. + */ private predicate excludedTaintStepContent(Content c) { exists(string arg | excludeFieldTaintStep(arg) | FlowSummaryImpl::encodeContentStructField(c, arg) or @@ -47,19 +51,9 @@ module RustTaintTracking implements InputSig { or // Read steps give rise to taint steps. This has the effect that if `foo` // is tainted and an operation reads from `foo` (e.g., `foo.bar`) then - // taint is propagated. We limit this to not apply if the type of the - // operation is a small primitive type as these are often uninteresting - // (for instance in the case of an injection query). + // taint is propagated. exists(Content c | RustDataFlow::readContentStep(pred, c, succ) and - forex(Type::Type t | t = TypeInference::inferType(succ.asExpr()) | - not exists(Struct s | s = t.(Type::StructType).getStruct() | - s instanceof Builtins::NumericType or - s instanceof Builtins::Bool or - s instanceof Builtins::Char - ) and - not t.(Type::EnumType).getEnum().isFieldless() - ) and not excludedTaintStepContent(c) ) or From c6d2047827d43152cfe8b8ea8d4610ef1c0967cf Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 28 Nov 2025 12:40:00 +0100 Subject: [PATCH 064/194] Rust: Update expected files --- .../dataflow/global/inline-flow.expected | 7 ++++ .../library-tests/dataflow/global/main.rs | 2 +- .../sources/database/InlineFlow.expected | 32 +++++++++++++++++++ .../dataflow/sources/database/test.rs | 16 +++++----- .../CWE-825/AccessAfterLifetime.expected | 4 --- 5 files changed, 48 insertions(+), 13 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected index 2ffa7e10995..608188c4dbb 100644 --- a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected @@ -185,10 +185,13 @@ edges | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | main.rs:306:9:306:26 | MyInt {...} [MyInt] | provenance | | | main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | provenance | | | main.rs:306:55:306:55 | b [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | provenance | | +| main.rs:315:32:319:1 | { ... } | main.rs:322:13:322:26 | async_source(...) | provenance | | | main.rs:315:32:319:1 | { ... } | main.rs:334:41:334:54 | async_source(...) | provenance | | | main.rs:316:9:316:9 | a | main.rs:315:32:319:1 | { ... } | provenance | | | main.rs:316:9:316:9 | a | main.rs:317:10:317:10 | a | provenance | | | main.rs:316:13:316:21 | source(...) | main.rs:316:9:316:9 | a | provenance | | +| main.rs:322:9:322:9 | a | main.rs:323:10:323:10 | a | provenance | | +| main.rs:322:13:322:26 | async_source(...) | main.rs:322:9:322:9 | a | provenance | | | main.rs:326:13:326:13 | c | main.rs:327:14:327:14 | c | provenance | | | main.rs:326:17:326:25 | source(...) | main.rs:326:13:326:13 | c | provenance | | | main.rs:334:9:334:9 | a | main.rs:335:10:335:10 | a | provenance | | @@ -419,6 +422,9 @@ nodes | main.rs:316:9:316:9 | a | semmle.label | a | | main.rs:316:13:316:21 | source(...) | semmle.label | source(...) | | main.rs:317:10:317:10 | a | semmle.label | a | +| main.rs:322:9:322:9 | a | semmle.label | a | +| main.rs:322:13:322:26 | async_source(...) | semmle.label | async_source(...) | +| main.rs:323:10:323:10 | a | semmle.label | a | | main.rs:326:13:326:13 | c | semmle.label | c | | main.rs:326:17:326:25 | source(...) | semmle.label | source(...) | | main.rs:327:14:327:14 | c | semmle.label | c | @@ -503,6 +509,7 @@ testFailures | main.rs:302:10:302:10 | c | main.rs:299:28:299:36 | source(...) | main.rs:302:10:302:10 | c | $@ | main.rs:299:28:299:36 | source(...) | source(...) | | main.rs:307:10:307:10 | c | main.rs:305:28:305:37 | source(...) | main.rs:307:10:307:10 | c | $@ | main.rs:305:28:305:37 | source(...) | source(...) | | main.rs:317:10:317:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:317:10:317:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | +| main.rs:323:10:323:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:323:10:323:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | | main.rs:327:14:327:14 | c | main.rs:326:17:326:25 | source(...) | main.rs:327:14:327:14 | c | $@ | main.rs:326:17:326:25 | source(...) | source(...) | | main.rs:335:10:335:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:335:10:335:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | | main.rs:384:14:384:15 | n1 | main.rs:359:13:359:21 | source(...) | main.rs:384:14:384:15 | n1 | $@ | main.rs:359:13:359:21 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/global/main.rs b/rust/ql/test/library-tests/dataflow/global/main.rs index 9435de4a681..d84fdc62999 100644 --- a/rust/ql/test/library-tests/dataflow/global/main.rs +++ b/rust/ql/test/library-tests/dataflow/global/main.rs @@ -320,7 +320,7 @@ async fn async_source() -> i64 { async fn test_async_await_async_part() { let a = async_source().await; - sink(a); // $ MISSING: hasValueFlow=1 + sink(a); // $ hasTaintFlow=1 MISSING: hasValueFlow=1 let b = async { let c = source(2); diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index d463c2ab0bf..1314393fd0a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -51,7 +51,9 @@ edges | test.rs:48:22:48:30 | query_map | test.rs:50:14:50:24 | ...: i64 | provenance | Src:MaD:3 | | test.rs:50:14:50:24 | ...: i64 | test.rs:51:22:51:27 | values | provenance | | | test.rs:55:22:55:30 | query_map | test.rs:57:14:57:39 | ...: ... | provenance | Src:MaD:3 | +| test.rs:57:14:57:39 | ...: ... | test.rs:58:22:58:29 | values.0 | provenance | | | test.rs:57:14:57:39 | ...: ... | test.rs:59:22:59:29 | values.1 | provenance | | +| test.rs:57:14:57:39 | ...: ... | test.rs:60:22:60:29 | values.2 | provenance | | | test.rs:64:13:64:17 | total | test.rs:68:14:68:18 | total | provenance | | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | test.rs:64:21:67:11 | TryExpr | provenance | | | test.rs:64:21:67:11 | TryExpr | test.rs:64:13:64:17 | total | provenance | | @@ -64,8 +66,12 @@ edges | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | | test.rs:70:22:70:31 | query_fold | test.rs:70:83:70:105 | ...: ... | provenance | Src:MaD:2 | +| test.rs:70:83:70:105 | ...: ... | test.rs:71:17:71:18 | id | provenance | | | test.rs:70:83:70:105 | ...: ... | test.rs:72:17:72:20 | name | provenance | | +| test.rs:70:83:70:105 | ...: ... | test.rs:73:17:73:19 | age | provenance | | +| test.rs:71:17:71:18 | id | test.rs:74:18:74:19 | id | provenance | | | test.rs:72:17:72:20 | name | test.rs:75:18:75:21 | name | provenance | | +| test.rs:73:17:73:19 | age | test.rs:76:18:76:20 | age | provenance | | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | | test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | @@ -87,7 +93,9 @@ edges | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | | test.rs:137:14:137:24 | ...: i64 | test.rs:138:22:138:27 | values | provenance | | | test.rs:142:22:142:30 | query_map | test.rs:144:14:144:39 | ...: ... | provenance | Src:MaD:5 | +| test.rs:144:14:144:39 | ...: ... | test.rs:145:22:145:29 | values.0 | provenance | | | test.rs:144:14:144:39 | ...: ... | test.rs:146:22:146:29 | values.1 | provenance | | +| test.rs:144:14:144:39 | ...: ... | test.rs:147:22:147:29 | values.2 | provenance | | | test.rs:151:13:151:17 | total | test.rs:155:14:155:18 | total | provenance | | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | test.rs:151:21:154:16 | await ... [Ok] | provenance | | | test.rs:151:21:154:16 | await ... [Ok] | test.rs:151:21:154:17 | TryExpr | provenance | | @@ -101,8 +109,12 @@ edges | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | | test.rs:157:22:157:31 | query_fold | test.rs:157:83:157:105 | ...: ... | provenance | Src:MaD:4 | +| test.rs:157:83:157:105 | ...: ... | test.rs:158:17:158:18 | id | provenance | | | test.rs:157:83:157:105 | ...: ... | test.rs:159:17:159:20 | name | provenance | | +| test.rs:157:83:157:105 | ...: ... | test.rs:160:17:160:19 | age | provenance | | +| test.rs:158:17:158:18 | id | test.rs:161:18:161:19 | id | provenance | | | test.rs:159:17:159:20 | name | test.rs:162:18:162:21 | name | provenance | | +| test.rs:160:17:160:19 | age | test.rs:163:18:163:20 | age | provenance | | nodes | test.rs:18:13:18:14 | v1 | semmle.label | v1 | | test.rs:18:24:18:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | @@ -147,7 +159,9 @@ nodes | test.rs:51:22:51:27 | values | semmle.label | values | | test.rs:55:22:55:30 | query_map | semmle.label | query_map | | test.rs:57:14:57:39 | ...: ... | semmle.label | ...: ... | +| test.rs:58:22:58:29 | values.0 | semmle.label | values.0 | | test.rs:59:22:59:29 | values.1 | semmle.label | values.1 | +| test.rs:60:22:60:29 | values.2 | semmle.label | values.2 | | test.rs:64:13:64:17 | total | semmle.label | total | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | semmle.label | conn.query_fold(...) [Ok] | | test.rs:64:21:67:11 | TryExpr | semmle.label | TryExpr | @@ -160,8 +174,12 @@ nodes | test.rs:68:14:68:18 | total | semmle.label | total | | test.rs:70:22:70:31 | query_fold | semmle.label | query_fold | | test.rs:70:83:70:105 | ...: ... | semmle.label | ...: ... | +| test.rs:71:17:71:18 | id | semmle.label | id | | test.rs:72:17:72:20 | name | semmle.label | name | +| test.rs:73:17:73:19 | age | semmle.label | age | +| test.rs:74:18:74:19 | id | semmle.label | id | | test.rs:75:18:75:21 | name | semmle.label | name | +| test.rs:76:18:76:20 | age | semmle.label | age | | test.rs:105:13:105:14 | v1 | semmle.label | v1 | | test.rs:105:24:105:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | | test.rs:105:24:105:42 | ... .unwrap() | semmle.label | ... .unwrap() | @@ -189,7 +207,9 @@ nodes | test.rs:138:22:138:27 | values | semmle.label | values | | test.rs:142:22:142:30 | query_map | semmle.label | query_map | | test.rs:144:14:144:39 | ...: ... | semmle.label | ...: ... | +| test.rs:145:22:145:29 | values.0 | semmle.label | values.0 | | test.rs:146:22:146:29 | values.1 | semmle.label | values.1 | +| test.rs:147:22:147:29 | values.2 | semmle.label | values.2 | | test.rs:151:13:151:17 | total | semmle.label | total | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | semmle.label | conn.query_fold(...) [future, Ok] | | test.rs:151:21:154:16 | await ... [Ok] | semmle.label | await ... [Ok] | @@ -203,8 +223,12 @@ nodes | test.rs:155:14:155:18 | total | semmle.label | total | | test.rs:157:22:157:31 | query_fold | semmle.label | query_fold | | test.rs:157:83:157:105 | ...: ... | semmle.label | ...: ... | +| test.rs:158:17:158:18 | id | semmle.label | id | | test.rs:159:17:159:20 | name | semmle.label | name | +| test.rs:160:17:160:19 | age | semmle.label | age | +| test.rs:161:18:161:19 | id | semmle.label | id | | test.rs:162:18:162:21 | name | semmle.label | name | +| test.rs:163:18:163:20 | age | semmle.label | age | subpaths testFailures #select @@ -216,16 +240,24 @@ testFailures | test.rs:41:14:41:70 | ... .unwrap() | test.rs:41:42:41:44 | get | test.rs:41:14:41:70 | ... .unwrap() | $@ | test.rs:41:42:41:44 | get | get | | test.rs:44:22:44:22 | v | test.rs:40:27:40:35 | exec_iter | test.rs:44:22:44:22 | v | $@ | test.rs:40:27:40:35 | exec_iter | exec_iter | | test.rs:51:22:51:27 | values | test.rs:48:22:48:30 | query_map | test.rs:51:22:51:27 | values | $@ | test.rs:48:22:48:30 | query_map | query_map | +| test.rs:58:22:58:29 | values.0 | test.rs:55:22:55:30 | query_map | test.rs:58:22:58:29 | values.0 | $@ | test.rs:55:22:55:30 | query_map | query_map | | test.rs:59:22:59:29 | values.1 | test.rs:55:22:55:30 | query_map | test.rs:59:22:59:29 | values.1 | $@ | test.rs:55:22:55:30 | query_map | query_map | +| test.rs:60:22:60:29 | values.2 | test.rs:55:22:55:30 | query_map | test.rs:60:22:60:29 | values.2 | $@ | test.rs:55:22:55:30 | query_map | query_map | | test.rs:65:18:65:20 | row | test.rs:64:26:64:35 | query_fold | test.rs:65:18:65:20 | row | $@ | test.rs:64:26:64:35 | query_fold | query_fold | | test.rs:68:14:68:18 | total | test.rs:64:26:64:35 | query_fold | test.rs:68:14:68:18 | total | $@ | test.rs:64:26:64:35 | query_fold | query_fold | +| test.rs:74:18:74:19 | id | test.rs:70:22:70:31 | query_fold | test.rs:74:18:74:19 | id | $@ | test.rs:70:22:70:31 | query_fold | query_fold | | test.rs:75:18:75:21 | name | test.rs:70:22:70:31 | query_fold | test.rs:75:18:75:21 | name | $@ | test.rs:70:22:70:31 | query_fold | query_fold | +| test.rs:76:18:76:20 | age | test.rs:70:22:70:31 | query_fold | test.rs:76:18:76:20 | age | $@ | test.rs:70:22:70:31 | query_fold | query_fold | | test.rs:106:14:106:15 | v1 | test.rs:105:28:105:30 | get | test.rs:106:14:106:15 | v1 | $@ | test.rs:105:28:105:30 | get | get | | test.rs:109:14:109:15 | v2 | test.rs:108:28:108:34 | get_opt | test.rs:109:14:109:15 | v2 | $@ | test.rs:108:28:108:34 | get_opt | get_opt | | test.rs:112:14:112:15 | v3 | test.rs:111:28:111:31 | take | test.rs:112:14:112:15 | v3 | $@ | test.rs:111:28:111:31 | take | take | | test.rs:115:14:115:15 | v4 | test.rs:114:28:114:35 | take_opt | test.rs:115:14:115:15 | v4 | $@ | test.rs:114:28:114:35 | take_opt | take_opt | | test.rs:138:22:138:27 | values | test.rs:135:22:135:30 | query_map | test.rs:138:22:138:27 | values | $@ | test.rs:135:22:135:30 | query_map | query_map | +| test.rs:145:22:145:29 | values.0 | test.rs:142:22:142:30 | query_map | test.rs:145:22:145:29 | values.0 | $@ | test.rs:142:22:142:30 | query_map | query_map | | test.rs:146:22:146:29 | values.1 | test.rs:142:22:142:30 | query_map | test.rs:146:22:146:29 | values.1 | $@ | test.rs:142:22:142:30 | query_map | query_map | +| test.rs:147:22:147:29 | values.2 | test.rs:142:22:142:30 | query_map | test.rs:147:22:147:29 | values.2 | $@ | test.rs:142:22:142:30 | query_map | query_map | | test.rs:152:18:152:20 | row | test.rs:151:26:151:35 | query_fold | test.rs:152:18:152:20 | row | $@ | test.rs:151:26:151:35 | query_fold | query_fold | | test.rs:155:14:155:18 | total | test.rs:151:26:151:35 | query_fold | test.rs:155:14:155:18 | total | $@ | test.rs:151:26:151:35 | query_fold | query_fold | +| test.rs:161:18:161:19 | id | test.rs:157:22:157:31 | query_fold | test.rs:161:18:161:19 | id | $@ | test.rs:157:22:157:31 | query_fold | query_fold | | test.rs:162:18:162:21 | name | test.rs:157:22:157:31 | query_fold | test.rs:162:18:162:21 | name | $@ | test.rs:157:22:157:31 | query_fold | query_fold | +| test.rs:163:18:163:20 | age | test.rs:157:22:157:31 | query_fold | test.rs:163:18:163:20 | age | $@ | test.rs:157:22:157:31 | query_fold | query_fold | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/test.rs b/rust/ql/test/library-tests/dataflow/sources/database/test.rs index 68943608ee4..618830091a6 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/database/test.rs @@ -55,9 +55,9 @@ mod test_mysql { let _ = conn.query_map( // $ Alert[rust/summary/taint-sources] "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { - sink(values.0); // $ MISSING: hasTaintFlow + sink(values.0); // $ hasTaintFlow sink(values.1); // $ hasTaintFlow - sink(values.2); // $ MISSING: hasTaintFlow + sink(values.2); // $ hasTaintFlow } )?; @@ -71,9 +71,9 @@ mod test_mysql { let id: i64 = row.0; let name: String = row.1; let age: i32 = row.2; - sink(id); // $ MISSING: hasTaintFlow + sink(id); // $ hasTaintFlow sink(name); // $ hasTaintFlow - sink(age); // $ MISSING: hasTaintFlow + sink(age); // $ hasTaintFlow acc + 1 })?; @@ -142,9 +142,9 @@ mod test_mysql_async { let _ = conn.query_map( // $ Alert[rust/summary/taint-sources] "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { - sink(values.0); // $ MISSING: hasTaintFlow + sink(values.0); // $ hasTaintFlow sink(values.1); // $ hasTaintFlow - sink(values.2); // $ MISSING: hasTaintFlow + sink(values.2); // $ hasTaintFlow } ).await?; @@ -158,9 +158,9 @@ mod test_mysql_async { let id: i64 = row.0; let name: String = row.1; let age: i32 = row.2; - sink(id); // $ MISSING: hasTaintFlow + sink(id); // $ hasTaintFlow sink(name); // $ hasTaintFlow - sink(age); // $ MISSING: hasTaintFlow + sink(age); // $ hasTaintFlow acc + 1 }).await?; diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index 4b08efdb439..69573c73857 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -117,13 +117,11 @@ edges | lifetime.rs:332:17:332:22 | &enum1 | lifetime.rs:332:6:332:13 | mut ref1 | provenance | | | lifetime.rs:336:3:336:6 | ref1 | lifetime.rs:338:9:338:35 | ...::Pointer(...) | provenance | | | lifetime.rs:336:10:336:15 | &inner | lifetime.rs:336:3:336:6 | ref1 | provenance | | -| lifetime.rs:338:9:338:35 | ...::Pointer(...) | lifetime.rs:339:27:339:30 | * ... | provenance | | | lifetime.rs:338:9:338:35 | ...::Pointer(...) | lifetime.rs:339:28:339:30 | ptr | provenance | | | lifetime.rs:348:6:348:13 | mut ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | | lifetime.rs:348:17:348:22 | &enum1 | lifetime.rs:348:6:348:13 | mut ref1 | provenance | | | lifetime.rs:352:3:352:6 | ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | | lifetime.rs:352:10:352:15 | &inner | lifetime.rs:352:3:352:6 | ref1 | provenance | | -| lifetime.rs:354:9:354:35 | ...::Pointer(...) | lifetime.rs:355:27:355:30 | * ... | provenance | | | lifetime.rs:354:9:354:35 | ...::Pointer(...) | lifetime.rs:355:28:355:30 | ptr | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:388:15:388:16 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:391:15:391:16 | p1 | provenance | | @@ -282,14 +280,12 @@ nodes | lifetime.rs:336:3:336:6 | ref1 | semmle.label | ref1 | | lifetime.rs:336:10:336:15 | &inner | semmle.label | &inner | | lifetime.rs:338:9:338:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | -| lifetime.rs:339:27:339:30 | * ... | semmle.label | * ... | | lifetime.rs:339:28:339:30 | ptr | semmle.label | ptr | | lifetime.rs:348:6:348:13 | mut ref1 | semmle.label | mut ref1 | | lifetime.rs:348:17:348:22 | &enum1 | semmle.label | &enum1 | | lifetime.rs:352:3:352:6 | ref1 | semmle.label | ref1 | | lifetime.rs:352:10:352:15 | &inner | semmle.label | &inner | | lifetime.rs:354:9:354:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | -| lifetime.rs:355:27:355:30 | * ... | semmle.label | * ... | | lifetime.rs:355:28:355:30 | ptr | semmle.label | ptr | | lifetime.rs:383:3:383:4 | p1 | semmle.label | p1 | | lifetime.rs:383:31:383:37 | &raw mut my_pair | semmle.label | &raw mut my_pair | From c160a1f6581c968a14371ddbdf5df1fe1a98d4c0 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Dec 2025 15:55:28 +0000 Subject: [PATCH 065/194] Rust: Fix common FPs for rust/unused-variable and rust/unused-value. --- rust/ql/src/queries/unusedentities/UnusedVariable.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/ql/src/queries/unusedentities/UnusedVariable.qll b/rust/ql/src/queries/unusedentities/UnusedVariable.qll index c0684636e77..64d49a547f1 100644 --- a/rust/ql/src/queries/unusedentities/UnusedVariable.qll +++ b/rust/ql/src/queries/unusedentities/UnusedVariable.qll @@ -43,4 +43,8 @@ predicate isAllowableUnused(Variable v) { or // a 'self' variable v.getText() = "self" + or + // a common source of false positives is match arms that are misrecognized as + // a variable, having not been correctly resolved + v.getPat().getParentNode() instanceof MatchArm } From 6ca90a2d6219191a4b3842b497fdfb855fce2b34 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Dec 2025 16:23:04 +0000 Subject: [PATCH 066/194] Rust: Change note. --- rust/ql/src/change-notes/2025-12-10-unused-variable.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/src/change-notes/2025-12-10-unused-variable.md diff --git a/rust/ql/src/change-notes/2025-12-10-unused-variable.md b/rust/ql/src/change-notes/2025-12-10-unused-variable.md new file mode 100644 index 00000000000..7391255e608 --- /dev/null +++ b/rust/ql/src/change-notes/2025-12-10-unused-variable.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed common false positives for the `rust/unused-variable` and `rust/unused-value` queries. From f1d241f810683bdacfbe05d535a892b001230de3 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:09:12 +0000 Subject: [PATCH 067/194] Rust: Accept test change. --- rust/ql/test/query-tests/unusedentities/UnusedVariable.expected | 1 - rust/ql/test/query-tests/unusedentities/main.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected index 583587b8a13..ca3b2979ef9 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected @@ -10,7 +10,6 @@ | main.rs:307:13:307:15 | num | Variable 'num' is not used. | | main.rs:342:25:342:25 | y | Variable 'y' is not used. | | main.rs:345:28:345:28 | a | Variable 'a' is not used. | -| main.rs:348:9:348:9 | p | Variable 'p' is not used. | | main.rs:366:9:366:13 | right | Variable 'right' is not used. | | main.rs:372:9:372:14 | right2 | Variable 'right2' is not used. | | main.rs:383:13:383:13 | y | Variable 'y' is not used. | diff --git a/rust/ql/test/query-tests/unusedentities/main.rs b/rust/ql/test/query-tests/unusedentities/main.rs index a08a05a83bd..96bd808cee9 100644 --- a/rust/ql/test/query-tests/unusedentities/main.rs +++ b/rust/ql/test/query-tests/unusedentities/main.rs @@ -345,7 +345,7 @@ fn if_lets_matches() { MyPoint { x: 3, y: a } => { // $ Alert[rust/unused-variable] } MyPoint { x: 4, .. } => {} - p => { // $ Alert[rust/unused-variable] + p => { // $ MISSING: Alert[rust/unused-variable] } } From f30a3b37123a83089caa38aa3abcfec5e19f8cde Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 10 Dec 2025 20:19:58 +0100 Subject: [PATCH 068/194] Rust: Add type inference blowup test --- .../PathResolutionConsistency.expected | 1 + .../test/library-tests/type-inference/main.rs | 33 ++ .../type-inference/type-inference.expected | 395 ++++++++++++++---- 3 files changed, 345 insertions(+), 84 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 38a68818c75..d2807602e2f 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -30,5 +30,6 @@ multipleResolvedTargets | main.rs:2642:13:2642:31 | ...::from(...) | | main.rs:2643:13:2643:31 | ...::from(...) | | main.rs:2644:13:2644:31 | ...::from(...) | +| main.rs:3067:13:3067:17 | x.f() | | pattern_matching.rs:273:13:273:27 | * ... | | pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index f78202969b8..4cc91bf6584 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -3036,6 +3036,39 @@ mod context_typed { } } +mod literal_overlap { + trait MyTrait { + fn f(self) -> Self; + } + + impl MyTrait for i32 { + // i32f + fn f(self) -> Self { + self + } + } + + impl MyTrait for usize { + // usizef + fn f(self) -> Self { + self + } + } + + impl MyTrait for &T { + // Reff + fn f(self) -> Self { + self + } + } + + pub fn f() -> usize { + let mut x = 0; + x = x.f(); // $ target=usizef $ SPURIOUS: target=i32f target=Reff + x + } +} + mod blanket_impl; mod closure; mod dereference; diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index ff3545f0c0f..9aaad02aa43 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -3529,48 +3529,62 @@ inferCertainType | main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | | main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | | main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3044:11:3079:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3045:5:3045:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3046:5:3046:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:5:3047:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:20:3047:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:41:3047:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3048:5:3048:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3049:5:3049:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3050:5:3050:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3051:5:3051:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3052:5:3052:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3053:5:3053:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3054:5:3054:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3055:5:3055:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3056:5:3056:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3057:5:3057:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3058:5:3058:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3059:5:3059:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3060:5:3060:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3061:5:3061:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3062:5:3062:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3063:5:3063:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3064:5:3064:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3064:5:3064:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3065:5:3065:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3066:5:3066:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3067:5:3067:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3068:5:3068:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3069:5:3069:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3070:5:3070:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3071:5:3071:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3072:5:3072:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3073:5:3073:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3074:5:3074:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3075:5:3075:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3076:5:3076:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3077:5:3077:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3077:5:3077:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3077:5:3077:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3077:5:3077:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3077:16:3077:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3078:5:3078:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3040:5:3042:5 | Self [trait MyTrait] | +| main.rs:3046:14:3046:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:28:3048:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3047:13:3047:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3053:14:3053:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3053:28:3055:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3054:13:3054:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3060:14:3060:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3060:14:3060:17 | SelfParam | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3060:28:3062:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3060:28:3062:9 | { ... } | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3061:13:3061:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3061:13:3061:16 | self | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3065:25:3069:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3077:11:3112:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3078:5:3078:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3079:5:3079:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:5:3080:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:20:3080:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:41:3080:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3081:5:3081:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3082:5:3082:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3083:5:3083:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3084:5:3084:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3085:5:3085:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3086:5:3086:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3087:5:3087:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3088:5:3088:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3089:5:3089:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3091:5:3091:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3092:5:3092:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3097:5:3097:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3110:5:3110:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3110:5:3110:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | +| main.rs:3110:5:3110:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3110:16:3110:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3111:5:3111:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -10983,48 +10997,261 @@ inferType | main.rs:3035:9:3035:9 | x | T | {EXTERNAL LOCATION} | i32 | | main.rs:3035:9:3035:17 | x.push(...) | | {EXTERNAL LOCATION} | () | | main.rs:3035:16:3035:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3044:11:3079:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3045:5:3045:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3046:5:3046:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:5:3047:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:20:3047:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:41:3047:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3048:5:3048:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3049:5:3049:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3050:5:3050:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3051:5:3051:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3052:5:3052:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3053:5:3053:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3054:5:3054:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3055:5:3055:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3056:5:3056:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3057:5:3057:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3058:5:3058:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3059:5:3059:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3060:5:3060:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3061:5:3061:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3062:5:3062:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3063:5:3063:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3064:5:3064:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3064:5:3064:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3065:5:3065:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3066:5:3066:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3067:5:3067:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3068:5:3068:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3069:5:3069:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3070:5:3070:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3071:5:3071:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3072:5:3072:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3073:5:3073:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3074:5:3074:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3075:5:3075:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3076:5:3076:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3077:5:3077:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3077:5:3077:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3077:5:3077:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3077:5:3077:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3077:16:3077:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3078:5:3078:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3040:5:3042:5 | Self [trait MyTrait] | +| main.rs:3046:14:3046:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:28:3048:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3047:13:3047:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3053:14:3053:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3053:28:3055:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3054:13:3054:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3060:14:3060:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3060:14:3060:17 | SelfParam | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3060:28:3062:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3060:28:3062:9 | { ... } | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3061:13:3061:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3061:13:3061:16 | self | TRef | main.rs:3058:10:3058:10 | T | +| main.rs:3065:25:3069:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:9:3067:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:3077:11:3112:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3078:5:3078:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3079:5:3079:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:5:3080:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:20:3080:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3080:41:3080:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3081:5:3081:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3082:5:3082:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3083:5:3083:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3084:5:3084:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3085:5:3085:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3086:5:3086:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3087:5:3087:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3088:5:3088:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3089:5:3089:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3091:5:3091:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3092:5:3092:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3097:5:3097:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3110:5:3110:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3110:5:3110:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | +| main.rs:3110:5:3110:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3110:16:3110:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3111:5:3111:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From d5a95a8099bddb5ef65e22760569e5ae20e3fb1e Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 10 Dec 2025 20:44:27 +0100 Subject: [PATCH 069/194] Rust: Strengthen `isNotInstantiationOf` uses --- .../codeql/rust/internal/TypeInference.qll | 20 +- .../internal/typeinference/FunctionType.qll | 6 +- .../test/library-tests/type-inference/main.rs | 2 +- .../type-inference/type-inference.expected | 186 ------------------ .../typeinference/internal/TypeInference.qll | 29 ++- 5 files changed, 40 insertions(+), 203 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index ed87b0c7104..b281889ef1d 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1430,11 +1430,19 @@ private module MethodResolution { * Holds if the method inside `i` with matching name and arity can be ruled * out as a target of this call, because the candidate receiver type represented * by `derefChain` and `borrow` is incompatible with the `self` parameter type. + * + * The types are incompatible because they disagree on a concrete type somewhere + * inside `root`. */ pragma[nomagic] - private predicate hasIncompatibleTarget(ImplOrTraitItemNode i, string derefChain, boolean borrow) { - ReceiverIsInstantiationOfSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, derefChain, - borrow), i, _) + private predicate hasIncompatibleTarget( + ImplOrTraitItemNode i, string derefChain, boolean borrow, Type root + ) { + exists(TypePath path | + ReceiverIsInstantiationOfSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, + derefChain, borrow), i, _, path) and + path.isCons(root.getATypeParameter(), _) + ) } /** @@ -1448,7 +1456,7 @@ private module MethodResolution { ImplItemNode impl, string derefChain, boolean borrow ) { ReceiverIsNotInstantiationOfBlanketLikeSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, - derefChain, borrow), impl, _) + derefChain, borrow), impl, _, _) or ReceiverSatisfiesBlanketLikeConstraint::dissatisfiesBlanketConstraint(MkMethodCallCand(this, derefChain, borrow), impl) @@ -1479,7 +1487,7 @@ private module MethodResolution { forall(ImplOrTraitItemNode i | methodCallNonBlanketCandidate(this, _, i, _, strippedTypePath, strippedType) | - this.hasIncompatibleTarget(i, derefChain, borrow) + this.hasIncompatibleTarget(i, derefChain, borrow, strippedType) ) } @@ -1818,7 +1826,7 @@ private module MethodResolution { */ pragma[nomagic] private predicate hasIncompatibleInherentTarget(Impl impl) { - ReceiverIsNotInstantiationOfInherentSelfParam::argIsNotInstantiationOf(this, impl, _) + ReceiverIsNotInstantiationOfInherentSelfParam::argIsNotInstantiationOf(this, impl, _, _) } /** diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index c219ef0eacc..a74ff762c58 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -256,8 +256,10 @@ module ArgIsInstantiationOf< ArgSubstIsInstantiationOf::isInstantiationOf(arg, i, constraint) } - predicate argIsNotInstantiationOf(Arg arg, ImplOrTraitItemNode i, AssocFunctionType constraint) { - ArgSubstIsInstantiationOf::isNotInstantiationOf(arg, i, constraint) + predicate argIsNotInstantiationOf( + Arg arg, ImplOrTraitItemNode i, AssocFunctionType constraint, TypePath path + ) { + ArgSubstIsInstantiationOf::isNotInstantiationOf(arg, i, constraint, path) } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 4cc91bf6584..466733cf47c 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -3064,7 +3064,7 @@ mod literal_overlap { pub fn f() -> usize { let mut x = 0; - x = x.f(); // $ target=usizef $ SPURIOUS: target=i32f target=Reff + x = x.f(); // $ target=usizef $ SPURIOUS: target=i32f x } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 9aaad02aa43..14cc4577539 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -11013,203 +11013,17 @@ inferType | main.rs:3065:25:3069:5 | { ... } | | {EXTERNAL LOCATION} | usize | | main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3067:9:3067:17 | ... = ... | | {EXTERNAL LOCATION} | () | | main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:13 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | i32 | | main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef.TRef | {EXTERNAL LOCATION} | & | | main.rs:3077:11:3112:1 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:3078:5:3078:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | | main.rs:3079:5:3079:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index bf107c7d3f5..4bb348979c1 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -705,7 +705,8 @@ module Make1 Input1> { } /** - * Holds if `app` is _not_ a possible instantiation of `constraint`. + * Holds if `app` is _not_ a possible instantiation of `constraint`, because `app` + * and `constraint` differ on concrete types at `path`. * * This is an approximation of `not isInstantiationOf(app, abs, constraint)`, but * defined without a negative occurrence of `isInstantiationOf`. @@ -719,9 +720,11 @@ module Make1 Input1> { * `isInstantiationOf` nor `isNotInstantiationOf` will hold. */ pragma[nomagic] - predicate isNotInstantiationOf(App app, TypeAbstraction abs, Constraint constraint) { + predicate isNotInstantiationOf( + App app, TypeAbstraction abs, Constraint constraint, TypePath path + ) { // `app` and `constraint` differ on a concrete type - exists(Type t, Type t2, TypePath path | + exists(Type t, Type t2 | t = resolveTypeAt(app, abs, constraint, path) and not t = abs.getATypeParameter() and app.getTypeAt(path) = t2 and @@ -983,6 +986,9 @@ module Make1 Input1> { } } + private module SatisfiesConstraintIsInstantiationOf = + IsInstantiationOf; + /** * Holds if `tt` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. */ @@ -1004,13 +1010,21 @@ module Make1 Input1> { // constraint we need to find the right implementation, which is the // one where the type instantiates the precondition. if multipleConstraintImplementations(type, constraint) - then - IsInstantiationOf::isInstantiationOf(tt, - abs, condition) + then SatisfiesConstraintIsInstantiationOf::isInstantiationOf(tt, abs, condition) else any() ) } + pragma[nomagic] + private predicate isNotInstantiationOf( + HasTypeTree tt, TypeAbstraction abs, TypeMention condition, Type root + ) { + exists(TypePath path | + SatisfiesConstraintIsInstantiationOf::isNotInstantiationOf(tt, abs, condition, path) and + path.isCons(root.getATypeParameter(), _) + ) + } + /** * Holds if `tt` does not satisfy `constraint`. * @@ -1040,8 +1054,7 @@ module Make1 Input1> { forex(TypeAbstraction abs, TypeMention condition | rootTypesSatisfaction(type, constraint, abs, condition, _) | - IsInstantiationOf::isNotInstantiationOf(tt, - abs, condition) + isNotInstantiationOf(tt, abs, condition, type) ) ) ) From 8c39472d732e1adb6b48f35a7b99e5165c8e5907 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 11 Dec 2025 09:09:12 +0100 Subject: [PATCH 070/194] Rust: Add change note for reads as taint steps --- rust/ql/lib/change-notes/2025-12-11-read-as-taint.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/lib/change-notes/2025-12-11-read-as-taint.md diff --git a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md new file mode 100644 index 00000000000..6e17d6a4e63 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Reading content of a value now carry taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. \ No newline at end of file From 577a2e1974963f11500b1accf978390cd76b4692 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 13:07:57 +0100 Subject: [PATCH 071/194] C#: Copy the 0.19.2 custom rules_dotnet. --- .../rules_dotnet/0.21.5-codeql.1/MODULE.bazel | 57 +++++++++++++++++++ ...rt_additional_files_in_nuget_archive.patch | 11 ++++ .../rules_dotnet/0.21.5-codeql.1/source.json | 9 +++ 3 files changed, 77 insertions(+) create mode 100644 misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel create mode 100644 misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch create mode 100644 misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel new file mode 100644 index 00000000000..ba047f282b0 --- /dev/null +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel @@ -0,0 +1,57 @@ +"rules_dotnet" + +module( + name = "rules_dotnet", + version = "0.19.2-codeql.1", + bazel_compatibility = [">=7.0.0"], + compatibility_level = 0, +) + +dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") +dotnet.toolchain(dotnet_version = "9.0.300") +use_repo(dotnet, "dotnet_toolchains") + +register_toolchains("@dotnet_toolchains//:all") + +paket2bazel_dependencies_extension = use_extension("//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") +use_repo(paket2bazel_dependencies_extension, "paket.paket2bazel_dependencies") + +rules_dotnet_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") +use_repo(rules_dotnet_nuget_packages_extension, "paket.rules_dotnet_nuget_packages") + +targeting_packs_extension = use_extension("//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") +use_repo(targeting_packs_extension, "dotnet.targeting_packs") + +runtime_packs_extension = use_extension("//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") +use_repo(runtime_packs_extension, "dotnet.runtime_packs") + +apphost_packs_extension = use_extension("//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") +use_repo(apphost_packs_extension, "dotnet.apphost_packs") + +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "platforms", version = "1.0.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.19.4") +bazel_dep(name = "rules_shell", version = "0.5.0") + +# Dev dependencies +bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) +bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) +bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle") +bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.7.1", dev_dependency = True) +bazel_dep(name = "rules_cc", version = "0.1.2", dev_dependency = True) +bazel_dep(name = "rules_testing", version = "0.8.0", dev_dependency = True) +bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True) +bazel_dep(name = "dotnet_test_resources_other_repo", version = "", dev_dependency = True) +local_path_override( + module_name = "dotnet_test_resources_other_repo", + path = "dotnet/private/tests/resources/other_repo", +) + +rules_dotnet_dev_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) +use_repo(rules_dotnet_dev_nuget_packages_extension, "paket.rules_dotnet_dev_nuget_packages") + +rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) +use_repo(rules_dotnet_nuget_resource_assemblies_tests_extension, "paket.rules_dotnet_nuget_resource_assemblies_tests") + +internal_dev_deps = use_extension("//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) +use_repo(internal_dev_deps, "buildkite_config") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch new file mode 100644 index 00000000000..f1c629694ec --- /dev/null +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch @@ -0,0 +1,11 @@ +--- a/dotnet/private/rules/nuget/nuget_archive.bzl 2025-09-04 16:14:49.402400198 +0200 ++++ b/dotnet/private/rules/nuget/nuget_archive.bzl 2025-09-04 16:12:16.577010334 +0200 +@@ -123,7 +123,7 @@ + return + + # If the folder is empty we do nothing +- if file.endswith(tfm) or file.endswith(tfm + "/"): ++ if file.find("/", tfm_end + 1) != -1: + return + + group = groups[group_name] diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json new file mode 100644 index 00000000000..928683521e2 --- /dev/null +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json @@ -0,0 +1,9 @@ +{ + "integrity": "sha256-6f9LidI9BUve7+TpoL1sh5GKC6sgLSYNImlVnVaiHEE=", + "strip_prefix": "rules_dotnet-0.19.2", + "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.19.2/rules_dotnet-v0.19.2.tar.gz", + "patches": { + "revert_additional_files_in_nuget_archive.patch": "sha256-FzMKXeHVhIBXQRCNFB0EANDszgJc/BBaPgWCzkbW9Ck=" + }, + "patch_strip": 1 +} From aa964362ef5884eb45970171bb907c7fb44acb9c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:24:30 +0100 Subject: [PATCH 072/194] C#: Update rules_dotnet to 0.21.5. --- MODULE.bazel | 4 +- .../rules_dotnet/0.21.5-codeql.1/MODULE.bazel | 40 +++++++++++++------ .../rules_dotnet/0.21.5-codeql.1/source.json | 6 +-- .../modules/rules_dotnet/metadata.json | 3 +- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 91f9ae51f3d..8ba6c2fcd8c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -26,7 +26,7 @@ bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json") bazel_dep(name = "fmt", version = "12.1.0-codeql.1") bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1") bazel_dep(name = "gazelle", version = "0.40.0") -bazel_dep(name = "rules_dotnet", version = "0.19.2-codeql.1") +bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1") bazel_dep(name = "googletest", version = "1.14.0.bcr.1") bazel_dep(name = "rules_rust", version = "0.66.0") bazel_dep(name = "zstd", version = "1.5.5.bcr.1") @@ -172,7 +172,7 @@ http_archive( ) dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") -dotnet.toolchain(dotnet_version = "9.0.300") +dotnet.toolchain(dotnet_version = "10.0.100") use_repo(dotnet, "dotnet_toolchains") register_toolchains("@dotnet_toolchains//:all") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel index ba047f282b0..caaf52f2b9b 100644 --- a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel @@ -2,39 +2,50 @@ module( name = "rules_dotnet", - version = "0.19.2-codeql.1", - bazel_compatibility = [">=7.0.0"], + version = "0.21.5-codeql.1", + bazel_compatibility = [">=8.0.0"], compatibility_level = 0, ) dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") -dotnet.toolchain(dotnet_version = "9.0.300") +dotnet.toolchain(dotnet_version = "10.0.100") +dotnet.toolchain( + name = "dotnet_apphost", + dotnet_version = "10.0.100", +) use_repo(dotnet, "dotnet_toolchains") +# These toolchains are used to build the apphost shimmer +use_repo(dotnet, "dotnet_apphost_x86_64-unknown-linux-gnu") +use_repo(dotnet, "dotnet_apphost_arm64-unknown-linux-gnu") +use_repo(dotnet, "dotnet_apphost_aarch64-apple-darwin") +use_repo(dotnet, "dotnet_apphost_x86_64-apple-darwin") +use_repo(dotnet, "dotnet_apphost_x86_64-pc-windows-msvc") +use_repo(dotnet, "dotnet_apphost_arm64-pc-windows-msvc") + register_toolchains("@dotnet_toolchains//:all") -paket2bazel_dependencies_extension = use_extension("//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") +paket2bazel_dependencies_extension = use_extension("@rules_dotnet//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") use_repo(paket2bazel_dependencies_extension, "paket.paket2bazel_dependencies") -rules_dotnet_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") +rules_dotnet_nuget_packages_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") use_repo(rules_dotnet_nuget_packages_extension, "paket.rules_dotnet_nuget_packages") -targeting_packs_extension = use_extension("//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") +targeting_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") use_repo(targeting_packs_extension, "dotnet.targeting_packs") -runtime_packs_extension = use_extension("//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") +runtime_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") use_repo(runtime_packs_extension, "dotnet.runtime_packs") -apphost_packs_extension = use_extension("//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") +apphost_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") use_repo(apphost_packs_extension, "dotnet.apphost_packs") bazel_dep(name = "bazel_skylib", version = "1.7.1") bazel_dep(name = "platforms", version = "1.0.0") -bazel_dep(name = "aspect_bazel_lib", version = "2.19.4") +bazel_dep(name = "bazel_lib", version = "3.0.0") bazel_dep(name = "rules_shell", version = "0.5.0") # Dev dependencies -bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle") bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.7.1", dev_dependency = True) @@ -47,11 +58,14 @@ local_path_override( path = "dotnet/private/tests/resources/other_repo", ) -rules_dotnet_dev_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) +rules_dotnet_dev_nuget_packages_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) use_repo(rules_dotnet_dev_nuget_packages_extension, "paket.rules_dotnet_dev_nuget_packages") -rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) +rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) use_repo(rules_dotnet_nuget_resource_assemblies_tests_extension, "paket.rules_dotnet_nuget_resource_assemblies_tests") -internal_dev_deps = use_extension("//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) +internal_dev_deps = use_extension("@rules_dotnet//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) use_repo(internal_dev_deps, "buildkite_config") + +rules_dotnet_nuget_tool_tests_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_tool_tests_extension.bzl", "rules_dotnet_nuget_tool_tests_extension", dev_dependency = True) +use_repo(rules_dotnet_nuget_tool_tests_extension, "paket.rules_dotnet_nuget_tool_tests") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json index 928683521e2..aabd82d97c0 100644 --- a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json @@ -1,7 +1,7 @@ { - "integrity": "sha256-6f9LidI9BUve7+TpoL1sh5GKC6sgLSYNImlVnVaiHEE=", - "strip_prefix": "rules_dotnet-0.19.2", - "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.19.2/rules_dotnet-v0.19.2.tar.gz", + "integrity": "sha256-fgvSYSFAtQh+MuDzTji3iWR642WwefGCSzCLLUtZyFE=", + "strip_prefix": "rules_dotnet-0.21.5", + "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.21.5/rules_dotnet-v0.21.5.tar.gz", "patches": { "revert_additional_files_in_nuget_archive.patch": "sha256-FzMKXeHVhIBXQRCNFB0EANDszgJc/BBaPgWCzkbW9Ck=" }, diff --git a/misc/bazel/registry/modules/rules_dotnet/metadata.json b/misc/bazel/registry/modules/rules_dotnet/metadata.json index 684babcda14..f3775020dee 100644 --- a/misc/bazel/registry/modules/rules_dotnet/metadata.json +++ b/misc/bazel/registry/modules/rules_dotnet/metadata.json @@ -13,7 +13,8 @@ "github:bazel-contrib/rules_dotnet" ], "versions": [ - "0.19.2-codeql.1" + "0.19.2-codeql.1", + "0.21.5-codeql.1" ], "yanked_versions": {} } From 3c0e3c4336312ef0d1295c03693dc29bad64ae24 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 14:05:07 +0100 Subject: [PATCH 073/194] C#: Remove custom rules_dotnet 0.19.2. --- .../rules_dotnet/0.19.2-codeql.1/MODULE.bazel | 57 ------------------- ...rt_additional_files_in_nuget_archive.patch | 11 ---- .../rules_dotnet/0.19.2-codeql.1/source.json | 9 --- .../modules/rules_dotnet/metadata.json | 1 - 4 files changed, 78 deletions(-) delete mode 100644 misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel delete mode 100644 misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch delete mode 100644 misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel deleted file mode 100644 index ba047f282b0..00000000000 --- a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel +++ /dev/null @@ -1,57 +0,0 @@ -"rules_dotnet" - -module( - name = "rules_dotnet", - version = "0.19.2-codeql.1", - bazel_compatibility = [">=7.0.0"], - compatibility_level = 0, -) - -dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") -dotnet.toolchain(dotnet_version = "9.0.300") -use_repo(dotnet, "dotnet_toolchains") - -register_toolchains("@dotnet_toolchains//:all") - -paket2bazel_dependencies_extension = use_extension("//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") -use_repo(paket2bazel_dependencies_extension, "paket.paket2bazel_dependencies") - -rules_dotnet_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") -use_repo(rules_dotnet_nuget_packages_extension, "paket.rules_dotnet_nuget_packages") - -targeting_packs_extension = use_extension("//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") -use_repo(targeting_packs_extension, "dotnet.targeting_packs") - -runtime_packs_extension = use_extension("//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") -use_repo(runtime_packs_extension, "dotnet.runtime_packs") - -apphost_packs_extension = use_extension("//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") -use_repo(apphost_packs_extension, "dotnet.apphost_packs") - -bazel_dep(name = "bazel_skylib", version = "1.7.1") -bazel_dep(name = "platforms", version = "1.0.0") -bazel_dep(name = "aspect_bazel_lib", version = "2.19.4") -bazel_dep(name = "rules_shell", version = "0.5.0") - -# Dev dependencies -bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) -bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) -bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle") -bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.7.1", dev_dependency = True) -bazel_dep(name = "rules_cc", version = "0.1.2", dev_dependency = True) -bazel_dep(name = "rules_testing", version = "0.8.0", dev_dependency = True) -bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True) -bazel_dep(name = "dotnet_test_resources_other_repo", version = "", dev_dependency = True) -local_path_override( - module_name = "dotnet_test_resources_other_repo", - path = "dotnet/private/tests/resources/other_repo", -) - -rules_dotnet_dev_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) -use_repo(rules_dotnet_dev_nuget_packages_extension, "paket.rules_dotnet_dev_nuget_packages") - -rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) -use_repo(rules_dotnet_nuget_resource_assemblies_tests_extension, "paket.rules_dotnet_nuget_resource_assemblies_tests") - -internal_dev_deps = use_extension("//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) -use_repo(internal_dev_deps, "buildkite_config") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch b/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch deleted file mode 100644 index f1c629694ec..00000000000 --- a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/dotnet/private/rules/nuget/nuget_archive.bzl 2025-09-04 16:14:49.402400198 +0200 -+++ b/dotnet/private/rules/nuget/nuget_archive.bzl 2025-09-04 16:12:16.577010334 +0200 -@@ -123,7 +123,7 @@ - return - - # If the folder is empty we do nothing -- if file.endswith(tfm) or file.endswith(tfm + "/"): -+ if file.find("/", tfm_end + 1) != -1: - return - - group = groups[group_name] diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json b/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json deleted file mode 100644 index 928683521e2..00000000000 --- a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "integrity": "sha256-6f9LidI9BUve7+TpoL1sh5GKC6sgLSYNImlVnVaiHEE=", - "strip_prefix": "rules_dotnet-0.19.2", - "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.19.2/rules_dotnet-v0.19.2.tar.gz", - "patches": { - "revert_additional_files_in_nuget_archive.patch": "sha256-FzMKXeHVhIBXQRCNFB0EANDszgJc/BBaPgWCzkbW9Ck=" - }, - "patch_strip": 1 -} diff --git a/misc/bazel/registry/modules/rules_dotnet/metadata.json b/misc/bazel/registry/modules/rules_dotnet/metadata.json index f3775020dee..ea34a05cfb6 100644 --- a/misc/bazel/registry/modules/rules_dotnet/metadata.json +++ b/misc/bazel/registry/modules/rules_dotnet/metadata.json @@ -13,7 +13,6 @@ "github:bazel-contrib/rules_dotnet" ], "versions": [ - "0.19.2-codeql.1", "0.21.5-codeql.1" ], "yanked_versions": {} From cf43c6170ad9ba14f51ac67576327bea62fe0917 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:28:18 +0100 Subject: [PATCH 074/194] C#: Update Paket version and dependencies. --- csharp/.config/dotnet-tools.json | 2 +- csharp/paket.dependencies | 2 +- csharp/paket.lock | 97 +++++++++++---------- csharp/paket.main.bzl | 142 +++++++++++++++---------------- 4 files changed, 121 insertions(+), 122 deletions(-) diff --git a/csharp/.config/dotnet-tools.json b/csharp/.config/dotnet-tools.json index f6b7213de59..66126b691f4 100644 --- a/csharp/.config/dotnet-tools.json +++ b/csharp/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "paket": { - "version": "9.0.2", + "version": "10.0.0-alpha011", "commands": [ "paket" ] diff --git a/csharp/paket.dependencies b/csharp/paket.dependencies index 336a61e40e0..610614cd564 100644 --- a/csharp/paket.dependencies +++ b/csharp/paket.dependencies @@ -1,4 +1,4 @@ -framework: net9.0 +framework: net10.0 storage: none source https://api.nuget.org/v3/index.json # behave like nuget in choosing transitive dependency versions diff --git a/csharp/paket.lock b/csharp/paket.lock index 7e5b0d5bc94..aa3b6bf5743 100644 --- a/csharp/paket.lock +++ b/csharp/paket.lock @@ -1,6 +1,6 @@ STORAGE: NONE STRATEGY: MAX -RESTRICTION: == net9.0 +RESTRICTION: == net10.0 NUGET remote: https://api.nuget.org/v3/index.json Basic.CompilerLog.Util (0.9.21) @@ -12,15 +12,15 @@ NUGET Microsoft.Extensions.ObjectPool (>= 9.0.10) MSBuild.StructuredLogger (>= 2.3.71) NaturalSort.Extension (>= 4.4) - Humanizer.Core (2.14.1) + Humanizer.Core (3.0.1) MessagePack (3.1.4) MessagePack.Annotations (>= 3.1.4) MessagePackAnalyzer (>= 3.1.4) Microsoft.NET.StringTools (>= 17.11.4) MessagePack.Annotations (3.1.4) MessagePackAnalyzer (3.1.4) - Microsoft.Bcl.AsyncInterfaces (9.0.10) - Microsoft.Bcl.Memory (9.0.10) + Microsoft.Bcl.AsyncInterfaces (10.0) + Microsoft.Bcl.Memory (10.0) Microsoft.Build (17.14.28) Microsoft.Build.Framework (>= 17.14.28) Microsoft.NET.StringTools (>= 17.14.28) @@ -28,14 +28,13 @@ NUGET System.Diagnostics.EventLog (>= 9.0) System.Reflection.MetadataLoadContext (>= 9.0) System.Security.Cryptography.ProtectedData (>= 9.0) - Microsoft.Build.Framework (17.14.28) - Microsoft.Build.Utilities.Core (17.14.28) - Microsoft.Build.Framework (>= 17.14.28) - Microsoft.NET.StringTools (>= 17.14.28) - System.Collections.Immutable (>= 9.0) + Microsoft.Build.Framework (18.0.2) + Microsoft.Build.Utilities.Core (18.0.2) + Microsoft.Build.Framework (>= 18.0.2) + Microsoft.NET.StringTools (>= 18.0.2) System.Configuration.ConfigurationManager (>= 9.0) System.Diagnostics.EventLog (>= 9.0) - System.Security.Cryptography.ProtectedData (>= 9.0) + System.Security.Cryptography.ProtectedData (>= 9.0.6) Microsoft.CodeAnalysis (4.14) Humanizer.Core (>= 2.14.1) Microsoft.Bcl.AsyncInterfaces (>= 9.0) @@ -99,53 +98,53 @@ NUGET System.IO.Pipelines (>= 9.0) System.Reflection.Metadata (>= 9.0) System.Threading.Channels (>= 7.0) - Microsoft.CodeCoverage (18.0) - Microsoft.Extensions.ObjectPool (9.0.10) - Microsoft.NET.StringTools (17.14.28) - Microsoft.NET.Test.Sdk (18.0) - Microsoft.CodeCoverage (>= 18.0) - Microsoft.TestPlatform.TestHost (>= 18.0) + Microsoft.CodeCoverage (18.0.1) + Microsoft.Extensions.ObjectPool (10.0) + Microsoft.NET.StringTools (18.0.2) + Microsoft.NET.Test.Sdk (18.0.1) + Microsoft.CodeCoverage (>= 18.0.1) + Microsoft.TestPlatform.TestHost (>= 18.0.1) Microsoft.NETCore.Platforms (7.0.4) Microsoft.NETCore.Targets (5.0) - Microsoft.TestPlatform.ObjectModel (18.0) + Microsoft.TestPlatform.ObjectModel (18.0.1) System.Reflection.Metadata (>= 8.0) - Microsoft.TestPlatform.TestHost (18.0) - Microsoft.TestPlatform.ObjectModel (>= 18.0) + Microsoft.TestPlatform.TestHost (18.0.1) + Microsoft.TestPlatform.ObjectModel (>= 18.0.1) Newtonsoft.Json (>= 13.0.3) Microsoft.Win32.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.3.71) + MSBuild.StructuredLogger (2.3.113) Microsoft.Build.Framework (>= 17.5) Microsoft.Build.Utilities.Core (>= 17.5) System.Collections.Immutable (>= 8.0) - NaturalSort.Extension (4.4) + NaturalSort.Extension (4.4.1) Newtonsoft.Json (13.0.4) NuGet.Versioning (7.0.1) System.Buffers (4.6.1) - System.Collections.Immutable (9.0.10) - System.Composition (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Convention (>= 9.0.10) - System.Composition.Hosting (>= 9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Composition.TypedParts (>= 9.0.10) - System.Composition.AttributedModel (9.0.10) - System.Composition.Convention (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Hosting (9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Composition.Runtime (9.0.10) - System.Composition.TypedParts (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Hosting (>= 9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Configuration.ConfigurationManager (9.0.10) - System.Diagnostics.EventLog (>= 9.0.10) - System.Security.Cryptography.ProtectedData (>= 9.0.10) - System.Diagnostics.EventLog (9.0.10) + System.Collections.Immutable (10.0) + System.Composition (10.0) + System.Composition.AttributedModel (>= 10.0) + System.Composition.Convention (>= 10.0) + System.Composition.Hosting (>= 10.0) + System.Composition.Runtime (>= 10.0) + System.Composition.TypedParts (>= 10.0) + System.Composition.AttributedModel (10.0) + System.Composition.Convention (10.0) + System.Composition.AttributedModel (>= 10.0) + System.Composition.Hosting (10.0) + System.Composition.Runtime (>= 10.0) + System.Composition.Runtime (10.0) + System.Composition.TypedParts (10.0) + System.Composition.AttributedModel (>= 10.0) + System.Composition.Hosting (>= 10.0) + System.Composition.Runtime (>= 10.0) + System.Configuration.ConfigurationManager (10.0) + System.Diagnostics.EventLog (>= 10.0) + System.Security.Cryptography.ProtectedData (>= 10.0) + System.Diagnostics.EventLog (10.0) System.IO (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -163,7 +162,7 @@ NUGET System.Threading.Tasks (>= 4.3) System.IO.FileSystem.Primitives (4.3) System.Runtime (>= 4.3) - System.IO.Pipelines (9.0.10) + System.IO.Pipelines (10.0) System.Memory (4.6.3) System.Net.Primitives (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) @@ -171,8 +170,8 @@ NUGET System.Runtime (>= 4.3.1) System.Runtime.Handles (>= 4.3) System.Numerics.Vectors (4.6.1) - System.Reflection.Metadata (9.0.10) - System.Reflection.MetadataLoadContext (9.0.10) + System.Reflection.Metadata (10.0) + System.Reflection.MetadataLoadContext (10.0) System.Runtime (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) @@ -181,15 +180,15 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Security.Cryptography.ProtectedData (9.0.10) + System.Security.Cryptography.ProtectedData (10.0) System.Security.Principal (4.3) System.Runtime (>= 4.3) System.Text.Encoding (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (9.0.10) - System.Threading.Channels (9.0.10) + System.Text.Encoding.CodePages (10.0) + System.Threading.Channels (10.0) System.Threading.Tasks (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -203,7 +202,7 @@ NUGET xunit.assert (>= 2.9.3) xunit.core (2.9.3) xunit.abstractions (2.0.3) - xunit.analyzers (1.24) + xunit.analyzers (1.26) xunit.assert (2.9.3) xunit.core (2.9.3) xunit.extensibility.core (2.9.3) diff --git a/csharp/paket.main.bzl b/csharp/paket.main.bzl index 0778182f8b9..5dd73c5d9ba 100644 --- a/csharp/paket.main.bzl +++ b/csharp/paket.main.bzl @@ -7,76 +7,76 @@ def main(): nuget_repo( name = "paket.main", packages = [ - {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.21", "sha512": "sha512-l+Qbzh3nVaLLwZYgv/v5zIEdprseLgxcprHBvbNBzOyer7m6XD/N5GJC+FPChnSP48kK1/p7Nj7mvQH8d5NOtA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Humanizer.Core", "id": "Humanizer.Core", "version": "2.14.1", "sha512": "sha512-yzqGU/HKNLZ9Uvr6kvSc3wYV/S5O/IvklIUW5WF7MuivGLY8wS5IZnLPkt7D1KW8Et2Enl0I3Lzg2vGWM24Xsw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "9.0.10", "sha512": "sha512-Di823U3L+0A2YQGU1HqJC7Gh8o/nuSXle5u6QDgho9s920QbVk6BS5fKJ0s+pzW+WbqM9+aPUQ2DJsfP6tLdKg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "9.0.10", "sha512": "sha512-BZV+TVnrDf9O+Ak5gN47uOkECCtpiVq6MpEYX5lQcG1WFD6/Bnx5eyfueX9giDQPEk6azzhSPTGmJcWNXRBc+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "17.14.28", "sha512": "sha512-/J3DY36eYjSi/NYf/m4fS4HlxN8Zy+bCsopJUN0j4NNnrws4NR9ueWd0HKyhWEYYUa29Q1kjG1uKSGN1jBWg4g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "17.14.28", "sha512": "sha512-Gj4C8LNilfH6u6xu7QI/y0tkJCp3yQQpde/3qeK8E2FOfrZ4ENOoG/r2eKZws15bN6HPj09PhaJoqBhdbJdLpA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "17.14.28", "sha512": "sha512-A5uyO5HysGJRFR3IjjVKJ0Y69USn3E5Vlt/h51yID5Ynts4zHdh5ZELeU1gCoeF8i3tE21gO2u+QQLqQlb/iUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net462": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net47": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net471": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "4.14.0", "sha512": "sha512-eNBbL927Lc1Nh24ElWJmlGA928O9tu4mgWGOqmMFe6sskqQWCdnronCrrzwUdhBsBIjfx898MOCMOXuZQMtqOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.11.0", "sha512": "sha512-tP9SLzLK72XCExlh8KXfrKbU6ycmZL3ExGl/a3Ml7LNy2Uaam7gFjjUmdzyTYkMXTyckCHHpzx7bD6BMumh8Bg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.14.0", "sha512": "sha512-k9AIzOrtcZVqr9+lmcEW0vY80emyXx5JB/757K0HUF96GeUeiTD+djOlFF2y7k4XPZo20Lru4tDgQos+VKBr0w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.14.0", "sha512": "sha512-kqS2NihVvNQHxzLePtyYiiJmFzoYO9Wm46O9DhfUgIIf5NwTbvSy66kV9EM+qAHmGpi7zQy4w8JU6DFnPlAyTA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "4.14.0", "sha512": "sha512-q9VD/wqMEGW0S5WIKuTZ4Wr9EpsZJQrQxqCodxjlsfW0bWl7mOQ4zA7k0Nf80ZrEe7Edaz6+3SBvrALiUcaHzA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "4.14.0", "sha512": "sha512-vXhNyQk07THoSHzsu/fM48tFFHYAZQumfT7uDJuL/5ZO4CRgJK9Zr6UOJOwX1Df8N//lRMeymYyT+qiAmnWiYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "4.14.0", "sha512": "sha512-LZMVjjbRTcKOtgVDz/sZn+AXBNGL4iKYnWwu5eOvvRcdXaLNlOA7bYtTZOnSMlqig7b/3gMzkoaLqcJ+7hgddg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "4.14.0", "sha512": "sha512-m/c+FWBNr/JgCYRJ/jh14U9oAtPxHTgDiujb+19QG1AA3KMNZed+UQ51PRSaOt9CbIoMubZp2AkUMSeioz4EHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.0", "sha512": "sha512-HT0zpIWW9Q0Csllqo7lefZ27HE6dl5gfh7NA4FPZjEURenH2GsvpRSZ63b1d3klDphxiX8bpxKwVSzyURhhgkQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "9.0.10", "sha512": "sha512-mx7sdMdkCBJuJQkSEaV9wQaB39+ciVUX0VCB7YrqAGvxyBkLRR0mgl9v7j4c6lVMeRZH79FgKOy1WaQbSyhVKA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "17.14.28", "sha512": "sha512-oJDGPNoVuWOmKTPpFK0lJnVwbLMRsm2oxgxBFOMKBYzSZtmiS0kcoednhArAeAicV2aSUFiuor1pw7JK/p2LwQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.0", "sha512": "sha512-+0iHCuP77nxZLLfEhCNDMOcy8+qC7IFtsLrSwSzp0qc7pUs2J28Stu2c+m9AEKkKdvhsMKB/AhlFOSyeOpdKVg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NETCore.Platforms", "id": "Microsoft.NETCore.Platforms", "version": "7.0.4", "sha512": "sha512-mcQWjuDBh4WHGG4WcBI0k025WAdA2afMm6fs42sm1f+3gRyNQUiuMVT5gAWNUGSHmlu6qn/TCnAQpfl4Gm6cBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NETCore.Targets", "id": "Microsoft.NETCore.Targets", "version": "5.0.0", "sha512": "sha512-hYHm3JAjQO/nySxcl1EpZhYEW+2P3H1eLZNr+QxgO5TnLS6hqtfi5WchjQzjid45MYmhy2X7IOmcWtDP4fpMGw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.0", "sha512": "sha512-/ShCZQuIxaxzGjRQqCYTLD/KnG1yQKsNZXDUtjO2d55IOB8FEyhXleLw2hw8QlK/1gkblyJsp4BfQ8BQFaEAlg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.0", "sha512": "sha512-9IZUooXUUnh+z04QtWCu5iku4D4FAfJajP1su+I6741AxXa0bnXPo2125vqjvK0Khfsk16zskgDpG6vf2Mjubg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Win32.Primitives", "id": "Microsoft.Win32.Primitives", "version": "4.3.0", "sha512": "sha512-Nm8Hp51y9tYcK3xD6qk43Wjftrg1mdH24CCJsTb6gr7HS21U1uA+CKPGEtUcVZbjU1y8Kynzm5eoJ7Pnx5gm8A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.71", "sha512": "sha512-u2Tw1WLYy+2VdccrQWyN3AY8zcFj4evfwqWMd7aBiicX3eGfkWkME7lsh9K2XS/+S8KVkjGNPI/g78E2A7Zx0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.0", "sha512": "sha512-lcwYGJO2xZylcLW6B64tp6wE9UAt6fSn6el8MSAly5+6QG1vc/9uXQz+dsi69q1DxFv2TOaWrrheHNzg4yvy3Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Newtonsoft.Json", "id": "Newtonsoft.Json", "version": "13.0.4", "sha512": "sha512-bR+v+E/yJ6g7GV2uXw2OrUSjYYfjLkOLC8JD4kCS23msLapnKtdJPBJA75fwHH++ErIffeIqzYITLxAur4KAXA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "NuGet.Versioning", "id": "NuGet.Versioning", "version": "7.0.1", "sha512": "sha512-ibGcrpgA8foidKNcnf+AQ4zEaVZu4OyWjcPITii6mNgwt2uhd8VFsEq7/Mb0KDxrEJaew+nWJQb7Ju166SAyzw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Buffers", "id": "System.Buffers", "version": "4.6.1", "sha512": "sha512-qve/dFwECwehSWlZmpkrrlIeATCvo/Hw2koyMrUVcDBy5gXAQrnwX8pHEoqgj8DgkrWuWW1DrQbFqoMbo+Fvrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "9.0.10", "sha512": "sha512-00LI4a7blU063Z0lCdRVLlh0Mzl1yYLZaxlOZe0MiNH+TELklX0Mne/XKU7UuCZQQh6FHrcEUPDjxIsy2jZUxg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition", "id": "System.Composition", "version": "9.0.10", "sha512": "sha512-PyUH0f6tdjlQBntP/73cqaR53fjAZkaqGRatIi1BgZIfQH/Z0k1rPHaklBZqFV5+wKUkL74+49TrFPnB/zw+2Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "9.0.10", "sha512": "sha512-9Gx8SRD1DJcQLca7ZaeMjU+qUd4EdxDj6urKR4TizWx+NM7L+beoAn07XCKkdJsweqF6gUK7el93DhUbpssSqA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "9.0.10", "sha512": "sha512-hzvwytBYpKoDX+OJpHXKoupR+BYy+QCUY5vSWOTvJLagAm3zYJKxAUR3l8OyPy46tnQ+3lK/6f5DeLHiTfbIIw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "9.0.10", "sha512": "sha512-fPTM06IdvHrFIRJyYEpVKl5W7UTT4U3E+iiAVg3DFfuQ4Abe4XVhkoHn3DB4pUTOU2RpVc2+PxQ6y9hULPta1A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "9.0.10", "sha512": "sha512-8iDtNLXkjiFwir6Ocrm4XCC19Jzj06OHTvDeL6BZ4guWhCCGRCl6nWJVPonq6G2kZmNiDfraOwC8RgV5qPAAjg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "9.0.10", "sha512": "sha512-7OUDlDYszrhjJ8/r5na3N07XzBWl8e6/87dyGoDraDHlkl+APL4dbZ8TfniaXLJxZabDHVaaMLpViiIf+Fb9Ng==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "9.0.10", "sha512": "sha512-/LM2cc6vZulHDcDsd+9vntVD9j953k8WCCzB4Fea6YxOoIexpGP8iJhC7v13hKN5V66MDprjCJRjHHhDaDuOXw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "9.0.10", "sha512": "sha512-3rC2TD7/ikgwu5Z7BzViMVDDp7RGyaej8pvVDzhy6rI7QZ9+x6DPiOPD5y4FjePxTLh/rFjMNcP7nG9IHWsB2Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO", "id": "System.IO", "version": "4.3.0", "sha512": "sha512-v8paIePhmGuXZbE9xvvNb4uJ5ME4OFXR1+8la/G/L1GIl2nbU2WFnddgb79kVK3U2us7q1aZT/uY/R0D/ovB5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.FileSystem", "id": "System.IO.FileSystem", "version": "4.3.0", "sha512": "sha512-T7WB1vhblSmgkaDpdGM3Uqo55Qsr5sip5eyowrwiXOoHBkzOx3ePd9+Zh97r9NzOwFCxqX7awO6RBxQuao7n7g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": ["System.IO.FileSystem.Primitives"], "net461": ["System.IO.FileSystem.Primitives"], "net462": ["System.IO.FileSystem.Primitives"], "net47": ["System.IO.FileSystem.Primitives"], "net471": ["System.IO.FileSystem.Primitives"], "net472": ["System.IO.FileSystem.Primitives"], "net48": ["System.IO.FileSystem.Primitives"], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.FileSystem.Primitives", "id": "System.IO.FileSystem.Primitives", "version": "4.3.0", "sha512": "sha512-WIWVPQlYLP/Zc9I6IakpBk1y8ryVGK83MtZx//zGKKi2hvHQWKAB7moRQCOz5Is/wNDksiYpocf3FeA3le6e5Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "9.0.10", "sha512": "sha512-kQg8x+mbt8Xi1mwm32DVEz6DtfqKn9XUGziGQvdNJ2QEGWvufcZfRWtxAf9nB+/B1FT1x7W4Wh2Fr9lcKlVWPA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Net.Primitives", "id": "System.Net.Primitives", "version": "4.3.1", "sha512": "sha512-BgdlyYCI7rrdh36p3lMTqbkvaafPETpB1bk9iQlFdQxYE692kiXvmseXs8ghL+gEgQF2xgDc8GH4QLkSgUUs+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "9.0.10", "sha512": "sha512-3ZztNrfQJww1qZ9UgdB5aTAYlAIWd5dMyyBagAC8jth6iG5vxawtaGbZJMh4xkL9A5v6Ng48YL+hAjt08GBWKQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Memory"], "net8.0": ["System.Collections.Immutable"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "9.0.10", "sha512": "sha512-qf9IjoUO2XfK4BTPhCIFDYAsiWtFCTpyiklmxoNK2Ys1wZdoVe5C3j5BH2ajSDWy2mAQcN1n+Eh/3uhd3oUcEA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime", "id": "System.Runtime", "version": "4.3.1", "sha512": "sha512-Al69mPDfzdD+bKGK2HAfB+lNFOHFqnkqzNnUJmmvUe1/qEPK9M7EiTT4zuycKDPy7ev11xz8XVgJWKP0hm7NIA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime.Handles", "id": "System.Runtime.Handles", "version": "4.3.0", "sha512": "sha512-CluvHdVUv54BvLTOCCyybugreDNk/rR8unMPruzXDtxSjvrQOU3M4R831/lQf4YI8VYp668FGQa/01E+Rq8PEQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "9.0.10", "sha512": "sha512-yR8dvnme5ndA3L6Q6F/2N+4QBCi8sdfGWg9lmRVNBZO+evqIt323UdXMu8b8MnMYoyxXaml+vTEl74t5Nu7ABQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Security.Principal", "id": "System.Security.Principal", "version": "4.3.0", "sha512": "sha512-24oe0NGJY32e+DFHVQzl2okM9uwYmn0Aa6nehqtVZ55/Al4Yva7S3BN934Kn5qATH7TVTUJkgxhisdfF7mKDfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": ["System.Runtime"], "netstandard1.1": ["System.Runtime"], "netstandard1.2": ["System.Runtime"], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Text.Encoding", "id": "System.Text.Encoding", "version": "4.3.0", "sha512": "sha512-b/f+7HMTpxIfeV7H03bkuHKMFylCGfr9/U6gePnfFFW0aF8LOWLDgQCY6V1oWUqDksC3mdNuyChM1vy9TP4sZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "9.0.10", "sha512": "sha512-LPoLnlvwb3D12yjwva2nvfzDqm4XNUBrAf/zQ5ad2IOqhTWqRm4GIXxlH4lSr3W/ET31aLtM4C4vHbr8sGEzWA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "9.0.10", "sha512": "sha512-wMh3VX2qbwFg8rZllC1QsiXl4NjLkamNVT+O6bJG5V3sN6cwRZRza2v7f2ohFNGdGlViwUAO/PKSZgJfuJNXTg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Tasks", "id": "System.Threading.Tasks", "version": "4.3.0", "sha512": "sha512-fUiP+CyyCjs872OA8trl6p97qma/da1xGq3h4zAbJZk8zyaU4zyEfqW5vbkP80xG/Nimun1vlWBboMEk7XxdEw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.ThreadPool", "id": "System.Threading.ThreadPool", "version": "4.3.0", "sha512": "sha512-RQpA+UpI6Tlpeedk5JStYk2DM/M3i5HqabI/yDbfj1xDu9bIz9kdoquVpHbh/wQjOJaOCbcgRH8iQcAUv8dRWQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime", "System.Runtime.Handles"], "net6.0": ["System.Runtime", "System.Runtime.Handles"], "net7.0": ["System.Runtime", "System.Runtime.Handles"], "net8.0": ["System.Runtime", "System.Runtime.Handles"], "net9.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.analyzers", "id": "xunit.analyzers", "version": "1.24.0", "sha512": "sha512-LiogS9RX6I4MHFN8V3dNgEQ4QJrtvtKq49h9k5NAOvmwcrbR1IeNMZvyuez3YITKAeF+ka9yVG3+OH6vApPB/A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.assert", "id": "xunit.assert", "version": "2.9.3", "sha512": "sha512-wfqwCKAhSWGy9P/dPqDGSIBnPW3sUJ49MEfcTqNF+5BgJwjwtHb9SE7ajYZuR8ymTd8dwxoEGnlJHiejbgDv9w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.core", "id": "xunit.core", "version": "2.9.3", "sha512": "sha512-cv2sO37qJkIbBL3fXDIn3EPQ2zK8LQ6FkMJNnn1xc9n8mo3ik0URA4MfUNCmwDDCx83ZiJeRrJ0y1ykasojNJg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net20": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net30": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net35": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net40": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net403": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net45": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net451": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net452": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net46": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net461": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net462": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net47": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net471": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net472": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net48": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net5.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net6.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net7.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net8.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net9.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.3": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.4": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.5": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.6": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.extensibility.core", "id": "xunit.extensibility.core", "version": "2.9.3", "sha512": "sha512-S0a+jmIF/DraKuJ+FfWbqXMwvpcKxjP3GdrQzz5pr3GYtgII2XfDdAhkU/5VIWqWon2R6Q31X/9sTGaU+koDaQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.extensibility.execution", "id": "xunit.extensibility.execution", "version": "2.9.3", "sha512": "sha512-IidoBSrGw/KhWzZsKXIcStohj/oRFZizbWeUv+0hOFLeMJMegSW5QoGNzmjQuF8BuRtCyPQQukWSYdNnnfPAkA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.extensibility.core"], "net451": ["xunit.extensibility.core"], "net452": ["xunit.extensibility.core"], "net46": ["xunit.extensibility.core"], "net461": ["xunit.extensibility.core"], "net462": ["xunit.extensibility.core"], "net47": ["xunit.extensibility.core"], "net471": ["xunit.extensibility.core"], "net472": ["xunit.extensibility.core"], "net48": ["xunit.extensibility.core"], "net5.0": ["xunit.extensibility.core"], "net6.0": ["xunit.extensibility.core"], "net7.0": ["xunit.extensibility.core"], "net8.0": ["xunit.extensibility.core"], "net9.0": ["xunit.extensibility.core"], "netcoreapp1.0": ["xunit.extensibility.core"], "netcoreapp1.1": ["xunit.extensibility.core"], "netcoreapp2.0": ["xunit.extensibility.core"], "netcoreapp2.1": ["xunit.extensibility.core"], "netcoreapp2.2": ["xunit.extensibility.core"], "netcoreapp3.0": ["xunit.extensibility.core"], "netcoreapp3.1": ["xunit.extensibility.core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.extensibility.core"], "netstandard1.2": ["xunit.extensibility.core"], "netstandard1.3": ["xunit.extensibility.core"], "netstandard1.4": ["xunit.extensibility.core"], "netstandard1.5": ["xunit.extensibility.core"], "netstandard1.6": ["xunit.extensibility.core"], "netstandard2.0": ["xunit.extensibility.core"], "netstandard2.1": ["xunit.extensibility.core"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.runner.utility", "id": "xunit.runner.utility", "version": "2.9.3", "sha512": "sha512-L2zlPa7Ci/Awf5LdeTOvKOanev1bB6xV2Gxbrc+EDDN1hO/j0AIbu5PM8lXgkX69/8xaaex7zrxHZd8gcz2ilQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": ["xunit.abstractions"], "net40": ["xunit.abstractions"], "net403": ["xunit.abstractions"], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.runner.visualstudio", "id": "xunit.runner.visualstudio", "version": "3.1.5", "sha512": "sha512-b/tvN9kXtUd3wSSYbC80Ic6y/dYlYbNSvatYiv71iozPhXqM4EaOuHujkIJh85b+wY6dgf25k9ENSy8jN6mlvQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.TestPlatform.ObjectModel"], "net48": ["Microsoft.TestPlatform.ObjectModel"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, + {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.21", "sha512": "sha512-l+Qbzh3nVaLLwZYgv/v5zIEdprseLgxcprHBvbNBzOyer7m6XD/N5GJC+FPChnSP48kK1/p7Nj7mvQH8d5NOtA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Humanizer.Core", "id": "Humanizer.Core", "version": "3.0.1", "sha512": "sha512-lcQ2HfNqHljfbalRLMKc8j4M0Og3qIvMSeyLp7KY58aCcgcZwiR0s5Uf2vrJ3p7OFGoWjcgbWATTpxqzrbuBSw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "10.0.0", "sha512": "sha512-3HqmWl57VHdP18TtKeRpM62/ACKgg58AEX9j1Zof+HA879/aGJ6s0WgngeLTEzlUAB9tRxm3kGfkIDJRV168BQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "10.0.0", "sha512": "sha512-gP4skrltie3xbrXIKZ0j8gnnT+MoslGYsC2Eqi3Ap9g3QSnu1KYp92d96cZZQ31VfvI1AYx/rEmSfCU2K6R2zg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "17.14.28", "sha512": "sha512-/J3DY36eYjSi/NYf/m4fS4HlxN8Zy+bCsopJUN0j4NNnrws4NR9ueWd0HKyhWEYYUa29Q1kjG1uKSGN1jBWg4g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "18.0.2", "sha512": "sha512-cmXoGncAIrDZgu0NumtXJSTILv9NHU2sPhrlkckefMK1XCuJUrvClVxkmvQDpvm4sCKwSFolW2AanGCLNJ6xDw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "18.0.2", "sha512": "sha512-4f5DSPN/nLyGddOx2Etrjy42XFQ9tWeJ8lwJr/tLloRl/YRzT1kV+1txwRFXlav9V93wMOUrwMQqpnd131Sb+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework"], "net462": ["Microsoft.Build.Framework"], "net47": ["Microsoft.Build.Framework"], "net471": ["Microsoft.Build.Framework"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework"], "net6.0": ["Microsoft.Build.Framework"], "net7.0": ["Microsoft.Build.Framework"], "net8.0": ["Microsoft.Build.Framework"], "net9.0": ["Microsoft.Build.Framework"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework"], "netcoreapp2.1": ["Microsoft.Build.Framework"], "netcoreapp2.2": ["Microsoft.Build.Framework"], "netcoreapp3.0": ["Microsoft.Build.Framework"], "netcoreapp3.1": ["Microsoft.Build.Framework"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework"], "netstandard2.1": ["Microsoft.Build.Framework"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "4.14.0", "sha512": "sha512-eNBbL927Lc1Nh24ElWJmlGA928O9tu4mgWGOqmMFe6sskqQWCdnronCrrzwUdhBsBIjfx898MOCMOXuZQMtqOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.11.0", "sha512": "sha512-tP9SLzLK72XCExlh8KXfrKbU6ycmZL3ExGl/a3Ml7LNy2Uaam7gFjjUmdzyTYkMXTyckCHHpzx7bD6BMumh8Bg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.14.0", "sha512": "sha512-k9AIzOrtcZVqr9+lmcEW0vY80emyXx5JB/757K0HUF96GeUeiTD+djOlFF2y7k4XPZo20Lru4tDgQos+VKBr0w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.14.0", "sha512": "sha512-kqS2NihVvNQHxzLePtyYiiJmFzoYO9Wm46O9DhfUgIIf5NwTbvSy66kV9EM+qAHmGpi7zQy4w8JU6DFnPlAyTA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "4.14.0", "sha512": "sha512-q9VD/wqMEGW0S5WIKuTZ4Wr9EpsZJQrQxqCodxjlsfW0bWl7mOQ4zA7k0Nf80ZrEe7Edaz6+3SBvrALiUcaHzA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "4.14.0", "sha512": "sha512-vXhNyQk07THoSHzsu/fM48tFFHYAZQumfT7uDJuL/5ZO4CRgJK9Zr6UOJOwX1Df8N//lRMeymYyT+qiAmnWiYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "4.14.0", "sha512": "sha512-LZMVjjbRTcKOtgVDz/sZn+AXBNGL4iKYnWwu5eOvvRcdXaLNlOA7bYtTZOnSMlqig7b/3gMzkoaLqcJ+7hgddg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "4.14.0", "sha512": "sha512-m/c+FWBNr/JgCYRJ/jh14U9oAtPxHTgDiujb+19QG1AA3KMNZed+UQ51PRSaOt9CbIoMubZp2AkUMSeioz4EHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.1", "sha512": "sha512-0bzrz+vR49E/jtdBySXaJSPP4plwnMHE2qsyJZgZJuDdIOtLUFswInVa7krxIVz2ur6KJZFdTPXr3WMXfgnDNg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.0", "sha512": "sha512-c9pc0Jh0Sm3hl+y5qTwyJ1weldQt3C73SwPFhalL4gTWGxQGo5XFGVvy5nNqsOH5tXYePwcjuCEoJXi/nI6nYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "18.0.2", "sha512": "sha512-s9BywFgRKhPV5OyY2t2EMQXfoDrvYSEzX4bHaWkZ/PwYJnxbxmLEqA/dh8MQ2mUOq48sGr3hbkgnghZQHeZc7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.1", "sha512": "sha512-cfpn4IW0Q+emID8eUocS7xfmwwYgD/JX5S+zCZA2l7gcYzxZ1vvfcdZHcKkuzCH4gMbBYqcZqtBn9uZa0WJRUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NETCore.Platforms", "id": "Microsoft.NETCore.Platforms", "version": "7.0.4", "sha512": "sha512-mcQWjuDBh4WHGG4WcBI0k025WAdA2afMm6fs42sm1f+3gRyNQUiuMVT5gAWNUGSHmlu6qn/TCnAQpfl4Gm6cBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NETCore.Targets", "id": "Microsoft.NETCore.Targets", "version": "5.0.0", "sha512": "sha512-hYHm3JAjQO/nySxcl1EpZhYEW+2P3H1eLZNr+QxgO5TnLS6hqtfi5WchjQzjid45MYmhy2X7IOmcWtDP4fpMGw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.1", "sha512": "sha512-qZKcsS5mN7GMwtpd+tRfAt4Dmg8yVbtWkm9iGfqY2GNOG2qW95NH6zf/FrTLXTiS7rB7zqihWGEcSspOaSK8TQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.1", "sha512": "sha512-SX1FnYA8zcNv/lbWK3GjLnAx93jalmyHyQMVi+TNWA61R6xzkLMNpC3fotbfpDheXCFhwy/1rKoULyaOOe0jEg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Win32.Primitives", "id": "Microsoft.Win32.Primitives", "version": "4.3.0", "sha512": "sha512-Nm8Hp51y9tYcK3xD6qk43Wjftrg1mdH24CCJsTb6gr7HS21U1uA+CKPGEtUcVZbjU1y8Kynzm5eoJ7Pnx5gm8A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.113", "sha512": "sha512-FS/vecrCK5mq3v4OIyd90BU6x9clwoRzW6LiIfilSQZQBYp/E9/+G9LS2Q9nB1rHEhJ8kDWnsZdytEIsNAb4Jw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.1", "sha512": "sha512-UTrcQcgmn7pBdx+0Oi/NxlyPslWbMt7U8I1sg/4m36OkOCS+7QKZWY3O4dKcjHD2wQaBr9L2/XWnx3ViTaehZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Newtonsoft.Json", "id": "Newtonsoft.Json", "version": "13.0.4", "sha512": "sha512-bR+v+E/yJ6g7GV2uXw2OrUSjYYfjLkOLC8JD4kCS23msLapnKtdJPBJA75fwHH++ErIffeIqzYITLxAur4KAXA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "NuGet.Versioning", "id": "NuGet.Versioning", "version": "7.0.1", "sha512": "sha512-ibGcrpgA8foidKNcnf+AQ4zEaVZu4OyWjcPITii6mNgwt2uhd8VFsEq7/Mb0KDxrEJaew+nWJQb7Ju166SAyzw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Buffers", "id": "System.Buffers", "version": "4.6.1", "sha512": "sha512-qve/dFwECwehSWlZmpkrrlIeATCvo/Hw2koyMrUVcDBy5gXAQrnwX8pHEoqgj8DgkrWuWW1DrQbFqoMbo+Fvrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "10.0.0", "sha512": "sha512-X8f2K6WYvpYzbYT4QLhZfzEXLp8RG7VYKRpFQtcrOcBnfA5ifRxwTN3G2EE6N7MwdNfH8ygbmtB18ql62Uzqjw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition", "id": "System.Composition", "version": "10.0.0", "sha512": "sha512-H9t7Q6f4JGhLrsc1oEcGZw67YqJKyRDqptuXkop09EW7TEuyhN+YTlKGREF2V7b/Ea4mqJLjcuT9gQBTSnQC0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "10.0.0", "sha512": "sha512-4NLPtVh/LQYIhOV+2/+me510VExg+pCRclLlYHSF77QpjV0uvZcXTICcCoKUMfqUeWFqk0tXqXpv9mBNTzdGug==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "10.0.0", "sha512": "sha512-9ufTkv7jkezJiHJjRW7T9HBrL04JRAH2s6l7YBPFmm8t7WVTR9ZxKndEUdy+shk5R8ldKTuIclQPkd6yOKNBdw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "10.0.0", "sha512": "sha512-dUSww1dWPykYinDRV1zhLbYhEykPBijsF+N/MvOOeT7o9ZpZUtjuOzPyQ/Tt4GYju30qBbfZQSd8N/mON/uWMQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "10.0.0", "sha512": "sha512-aI6VwYsLL96Az4sum1F2jf8Zqao+cpDwMEwz8gcIbk5Bzqpt3GDaxixiVhSrfbpGgvrlfQibSZJskevDKOkpVA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "10.0.0", "sha512": "sha512-maWE8bEZMVv84NU1XEfwrdARVNG/n4Xreg8uYN4+R0j/NR70wzSmjV+i1XXSRC+N96gqLwvBa+jVbeFRY4asPw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "10.0.0", "sha512": "sha512-siDQPzzFWSwUHLz/eNsgWkQKTZSVHcDybHGY0OvvAEe3GaHWfjIDbtnqzSjxUxAfKWmmPaAqubv3p1TF9RCfRg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "10.0.0", "sha512": "sha512-MW9Vd1l580ev4JdChWxxOS9llYO3U79gHvcFu5YiDcDMDJhiqHF/GC67teJ1tEDiTyQHUKhSBSijhi/zY4zhuA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO", "id": "System.IO", "version": "4.3.0", "sha512": "sha512-v8paIePhmGuXZbE9xvvNb4uJ5ME4OFXR1+8la/G/L1GIl2nbU2WFnddgb79kVK3U2us7q1aZT/uY/R0D/ovB5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO.FileSystem", "id": "System.IO.FileSystem", "version": "4.3.0", "sha512": "sha512-T7WB1vhblSmgkaDpdGM3Uqo55Qsr5sip5eyowrwiXOoHBkzOx3ePd9+Zh97r9NzOwFCxqX7awO6RBxQuao7n7g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": ["System.IO.FileSystem.Primitives"], "net461": ["System.IO.FileSystem.Primitives"], "net462": ["System.IO.FileSystem.Primitives"], "net47": ["System.IO.FileSystem.Primitives"], "net471": ["System.IO.FileSystem.Primitives"], "net472": ["System.IO.FileSystem.Primitives"], "net48": ["System.IO.FileSystem.Primitives"], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO.FileSystem.Primitives", "id": "System.IO.FileSystem.Primitives", "version": "4.3.0", "sha512": "sha512-WIWVPQlYLP/Zc9I6IakpBk1y8ryVGK83MtZx//zGKKi2hvHQWKAB7moRQCOz5Is/wNDksiYpocf3FeA3le6e5Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "10.0.0", "sha512": "sha512-u/DHKOwXB6sPdswZln+du+jUpWYkik9bFjT3KinfYey/wKBV845m4Y2ul3HtkEJ2BJJnfTYN556iQ6xc/MEvqg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Net.Primitives", "id": "System.Net.Primitives", "version": "4.3.1", "sha512": "sha512-BgdlyYCI7rrdh36p3lMTqbkvaafPETpB1bk9iQlFdQxYE692kiXvmseXs8ghL+gEgQF2xgDc8GH4QLkSgUUs+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "10.0.0", "sha512": "sha512-se+gXT13zqFct0l43vU8SbjExvQ/4oUD/kyf0OP4dVzxJHQdow49oSVYZ5XlMthXyNTvJ+sdZDBtPoP7yNdKOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable"], "net462": ["System.Collections.Immutable"], "net47": ["System.Collections.Immutable"], "net471": ["System.Collections.Immutable"], "net472": ["System.Collections.Immutable"], "net48": ["System.Collections.Immutable"], "net5.0": ["System.Collections.Immutable"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "net9.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable"], "netcoreapp2.1": ["System.Collections.Immutable"], "netcoreapp2.2": ["System.Collections.Immutable"], "netcoreapp3.0": ["System.Collections.Immutable"], "netcoreapp3.1": ["System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable"], "netstandard2.1": ["System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "10.0.0", "sha512": "sha512-1ZLtiaq0AjW8wkN+DmCLvrNrJRhjNN3RB1s7wSGNEuoqYbG2BiTrOrbvYwxylPJvEyGuKn/nCXs1Z7oEbS5Eew==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Runtime", "id": "System.Runtime", "version": "4.3.1", "sha512": "sha512-Al69mPDfzdD+bKGK2HAfB+lNFOHFqnkqzNnUJmmvUe1/qEPK9M7EiTT4zuycKDPy7ev11xz8XVgJWKP0hm7NIA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Runtime.Handles", "id": "System.Runtime.Handles", "version": "4.3.0", "sha512": "sha512-CluvHdVUv54BvLTOCCyybugreDNk/rR8unMPruzXDtxSjvrQOU3M4R831/lQf4YI8VYp668FGQa/01E+Rq8PEQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "10.0.0", "sha512": "sha512-teHxNzoQmQKZz4y0rF/bdfZbHe7JuLujMDJ0Ec+mhdy9/55AbOnGXqOaQ8nlJVVdSeMw8xOL3LDzAce1qFBeBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Security.Principal", "id": "System.Security.Principal", "version": "4.3.0", "sha512": "sha512-24oe0NGJY32e+DFHVQzl2okM9uwYmn0Aa6nehqtVZ55/Al4Yva7S3BN934Kn5qATH7TVTUJkgxhisdfF7mKDfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": ["System.Runtime"], "netstandard1.1": ["System.Runtime"], "netstandard1.2": ["System.Runtime"], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Text.Encoding", "id": "System.Text.Encoding", "version": "4.3.0", "sha512": "sha512-b/f+7HMTpxIfeV7H03bkuHKMFylCGfr9/U6gePnfFFW0aF8LOWLDgQCY6V1oWUqDksC3mdNuyChM1vy9TP4sZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "10.0.0", "sha512": "sha512-okG5NSnh+Q9OYFrwgx0KAaUKXkBmhhI2fjUjB2K9RPboJcpeAplMR4JqbKGOTjHzAZhx6/b05KV3d4B4g7chfQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "10.0.0", "sha512": "sha512-8eOjQcZanQbdFWIgrf13QPEme7lxkSBucz513v5iEvKZLZEdkNNhHBU21fP2fI02wWGeYTfa+S5eMnTiiDcZQg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Tasks", "id": "System.Threading.Tasks", "version": "4.3.0", "sha512": "sha512-fUiP+CyyCjs872OA8trl6p97qma/da1xGq3h4zAbJZk8zyaU4zyEfqW5vbkP80xG/Nimun1vlWBboMEk7XxdEw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.ThreadPool", "id": "System.Threading.ThreadPool", "version": "4.3.0", "sha512": "sha512-RQpA+UpI6Tlpeedk5JStYk2DM/M3i5HqabI/yDbfj1xDu9bIz9kdoquVpHbh/wQjOJaOCbcgRH8iQcAUv8dRWQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime", "System.Runtime.Handles"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime", "System.Runtime.Handles"], "net6.0": ["System.Runtime", "System.Runtime.Handles"], "net7.0": ["System.Runtime", "System.Runtime.Handles"], "net8.0": ["System.Runtime", "System.Runtime.Handles"], "net9.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.analyzers", "id": "xunit.analyzers", "version": "1.26.0", "sha512": "sha512-gJ6shgzXmTVaWJsRCpWrfp1ymSSIwjandPL5myGv3wt+96TkARHFUV1bAS4omFPPkSLkFV7nOssjCeEIorPE+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.assert", "id": "xunit.assert", "version": "2.9.3", "sha512": "sha512-wfqwCKAhSWGy9P/dPqDGSIBnPW3sUJ49MEfcTqNF+5BgJwjwtHb9SE7ajYZuR8ymTd8dwxoEGnlJHiejbgDv9w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.core", "id": "xunit.core", "version": "2.9.3", "sha512": "sha512-cv2sO37qJkIbBL3fXDIn3EPQ2zK8LQ6FkMJNnn1xc9n8mo3ik0URA4MfUNCmwDDCx83ZiJeRrJ0y1ykasojNJg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net11": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net20": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net30": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net35": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net40": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net403": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net45": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net451": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net452": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net46": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net461": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net462": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net47": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net471": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net472": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net48": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net5.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net6.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net7.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net8.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net9.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.3": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.4": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.5": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.6": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.extensibility.core", "id": "xunit.extensibility.core", "version": "2.9.3", "sha512": "sha512-S0a+jmIF/DraKuJ+FfWbqXMwvpcKxjP3GdrQzz5pr3GYtgII2XfDdAhkU/5VIWqWon2R6Q31X/9sTGaU+koDaQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.abstractions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.extensibility.execution", "id": "xunit.extensibility.execution", "version": "2.9.3", "sha512": "sha512-IidoBSrGw/KhWzZsKXIcStohj/oRFZizbWeUv+0hOFLeMJMegSW5QoGNzmjQuF8BuRtCyPQQukWSYdNnnfPAkA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.extensibility.core"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.extensibility.core"], "net451": ["xunit.extensibility.core"], "net452": ["xunit.extensibility.core"], "net46": ["xunit.extensibility.core"], "net461": ["xunit.extensibility.core"], "net462": ["xunit.extensibility.core"], "net47": ["xunit.extensibility.core"], "net471": ["xunit.extensibility.core"], "net472": ["xunit.extensibility.core"], "net48": ["xunit.extensibility.core"], "net5.0": ["xunit.extensibility.core"], "net6.0": ["xunit.extensibility.core"], "net7.0": ["xunit.extensibility.core"], "net8.0": ["xunit.extensibility.core"], "net9.0": ["xunit.extensibility.core"], "netcoreapp1.0": ["xunit.extensibility.core"], "netcoreapp1.1": ["xunit.extensibility.core"], "netcoreapp2.0": ["xunit.extensibility.core"], "netcoreapp2.1": ["xunit.extensibility.core"], "netcoreapp2.2": ["xunit.extensibility.core"], "netcoreapp3.0": ["xunit.extensibility.core"], "netcoreapp3.1": ["xunit.extensibility.core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.extensibility.core"], "netstandard1.2": ["xunit.extensibility.core"], "netstandard1.3": ["xunit.extensibility.core"], "netstandard1.4": ["xunit.extensibility.core"], "netstandard1.5": ["xunit.extensibility.core"], "netstandard1.6": ["xunit.extensibility.core"], "netstandard2.0": ["xunit.extensibility.core"], "netstandard2.1": ["xunit.extensibility.core"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.runner.utility", "id": "xunit.runner.utility", "version": "2.9.3", "sha512": "sha512-L2zlPa7Ci/Awf5LdeTOvKOanev1bB6xV2Gxbrc+EDDN1hO/j0AIbu5PM8lXgkX69/8xaaex7zrxHZd8gcz2ilQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.abstractions"], "net11": [], "net20": [], "net30": [], "net35": ["xunit.abstractions"], "net40": ["xunit.abstractions"], "net403": ["xunit.abstractions"], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.runner.visualstudio", "id": "xunit.runner.visualstudio", "version": "3.1.5", "sha512": "sha512-b/tvN9kXtUd3wSSYbC80Ic6y/dYlYbNSvatYiv71iozPhXqM4EaOuHujkIJh85b+wY6dgf25k9ENSy8jN6mlvQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.TestPlatform.ObjectModel"], "net48": ["Microsoft.TestPlatform.ObjectModel"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, ], ) From 682195bd57d267fd413fbec576b7ec78889575b9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:38:01 +0100 Subject: [PATCH 075/194] C#: Update workflows. --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/csharp-qltest.yml | 10 +++++----- csharp/actions/create-extractor-pack/action.yml | 2 +- csharp/scripts/create-extractor-pack.sh | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 72bf2052627..64b46b00a22 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -34,7 +34,7 @@ jobs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Checkout repository uses: actions/checkout@v5 diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index 3c73eaec3b6..fc8bc218fe7 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -43,14 +43,14 @@ jobs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Extractor unit tests run: | dotnet tool restore - dotnet test -p:RuntimeFrameworkVersion=9.0.5 extractor/Semmle.Util.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 extractor/Semmle.Extraction.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 autobuilder/Semmle.Autobuild.CSharp.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 autobuilder/Semmle.Autobuild.Cpp.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 extractor/Semmle.Util.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 extractor/Semmle.Extraction.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 autobuilder/Semmle.Autobuild.CSharp.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 autobuilder/Semmle.Autobuild.Cpp.Tests shell: bash stubgentest: runs-on: ubuntu-latest diff --git a/csharp/actions/create-extractor-pack/action.yml b/csharp/actions/create-extractor-pack/action.yml index b6737b45ad6..36f531f1b74 100644 --- a/csharp/actions/create-extractor-pack/action.yml +++ b/csharp/actions/create-extractor-pack/action.yml @@ -7,7 +7,7 @@ runs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Build Extractor shell: bash run: scripts/create-extractor-pack.sh diff --git a/csharp/scripts/create-extractor-pack.sh b/csharp/scripts/create-extractor-pack.sh index a1b5a044ebc..3003dd81172 100755 --- a/csharp/scripts/create-extractor-pack.sh +++ b/csharp/scripts/create-extractor-pack.sh @@ -21,7 +21,7 @@ mkdir -p extractor-pack mkdir -p extractor-pack/tools/${platform} function dotnet_publish { - dotnet publish --self-contained --configuration Release --runtime ${dotnet_platform} -p:RuntimeFrameworkVersion=9.0.5 $1 --output extractor-pack/tools/${platform} + dotnet publish --self-contained --configuration Release --runtime ${dotnet_platform} -p:RuntimeFrameworkVersion=10.0.0 $1 --output extractor-pack/tools/${platform} } dotnet tool restore From 9e395936dc03ff75d927674950aa80aebbd5abc8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:26:18 +0100 Subject: [PATCH 076/194] C#: Update extractor to target .NET 10. --- csharp/Directory.Build.props | 2 +- .../Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs | 2 +- .../Semmle.Extraction.CSharp.DependencyStubGenerator.csproj | 4 ++-- csharp/scripts/gen-assembly-info.py | 2 +- misc/bazel/csharp.bzl | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/csharp/Directory.Build.props b/csharp/Directory.Build.props index 0c8a2bc1526..8046ab10440 100644 --- a/csharp/Directory.Build.props +++ b/csharp/Directory.Build.props @@ -1,7 +1,7 @@ - net9.0 + net10.0 win-x64;linux-x64;osx-x64 enable true diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index c60127c6835..9d3d79e4c4f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -157,7 +157,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } // The version number should be kept in sync with the version .NET version used for building the application. - public const string LatestDotNetSdkVersion = "9.0.300"; + public const string LatestDotNetSdkVersion = "10.0.100"; public static ReadOnlyDictionary MinimalEnvironment => IDotNetCliInvoker.MinimalEnvironment; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj index 9ec28298950..2f05a1f9fe4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 Semmle.Extraction.CSharp.DependencyStubGenerator Semmle.Extraction.CSharp.DependencyStubGenerator enable @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/csharp/scripts/gen-assembly-info.py b/csharp/scripts/gen-assembly-info.py index ca88f5e1683..9937477f70d 100644 --- a/csharp/scripts/gen-assembly-info.py +++ b/csharp/scripts/gen-assembly-info.py @@ -28,7 +28,7 @@ using System.Reflection; [assembly: AssemblyCompany("GitHub")] [assembly: AssemblyCopyright("Copyright © 2024 GitHub")] -[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] """ output_file.write_text(output_file_contents) diff --git a/misc/bazel/csharp.bzl b/misc/bazel/csharp.bzl index 7a317909627..0cf2e30d0de 100644 --- a/misc/bazel/csharp.bzl +++ b/misc/bazel/csharp.bzl @@ -2,7 +2,7 @@ load("@rules_dotnet//dotnet:defs.bzl", "csharp_binary", "csharp_library", "cshar load("@rules_pkg//pkg:mappings.bzl", "strip_prefix") load("//misc/bazel:pkg.bzl", "codeql_pkg_files") -TARGET_FRAMEWORK = "net9.0" +TARGET_FRAMEWORK = "net10.0" def _gen_assembly_info(name): assembly_info_gen = name + "-assembly-info" From ff3d2d5b8df685436b117ccf42dc92d8514faeeb Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:39:39 +0100 Subject: [PATCH 077/194] C#: Update stub generator script to target .NET 10. --- csharp/scripts/stubs/helpers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/scripts/stubs/helpers.py b/csharp/scripts/stubs/helpers.py index f3810e4f8cc..28b73258c20 100644 --- a/csharp/scripts/stubs/helpers.py +++ b/csharp/scripts/stubs/helpers.py @@ -56,7 +56,7 @@ def remove_files(path, ext): def write_csproj_prefix(ioWrapper): ioWrapper.write('\n') ioWrapper.write(' \n') - ioWrapper.write(' net9.0\n') + ioWrapper.write(' net10.0\n') ioWrapper.write(' true\n') ioWrapper.write(' bin\\n') ioWrapper.write( @@ -73,7 +73,7 @@ class Generator: self.projectDirIn = os.path.join(self.workDir, self.projectNameIn) self.template = template print("\n* Creating new input project") - self.run_cmd(['dotnet', 'new', self.template, "-f", "net9.0", "--language", "C#", '--name', + self.run_cmd(['dotnet', 'new', self.template, "-f", "net10.0", "--language", "C#", '--name', self.projectNameIn, '--output', self.projectDirIn]) remove_files(self.projectDirIn, '.cs') @@ -118,7 +118,7 @@ class Generator: bqrsFile = os.path.join(rawOutputDir, outputName + '.bqrs') jsonFile = os.path.join(rawOutputDir, outputName + '.json') - sdk_version = '9.0.300' + sdk_version = '10.0.100' print("\n* Creating new global.json file and setting SDK to " + sdk_version) self.run_cmd(['dotnet', 'new', 'globaljson', '--force', '--sdk-version', sdk_version, '--output', self.workDir]) From 66aaa62ad980078b4aba3bfd592656ac38a7e28a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:44:06 +0100 Subject: [PATCH 078/194] C#: Manually update the existing stubs to target .NET 10. --- .../2.7.1/Amazon.Lambda.APIGatewayEvents.csproj | 2 +- .../stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj | 2 +- .../resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj | 2 +- .../ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj | 2 +- .../resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj | 2 +- csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj | 2 +- .../stubs/EntityFramework/6.5.1/EntityFramework.csproj | 2 +- .../stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj | 2 +- .../1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj | 2 +- .../9.0.4/Microsoft.Bcl.Cryptography.csproj | 2 +- .../stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj | 2 +- .../6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj | 2 +- .../6.0.2/Microsoft.Data.SqlClient.csproj | 2 +- .../9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj | 2 +- .../9.0.4/Microsoft.Extensions.Caching.Memory.csproj | 2 +- .../Microsoft.Extensions.Configuration.Abstractions.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Configuration.Binder.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Configuration.csproj | 2 +- ...Microsoft.Extensions.DependencyInjection.Abstractions.csproj | 2 +- ...Microsoft.Extensions.DependencyInjection.Abstractions.csproj | 2 +- .../8.0.0/Microsoft.Extensions.DependencyInjection.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Diagnostics.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Http.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj | 2 +- .../9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Logging.csproj | 2 +- .../Microsoft.Extensions.Options.ConfigurationExtensions.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Options.csproj | 2 +- .../9.0.4/Microsoft.Extensions.Options.csproj | 2 +- .../8.0.0/Microsoft.Extensions.Primitives.csproj | 2 +- .../9.0.4/Microsoft.Extensions.Primitives.csproj | 2 +- .../4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj | 2 +- .../4.61.3/Microsoft.Identity.Client.csproj | 2 +- .../7.5.0/Microsoft.IdentityModel.Abstractions.csproj | 2 +- .../7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj | 2 +- .../7.5.0/Microsoft.IdentityModel.Logging.csproj | 2 +- .../Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj | 2 +- .../7.5.0/Microsoft.IdentityModel.Protocols.csproj | 2 +- .../7.5.0/Microsoft.IdentityModel.Tokens.csproj | 2 +- .../3.1.0/Microsoft.NETCore.Platforms.csproj | 2 +- .../1.1.0/Microsoft.NETCore.Targets.csproj | 2 +- .../1.0.0/Microsoft.SqlServer.Server.csproj | 2 +- .../4.3.0/Microsoft.Win32.Primitives.csproj | 2 +- .../9.0.1/Microsoft.Win32.SystemEvents.csproj | 2 +- .../stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj | 2 +- .../ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj | 2 +- .../stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj | 2 +- .../2.2.0/Remotion.Linq.EagerFetching.csproj | 2 +- .../resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj | 2 +- .../stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj | 2 +- .../stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj | 2 +- .../8.5.2/ServiceStack.Interfaces.csproj | 2 +- .../8.5.2/ServiceStack.OrmLite.SqlServer.csproj | 2 +- .../ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj | 2 +- .../stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj | 2 +- .../test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj | 2 +- .../1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj | 2 +- .../stubs/System.AppContext/4.3.0/System.AppContext.csproj | 2 +- .../resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj | 2 +- .../stubs/System.ClientModel/1.0.0/System.ClientModel.csproj | 2 +- .../resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj | 2 +- .../4.3.0/System.Collections.Concurrent.csproj | 2 +- .../4.3.0/System.Collections.NonGeneric.csproj | 2 +- .../stubs/System.Collections/4.3.0/System.Collections.csproj | 2 +- .../5.0.0/System.ComponentModel.Annotations.csproj | 2 +- .../4.3.0/System.ComponentModel.Primitives.csproj | 2 +- .../System.ComponentModel/4.3.0/System.ComponentModel.csproj | 2 +- .../9.0.1/System.Configuration.ConfigurationManager.csproj | 2 +- .../9.0.4/System.Configuration.ConfigurationManager.csproj | 2 +- .../resources/stubs/System.Console/4.3.0/System.Console.csproj | 2 +- .../stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj | 2 +- .../1.0.119/System.Data.SQLite.Core.csproj | 2 +- .../1.0.119/System.Data.SQLite.EF6.csproj | 2 +- .../stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj | 2 +- .../System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj | 2 +- .../4.3.0/System.Diagnostics.Debug.csproj | 2 +- .../6.0.1/System.Diagnostics.DiagnosticSource.csproj | 2 +- .../8.0.0/System.Diagnostics.DiagnosticSource.csproj | 2 +- .../9.0.1/System.Diagnostics.EventLog.csproj | 2 +- .../9.0.4/System.Diagnostics.EventLog.csproj | 2 +- .../9.0.1/System.Diagnostics.PerformanceCounter.csproj | 2 +- .../4.3.0/System.Diagnostics.Tools.csproj | 2 +- .../4.3.0/System.Diagnostics.Tracing.csproj | 2 +- .../System.Drawing.Common/9.0.1/System.Drawing.Common.csproj | 2 +- .../System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj | 2 +- .../4.3.0/System.Globalization.Calendars.csproj | 2 +- .../4.3.0/System.Globalization.Extensions.csproj | 2 +- .../System.Globalization/4.3.0/System.Globalization.csproj | 2 +- .../4.3.0/System.IO.Compression.ZipFile.csproj | 2 +- .../System.IO.Compression/4.3.0/System.IO.Compression.csproj | 2 +- .../4.3.0/System.IO.FileSystem.Primitives.csproj | 2 +- .../System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj | 2 +- csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj | 2 +- .../7.5.0/System.IdentityModel.Tokens.Jwt.csproj | 2 +- .../4.3.0/System.Linq.Expressions.csproj | 2 +- .../System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj | 2 +- .../test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj | 2 +- .../stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj | 2 +- .../resources/stubs/System.Memory/4.5.4/System.Memory.csproj | 2 +- .../resources/stubs/System.Memory/4.6.0/System.Memory.csproj | 2 +- .../stubs/System.Net.Http/4.3.0/System.Net.Http.csproj | 2 +- .../System.Net.Primitives/4.3.0/System.Net.Primitives.csproj | 2 +- .../stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj | 2 +- .../4.5.0/System.Numerics.Vectors.csproj | 2 +- .../stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj | 2 +- .../4.3.0/System.Reflection.Emit.ILGeneration.csproj | 2 +- .../4.7.0/System.Reflection.Emit.Lightweight.csproj | 2 +- .../System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj | 2 +- .../4.3.0/System.Reflection.Extensions.csproj | 2 +- .../4.3.0/System.Reflection.Primitives.csproj | 2 +- .../4.7.0/System.Reflection.TypeExtensions.csproj | 2 +- .../stubs/System.Reflection/4.3.0/System.Reflection.csproj | 2 +- .../4.3.0/System.Resources.ResourceManager.csproj | 2 +- .../6.0.0/System.Runtime.CompilerServices.Unsafe.csproj | 2 +- .../4.3.0/System.Runtime.Extensions.csproj | 2 +- .../System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj | 2 +- .../System.Runtime.InteropServices.RuntimeInformation.csproj | 2 +- .../4.3.0/System.Runtime.InteropServices.csproj | 2 +- .../4.3.0/System.Runtime.Numerics.csproj | 2 +- .../4.3.0/System.Runtime.Serialization.Formatters.csproj | 2 +- .../4.3.0/System.Runtime.Serialization.Primitives.csproj | 2 +- .../resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj | 2 +- .../4.3.0/System.Security.Cryptography.Algorithms.csproj | 2 +- .../4.3.0/System.Security.Cryptography.Cng.csproj | 2 +- .../4.3.0/System.Security.Cryptography.Csp.csproj | 2 +- .../4.3.0/System.Security.Cryptography.Encoding.csproj | 2 +- .../4.3.0/System.Security.Cryptography.OpenSsl.csproj | 2 +- .../9.0.4/System.Security.Cryptography.Pkcs.csproj | 2 +- .../4.3.0/System.Security.Cryptography.Primitives.csproj | 2 +- .../9.0.1/System.Security.Cryptography.ProtectedData.csproj | 2 +- .../9.0.4/System.Security.Cryptography.ProtectedData.csproj | 2 +- .../4.3.0/System.Security.Cryptography.X509Certificates.csproj | 2 +- .../9.0.1/System.Security.Permissions.csproj | 2 +- .../4.3.0/System.Text.Encoding.Extensions.csproj | 2 +- .../System.Text.Encoding/4.3.0/System.Text.Encoding.csproj | 2 +- .../4.7.2/System.Text.Encodings.Web.csproj | 2 +- .../stubs/System.Text.Json/4.7.2/System.Text.Json.csproj | 2 +- .../4.3.0/System.Text.RegularExpressions.csproj | 2 +- .../4.3.0/System.Threading.Tasks.Extensions.csproj | 2 +- .../4.5.4/System.Threading.Tasks.Extensions.csproj | 2 +- .../System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj | 2 +- .../System.Threading.Timer/4.3.0/System.Threading.Timer.csproj | 2 +- .../stubs/System.Threading/4.3.0/System.Threading.csproj | 2 +- .../9.0.1/System.Windows.Extensions.csproj | 2 +- .../4.3.0/System.Xml.ReaderWriter.csproj | 2 +- .../System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj | 2 +- .../Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj | 2 +- .../Microsoft.NETCore.App/Microsoft.NETCore.App.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- .../4.4.0/runtime.native.System.Data.SqlClient.sni.csproj | 2 +- .../4.3.0/runtime.native.System.IO.Compression.csproj | 2 +- .../4.3.0/runtime.native.System.Net.Http.csproj | 2 +- .../runtime.native.System.Security.Cryptography.Apple.csproj | 2 +- .../runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- .../runtime.native.System/4.3.0/runtime.native.System.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...x64.runtime.native.System.Security.Cryptography.Apple.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...4.runtime.native.System.Security.Cryptography.OpenSsl.csproj | 2 +- ...me.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj | 2 +- ...time.win-x64.runtime.native.System.Data.SqlClient.sni.csproj | 2 +- ...time.win-x86.runtime.native.System.Data.SqlClient.sni.csproj | 2 +- 169 files changed, 169 insertions(+), 169 deletions(-) diff --git a/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj b/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj +++ b/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj b/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj +++ b/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj index 38998301525..b1003793c72 100644 --- a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj index a440919775d..4be1ba89cb8 100644 --- a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj +++ b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj index e16e446b3a1..3ff33c8434f 100644 --- a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj +++ b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj b/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj +++ b/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj b/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj index edca0c61e77..2485c5768e3 100644 --- a/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj +++ b/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj index eedd49158a1..032e2630cd1 100644 --- a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj +++ b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj index 457f65b723b..b01103f8746 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj index ba6857adb2b..144dee9836f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj index 611dcc85a91..b3ef41ed560 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj index bc1dd1b3547..675855d6169 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj index 27f68066b0c..b45625dcaf9 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj index 3a3d95c8025..e491cc391cf 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj index d40ad81bae2..9c117ab0052 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj index 5e2dafdbf45..c6cb5c63e8f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj index 9d6ce5a7870..15a14363eda 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj index ad6270c7d19..361c7c439cb 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj index d40ad81bae2..9c117ab0052 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj index 24dcab514cf..26c5c626f38 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj index 52843546756..6f6268b46f1 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj index 8f14f384fd6..da4c02d67bc 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj index 477139a9ca3..ab32cef0094 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj index be3f78d87fc..3232e838163 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj index a085743bd52..8b04793470c 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj index 3951c0cd04f..15c39f9afd8 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj index 3f7a9eeb43f..2f8d8081f4f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj index ccae125b498..a3ab1ba0587 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj index 4fcb6a92ab7..e1b68d55db9 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj index 3f7a9eeb43f..2f8d8081f4f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj index 524740979fa..5355c82a2a2 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj b/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj index 273e29bbe55..456dbed0286 100644 --- a/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj +++ b/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj b/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj index c327bef839a..d7190e71fe2 100644 --- a/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj +++ b/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj +++ b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj index c1ed1379cbd..decc44b4c3c 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj index d6c4929252c..bcce1168ac5 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj index 086203dafdc..f85faa8f7c9 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj index 738ed3be534..2b25400ea6a 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj index c091c7d032f..597c06cbe84 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj index 7138015c599..dc9c0b1497b 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj index f52b7af1326..72a6682fc4d 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj b/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj index 5fc24d19b67..4dbb285aaa5 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj b/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj +++ b/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj b/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj +++ b/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj b/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj index 461a9c76cd8..d6f8f78264e 100644 --- a/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj +++ b/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj index af9830f6d13..758bf53c79a 100644 --- a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj b/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj +++ b/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj b/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj index e14050e856c..bc793c64812 100644 --- a/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj b/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj index c90f517b0d7..2349fd41cce 100644 --- a/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj b/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj index a3f8fc48b0c..d9054dba10f 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj index 8017e89ccf2..992d2312bd5 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj index 8017e89ccf2..992d2312bd5 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj b/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj index 9b785dfa937..28e7058a12e 100644 --- a/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj +++ b/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj b/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj index ded2d0d5626..0e4bf5f125b 100644 --- a/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj index f28b2ba64e4..5b0ee2f2696 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj index 73e466e0806..5497fba3f3b 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj index a9338476133..d425aed68d5 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj index df3e3803d8d..85741278775 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj index 44f3b6c98d1..3c0ecb9c83e 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj index bb528bfa826..8daf53f8044 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj b/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj index 342c6102919..2a731d89815 100644 --- a/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj +++ b/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj b/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj index d22ce2d8ece..c295597573c 100644 --- a/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj b/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj index 0dfbf223dba..4a713846d3b 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj index 5e5d3cd90e9..d0fc9d064fe 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj b/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj b/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj index aa49337117c..84d7216ee2d 100644 --- a/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj b/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj index f3323292dcd..5af530f71b3 100644 --- a/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj b/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj b/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj index c5d1e07015a..2d8600a5a32 100644 --- a/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj b/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj index 531a3f6347c..cf4711e4471 100644 --- a/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj +++ b/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj index 2f5d2330dc9..ad74be7ad08 100644 --- a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj +++ b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj b/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj index 2942048df30..a44d7b8937e 100644 --- a/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj b/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj index 1b9179010ea..d80dbdd4d7c 100644 --- a/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj b/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj index df71d560e13..5e81708b4cc 100644 --- a/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj index c444f79ac6f..c9b6459dcb3 100644 --- a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj b/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj index 8b07cde32bf..36246904dc0 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj index 1f3b6fd84a8..13849284ebd 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj b/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj index cf920ee7e92..0644b1a5fc3 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj +++ b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj b/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj index 6aa1406d634..48f65b0b017 100644 --- a/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj index 80dffb6c91a..b5752b6f67d 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj index 3418538bc44..84fe0ba3fd9 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj b/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj b/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj index 0869c160e2d..3c5a8575fb7 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj b/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj index 195c1b3ba7c..7059a756745 100644 --- a/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj index 6f9c25eb744..3bcf3a63a77 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj index 2e413fd28d5..29b2e27579f 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj index 57754ba8a4e..7391fce40cd 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj index 969789e7005..11b6e7e27e0 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj index 296b55a60a8..a7640c74aa7 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj b/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj index 4c2a4eaf588..9f73adccf5d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj index cadc9113fab..ed73cd974f7 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj index 8aa9b969d65..894b05f5b5d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj index 4ee4e2b8093..27721f827a7 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj index 8ba6c5da32d..b8300780e8d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj index 4ea09d97c5c..9d13c0aca7e 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj index 13e32293916..5b4bcef20f9 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj b/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj index e25e81c4c5f..da1d0207343 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj index 8cc5decfb55..944efc80f30 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj b/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj b/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj index 9719080f314..5fadc1ee521 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj b/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj b/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj index a52b105bcb7..72f1cb505bb 100644 --- a/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj b/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj index 57b27b200a4..0b9b8f7afcc 100644 --- a/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj +++ b/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj b/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj index d594a8ea0f4..ccd05437277 100644 --- a/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj +++ b/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj index adf087e7314..6d21fd55022 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj index 396498c8261..dc08e6a07f7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj index db0fe00833e..651bfd2c549 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj index 27e7adb1b75..f2560c2ad2f 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj index a864639497f..bb4a0f554a8 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj b/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj +++ b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false From 4c3176ef1a08c9c751ef2af01d99c5a300914559 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 12:46:13 +0100 Subject: [PATCH 079/194] C#: Update integration tests to target and request .NET 10. --- .../ql/integration-tests/all-platforms/autobuild/global.json | 2 +- .../ql/integration-tests/all-platforms/binlog/a/test.csproj | 2 +- .../ql/integration-tests/all-platforms/binlog/b/test.csproj | 2 +- csharp/ql/integration-tests/all-platforms/binlog/global.json | 2 +- .../all-platforms/binlog_multiple/a/test.csproj | 2 +- .../all-platforms/binlog_multiple/b/test.csproj | 2 +- .../all-platforms/binlog_multiple/global.json | 2 +- .../all-platforms/blazor/BlazorTest/BlazorTest.csproj | 2 +- .../all-platforms/blazor/BlazorTest/global.json | 2 +- csharp/ql/integration-tests/all-platforms/blazor/global.json | 2 +- .../blazor_build_mode_none/BlazorTest/BlazorTest.csproj | 2 +- .../blazor_build_mode_none/BlazorTest/global.json | 2 +- .../all-platforms/blazor_build_mode_none/global.json | 2 +- .../all-platforms/conditional_compilation/global.json | 2 +- .../all-platforms/conditional_compilation/test.csproj | 2 +- .../ql/integration-tests/all-platforms/cshtml/cshtml.csproj | 2 +- csharp/ql/integration-tests/all-platforms/cshtml/global.json | 2 +- .../all-platforms/cshtml_standalone/cshtml.csproj | 2 +- .../all-platforms/cshtml_standalone/global.json | 2 +- .../all-platforms/cshtml_standalone_disabled/cshtml.csproj | 2 +- .../all-platforms/cshtml_standalone_disabled/global.json | 2 +- .../all-platforms/cshtml_standalone_flowsteps/cshtml.csproj | 2 +- .../all-platforms/cshtml_standalone_flowsteps/global.json | 2 +- .../all-platforms/diag_dotnet_incompatible/global.json | 2 +- .../all-platforms/diag_missing_project_files/global.json | 2 +- .../all-platforms/diag_missing_xamarin_sdk/global.json | 2 +- .../all-platforms/diag_missing_xamarin_sdk/test.csproj | 2 +- .../all-platforms/diag_recursive_generics/global.json | 2 +- .../all-platforms/diag_recursive_generics/test.csproj | 2 +- .../all-platforms/dotnet_build/dotnet_build.csproj | 2 +- .../integration-tests/all-platforms/dotnet_build/global.json | 2 +- .../all-platforms/dotnet_no_args_inject/dotnet_build.csproj | 2 +- .../all-platforms/dotnet_no_args_inject/global.json | 2 +- .../all-platforms/dotnet_pack/dotnet_pack.csproj | 2 +- .../integration-tests/all-platforms/dotnet_pack/global.json | 2 +- .../all-platforms/dotnet_publish/dotnet_publish.csproj | 2 +- .../all-platforms/dotnet_publish/global.json | 2 +- .../all-platforms/dotnet_run/dotnet_run.csproj | 2 +- .../ql/integration-tests/all-platforms/dotnet_run/global.json | 2 +- .../all-platforms/source_generator/global.json | 2 +- .../all-platforms/source_generator/test.csproj | 2 +- .../ql/integration-tests/all-platforms/standalone/global.json | 2 +- .../all-platforms/standalone/standalone.csproj | 2 +- .../all-platforms/standalone_buildless_option/global.json | 2 +- .../standalone_buildless_option/standalone.csproj | 2 +- .../all-platforms/standalone_dependencies_net48/global.json | 2 +- .../all-platforms/standalone_dependency_dir/proj/global.json | 2 +- .../standalone_dependency_dir/proj/standalone.csproj | 2 +- .../all-platforms/standalone_failed/global.json | 2 +- .../all-platforms/standalone_failed/standalone.csproj | 2 +- .../all-platforms/standalone_resx/global.json | 2 +- .../all-platforms/standalone_resx/resx.csproj | 2 +- .../all-platforms/standalone_winforms/global.json | 2 +- .../all-platforms/standalone_winforms/winforms.csproj | 4 ++-- csharp/ql/integration-tests/linux/compiler_args/global.json | 2 +- csharp/ql/integration-tests/linux/compiler_args/test.csproj | 2 +- .../standalone_dependencies_non_utf8_filename/global.json | 2 +- .../standalone_dependencies_non_utf8_filename/test.csproj | 2 +- .../ql/integration-tests/posix/dotnet_test/dotnet_test.csproj | 2 +- csharp/ql/integration-tests/posix/dotnet_test/global.json | 2 +- .../posix/dotnet_test_mstest/dotnet_test_mstest.csproj | 2 +- .../ql/integration-tests/posix/dotnet_test_mstest/global.json | 2 +- .../ql/integration-tests/posix/inherit-env-vars/global.json | 2 +- .../posix/standalone_dependencies/global.json | 2 +- .../posix/standalone_dependencies/standalone.csproj | 2 +- .../posix/standalone_dependencies_multi_project/global.json | 2 +- .../standalone_dependencies_multi_project/standalone1.csproj | 2 +- .../standalone_dependencies_multi_project/standalone2.csproj | 2 +- .../posix/standalone_dependencies_multi_target/global.json | 2 +- .../posix/standalone_dependencies_multi_target/net70.csproj | 2 +- .../posix/standalone_dependencies_no_framework/global.json | 2 +- .../standalone_dependencies_no_framework/test_sdk.csproj | 2 +- .../standalone_dependencies_nuget with_space/global.json | 2 +- .../posix/standalone_dependencies_nuget/global.json | 2 +- .../standalone_dependencies_nuget_config_error/global.json | 2 +- .../proj/proj.csproj | 2 +- .../global.json | 2 +- .../proj/proj.csproj | 2 +- .../standalone_dependencies_nuget_config_fallback/global.json | 2 +- .../proj/proj.csproj | 2 +- .../standalone_dependencies_nuget_no_sources/proj/global.json | 2 +- .../standalone_dependencies_nuget_versions/d1/test1.csproj | 2 +- .../standalone_dependencies_nuget_versions/d2/test2.csproj | 2 +- .../posix/standalone_dependencies_nuget_versions/global.json | 2 +- .../integration-tests/posix/warn_as_error/WarnAsError.csproj | 2 +- csharp/ql/integration-tests/posix/warn_as_error/global.json | 2 +- .../windows/standalone_dependencies/global.json | 2 +- .../windows/standalone_dependencies/standalone.csproj | 2 +- 88 files changed, 89 insertions(+), 89 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/autobuild/global.json b/csharp/ql/integration-tests/all-platforms/autobuild/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/autobuild/global.json +++ b/csharp/ql/integration-tests/all-platforms/autobuild/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog/global.json b/csharp/ql/integration-tests/all-platforms/binlog/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/global.json +++ b/csharp/ql/integration-tests/all-platforms/binlog/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json b/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj +++ b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor/global.json b/csharp/ql/integration-tests/all-platforms/blazor/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json b/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json +++ b/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj b/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj index d457711bd99..a421553fde2 100644 --- a/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/global.json b/csharp/ql/integration-tests/all-platforms/cshtml/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json b/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json b/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj index 6bb5914483b..06f7ce8bff0 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable $(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj index 546e25e0172..b3b85d19406 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/global.json b/csharp/ql/integration-tests/all-platforms/source_generator/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/global.json +++ b/csharp/ql/integration-tests/all-platforms/source_generator/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj b/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj index 966a7fdb5c5..bfbc94c22ea 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone/global.json b/csharp/ql/integration-tests/all-platforms/standalone/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj index 92e46ddaccf..a15a29bf12c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json b/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj index 29604e2cbd8..92273963f8c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json b/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json b/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj b/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj index 951f79551f2..919ededcdce 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable Resx.Test1.Test2 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json b/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj b/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj index 355e815cdee..848cf9fdca5 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj @@ -2,10 +2,10 @@ WinExe - net9.0-windows + net10.0-windows enable true enable - \ No newline at end of file + diff --git a/csharp/ql/integration-tests/linux/compiler_args/global.json b/csharp/ql/integration-tests/linux/compiler_args/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/global.json +++ b/csharp/ql/integration-tests/linux/compiler_args/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/linux/compiler_args/test.csproj b/csharp/ql/integration-tests/linux/compiler_args/test.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/test.csproj +++ b/csharp/ql/integration-tests/linux/compiler_args/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json +++ b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj index 92e46ddaccf..a15a29bf12c 100644 --- a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj +++ b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj b/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj index ae797904315..149082b384c 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj +++ b/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false diff --git a/csharp/ql/integration-tests/posix/dotnet_test/global.json b/csharp/ql/integration-tests/posix/dotnet_test/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test/global.json +++ b/csharp/ql/integration-tests/posix/dotnet_test/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj b/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj index 45ccf93ee74..9237cbc44ef 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj +++ b/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json b/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json +++ b/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/inherit-env-vars/global.json b/csharp/ql/integration-tests/posix/inherit-env-vars/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/inherit-env-vars/global.json +++ b/csharp/ql/integration-tests/posix/inherit-env-vars/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj index 58df1d80a86..88362e96131 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0;net6.0;netcoreapp3.1;netstandard2.0;net48 + net10.0;net6.0;netcoreapp3.1;netstandard2.0;net48 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj index 45639c4ecd2..998b6402127 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj index 40d116df47f..d5249ad8ef5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj index b93eda83d55..58c469d39c7 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj index 47798ff95a4..faba700d110 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj index 29604e2cbd8..92273963f8c 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj b/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj index 3c234e42302..2c22edadfc9 100644 --- a/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj +++ b/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable true diff --git a/csharp/ql/integration-tests/posix/warn_as_error/global.json b/csharp/ql/integration-tests/posix/warn_as_error/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/warn_as_error/global.json +++ b/csharp/ql/integration-tests/posix/warn_as_error/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/global.json b/csharp/ql/integration-tests/windows/standalone_dependencies/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/global.json +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj b/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj index 58df1d80a86..88362e96131 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0;net6.0;netcoreapp3.1;netstandard2.0;net48 + net10.0;net6.0;netcoreapp3.1;netstandard2.0;net48 From 16bfcc3882b7d8be87f609f5c2da04a4c4c942f8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 13:54:35 +0100 Subject: [PATCH 080/194] C#: Update language test expected output files to .NET 10. --- .../assemblies/compilation.expected | 8 +++---- .../csharp9/FunctionPointer.expected | 2 ++ .../ApplicationModeEndpoints.expected | 24 +++++++++---------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/csharp/ql/test/library-tests/assemblies/compilation.expected b/csharp/ql/test/library-tests/assemblies/compilation.expected index ee9126f59ce..8afa20dab5f 100644 --- a/csharp/ql/test/library-tests/assemblies/compilation.expected +++ b/csharp/ql/test/library-tests/assemblies/compilation.expected @@ -1,9 +1,9 @@ | Assembly1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | no compilation | | Locations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | has compilation | | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | -| System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | -| System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | +| System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | diff --git a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected index 1bf279341ce..6d7e7ca40ef 100644 --- a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected +++ b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected @@ -10,6 +10,7 @@ type | file://:0:0:0:0 | delegate* stdcall | Void | StdCallCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | int | UnmanagedCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | unmanagedCallingConvention parameter @@ -28,6 +29,7 @@ parameter | file://:0:0:0:0 | delegate* stdcall | 2 | file://:0:0:0:0 | `2 | T | | file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | | file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | +| file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | MarkCrossReferencesArgs*! | invocation | FunctionPointer.cs:17:21:17:43 | function pointer call | | FunctionPointer.cs:23:13:23:44 | function pointer call | diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 7dcf3b4f877..b73eb6717e5 100644 --- a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,12 +1,12 @@ -| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 9.0.0.0 | source | source | -| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 10.0.0.0 | source | source | +| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | From 2d4127fdb74dfd6e41f04a5f3817340f520018e2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 24 Nov 2025 14:19:13 +0100 Subject: [PATCH 081/194] C#: Partially update test expected files by search and replace. --- .../all-platforms/binlog/Files.expected | 16 +- .../binlog_multiple/Files.expected | 16 +- .../all-platforms/blazor/Files.expected | 24 +- .../all-platforms/blazor/XSS.expected | 6 +- .../all-platforms/cshtml/Files.expected | 10 +- .../source_generator/Files.expected | 6 +- .../standalone_winforms/Assemblies.expected | 98 ++-- .../linux/compiler_args/CompilerArgs.expected | 360 +++++++-------- .../Assemblies.expected | 328 +++++++------- .../Assemblies.expected | 328 +++++++------- .../Assemblies.expected | 328 +++++++------- .../Assemblies.expected | 420 +++++++++--------- 12 files changed, 970 insertions(+), 970 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/binlog/Files.expected b/csharp/ql/integration-tests/all-platforms/binlog/Files.expected index 1b566ea2fd2..8535872531f 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/binlog/Files.expected @@ -1,10 +1,10 @@ | a/A.cs:0:0:0:0 | a/A.cs | -| a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| a/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net9.0/test.AssemblyInfo.cs | -| a/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net9.0/test.GlobalUsings.g.cs | +| a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| a/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net10.0/test.AssemblyInfo.cs | +| a/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net10.0/test.GlobalUsings.g.cs | | b/B.cs:0:0:0:0 | b/B.cs | -| b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| b/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net9.0/test.AssemblyInfo.cs | -| b/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net9.0/test.GlobalUsings.g.cs | -| generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | -| generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| b/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net10.0/test.AssemblyInfo.cs | +| b/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net10.0/test.GlobalUsings.g.cs | +| generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected b/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected index 1b566ea2fd2..8535872531f 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected @@ -1,10 +1,10 @@ | a/A.cs:0:0:0:0 | a/A.cs | -| a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| a/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net9.0/test.AssemblyInfo.cs | -| a/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net9.0/test.GlobalUsings.g.cs | +| a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| a/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net10.0/test.AssemblyInfo.cs | +| a/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net10.0/test.GlobalUsings.g.cs | | b/B.cs:0:0:0:0 | b/B.cs | -| b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| b/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net9.0/test.AssemblyInfo.cs | -| b/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net9.0/test.GlobalUsings.g.cs | -| generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | -| generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| b/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net10.0/test.AssemblyInfo.cs | +| b/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net10.0/test.GlobalUsings.g.cs | +| generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected index 5242b9f73d1..b66e13dbe0d 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected @@ -8,15 +8,15 @@ | BlazorTest/Components/Routes.razor:0:0:0:0 | BlazorTest/Components/Routes.razor | | BlazorTest/Components/_Imports.razor:0:0:0:0 | BlazorTest/Components/_Imports.razor | | BlazorTest/Program.cs:0:0:0:0 | BlazorTest/Program.cs | -| BlazorTest/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| BlazorTest/obj/Debug/net9.0/BlazorTest.AssemblyInfo.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/BlazorTest.AssemblyInfo.cs | -| BlazorTest/obj/Debug/net9.0/BlazorTest.GlobalUsings.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/BlazorTest.GlobalUsings.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs | +| BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected b/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected index 2129be6da47..6518eb74a9f 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected @@ -3,8 +3,8 @@ | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | User-provided value | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | User-provided value | edges -| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | +| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | models | 1 | Sink: Microsoft.AspNetCore.Components; MarkupString; false; MarkupString; (System.String); ; Argument[0]; html-injection; manual | | 2 | Source: Microsoft.AspNetCore.Components; SupplyParameterFromQueryAttribute; false; ; ; Attribute.Getter; ReturnValue; remote; manual | @@ -14,5 +14,5 @@ nodes | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | semmle.label | access to property UrlParam | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | semmle.label | access to property QueryParam | | BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | semmle.label | access to property QueryParam : String | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | subpaths diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected index 946bef62462..1018a413d5e 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected @@ -1,7 +1,7 @@ | Program.cs:0:0:0:0 | Program.cs | | Views/Home/Index.cshtml:0:0:0:0 | Views/Home/Index.cshtml | -| obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| obj/Debug/net9.0/cshtml.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.AssemblyInfo.cs | -| obj/Debug/net9.0/cshtml.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.GlobalUsings.g.cs | -| obj/Debug/net9.0/cshtml.RazorAssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.RazorAssemblyInfo.cs | -| obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs:0:0:0:0 | obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs | +| obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| obj/Debug/net10.0/cshtml.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.AssemblyInfo.cs | +| obj/Debug/net10.0/cshtml.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.GlobalUsings.g.cs | +| obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs | +| obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs:0:0:0:0 | obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected index 48151f8387f..e1b80884081 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected @@ -1,6 +1,6 @@ | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | | Generated/x.cs:0:0:0:0 | Generated/x.cs | | Program.cs:0:0:0:0 | Program.cs | -| obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/test.AssemblyInfo.cs | -| obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net9.0/test.GlobalUsings.g.cs | +| obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/test.AssemblyInfo.cs | +| obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net10.0/test.GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected index d973f6d8be4..90b1be0baf8 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected @@ -1,49 +1,49 @@ -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Design.dll:0:0:0:0 | System.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Design.dll:0:0:0:0 | System.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | diff --git a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected index ee3063b3c2b..327c51e2b87 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected +++ b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected @@ -10,194 +10,194 @@ | 9 | /preferreduilang:en | | 10 | /highentropyva+ | | 11 | /nullable:enable | -| 12 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll | -| 13 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll | -| 14 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll | -| 15 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll | -| 16 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll | -| 17 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/mscorlib.dll | -| 18 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/netstandard.dll | -| 19 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.AppContext.dll | -| 20 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Buffers.dll | -| 21 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll | -| 22 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.dll | -| 23 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll | -| 24 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll | -| 25 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll | -| 26 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll | -| 27 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll | -| 28 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.dll | -| 29 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll | -| 30 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll | -| 31 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll | -| 32 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Configuration.dll | -| 33 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Console.dll | -| 34 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Core.dll | -| 35 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.Common.dll | -| 36 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll | -| 37 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.dll | -| 38 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll | -| 39 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll | -| 40 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll | -| 41 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll | -| 42 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll | -| 43 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll | -| 44 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll | -| 45 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll | -| 46 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll | -| 47 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll | -| 48 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.dll | -| 49 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Drawing.dll | -| 50 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll | -| 51 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll | -| 52 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll | -| 53 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Formats.Tar.dll | -| 54 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll | -| 55 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.dll | -| 56 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll | -| 57 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll | -| 58 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.dll | -| 59 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll | -| 60 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll | -| 61 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.dll | -| 62 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll | -| 63 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll | -| 64 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll | -| 65 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll | -| 66 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll | -| 67 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll | -| 68 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll | -| 69 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll | -| 70 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll | -| 71 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipes.dll | -| 72 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll | -| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.dll | -| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll | -| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll | -| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll | -| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Memory.dll | -| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.dll | -| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Http.dll | -| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll | -| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll | -| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Mail.dll | -| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll | -| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll | -| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Ping.dll | -| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Primitives.dll | -| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Quic.dll | -| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Requests.dll | -| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Security.dll | -| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll | -| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Sockets.dll | -| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebClient.dll | -| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll | -| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll | -| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll | -| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll | -| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Numerics.dll | -| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll | -| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ObjectModel.dll | -| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll | -| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.dll | -| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll | -| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll | -| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll | -| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll | -| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll | -| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll | -| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll | -| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.Reader.dll | -| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll | -| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.Writer.dll | -| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll | -| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll | -| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.dll | -| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll | -| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll | -| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll | -| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll | -| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll | -| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll | -| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll | -| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll | -| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll | -| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll | -| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll | -| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll | -| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll | -| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll | -| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Claims.dll | -| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll | -| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll | -| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll | -| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll | -| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll | -| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll | -| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll | -| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll | -| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.dll | -| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Principal.dll | -| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll | -| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.SecureString.dll | -| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll | -| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ServiceProcess.dll | -| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll | -| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.dll | -| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll | -| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll | -| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Json.dll | -| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll | -| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Channels.dll | -| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.dll | -| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll | -| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll | -| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll | -| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll | -| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll | -| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Thread.dll | -| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll | -| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Timer.dll | -| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Transactions.dll | -| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Transactions.Local.dll | -| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ValueTuple.dll | -| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Web.dll | -| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll | -| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Windows.dll | -| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.dll | -| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.Linq.dll | -| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll | -| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll | -| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll | -| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll | -| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll | -| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XPath.dll | -| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll | -| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/WindowsBase.dll | +| 12 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll | +| 13 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll | +| 14 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll | +| 15 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll | +| 16 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll | +| 17 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/mscorlib.dll | +| 18 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/netstandard.dll | +| 19 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.AppContext.dll | +| 20 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Buffers.dll | +| 21 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll | +| 22 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.dll | +| 23 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll | +| 24 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll | +| 25 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll | +| 26 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll | +| 27 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll | +| 28 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.dll | +| 29 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll | +| 30 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll | +| 31 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll | +| 32 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Configuration.dll | +| 33 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Console.dll | +| 34 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Core.dll | +| 35 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.Common.dll | +| 36 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll | +| 37 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.dll | +| 38 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll | +| 39 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll | +| 40 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll | +| 41 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll | +| 42 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll | +| 43 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll | +| 44 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll | +| 45 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll | +| 46 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll | +| 47 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll | +| 48 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.dll | +| 49 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Drawing.dll | +| 50 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll | +| 51 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll | +| 52 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll | +| 53 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Formats.Tar.dll | +| 54 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll | +| 55 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.dll | +| 56 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll | +| 57 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll | +| 58 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.dll | +| 59 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll | +| 60 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll | +| 61 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.dll | +| 62 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll | +| 63 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll | +| 64 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll | +| 65 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll | +| 66 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll | +| 67 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll | +| 68 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll | +| 69 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll | +| 70 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll | +| 71 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.dll | +| 72 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll | +| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.dll | +| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll | +| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll | +| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll | +| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Memory.dll | +| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.dll | +| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.dll | +| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll | +| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll | +| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Mail.dll | +| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll | +| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll | +| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Ping.dll | +| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Primitives.dll | +| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Quic.dll | +| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Requests.dll | +| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Security.dll | +| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll | +| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Sockets.dll | +| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebClient.dll | +| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll | +| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll | +| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll | +| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll | +| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.dll | +| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll | +| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ObjectModel.dll | +| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll | +| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.dll | +| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll | +| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll | +| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll | +| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll | +| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll | +| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll | +| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll | +| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Reader.dll | +| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll | +| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Writer.dll | +| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll | +| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll | +| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.dll | +| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll | +| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll | +| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll | +| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll | +| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll | +| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll | +| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll | +| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll | +| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll | +| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll | +| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll | +| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll | +| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll | +| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll | +| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Claims.dll | +| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll | +| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll | +| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll | +| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll | +| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll | +| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll | +| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll | +| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll | +| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.dll | +| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.dll | +| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll | +| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.SecureString.dll | +| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll | +| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceProcess.dll | +| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll | +| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.dll | +| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll | +| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll | +| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Json.dll | +| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll | +| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Channels.dll | +| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.dll | +| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll | +| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll | +| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll | +| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll | +| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll | +| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Thread.dll | +| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll | +| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Timer.dll | +| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.dll | +| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.Local.dll | +| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ValueTuple.dll | +| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.dll | +| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll | +| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Windows.dll | +| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.dll | +| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Linq.dll | +| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll | +| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll | +| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll | +| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll | +| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll | +| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.dll | +| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll | +| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/WindowsBase.dll | | 176 | /debug+ | | 177 | /debug:portable | | 178 | /filealign:512 | -| 179 | /generatedfilesout:obj/Debug/net9.0//generated | +| 179 | /generatedfilesout:obj/Debug/net10.0//generated | | 180 | /optimize- | -| 181 | /out:obj/Debug/net9.0/test.dll | -| 182 | /refout:obj/Debug/net9.0/refint/test.dll | +| 181 | /out:obj/Debug/net10.0/test.dll | +| 182 | /refout:obj/Debug/net10.0/refint/test.dll | | 183 | /target:exe | | 184 | /warnaserror- | | 185 | /utf8output | | 186 | /deterministic+ | | 187 | /langversion:13.0 | -| 188 | /analyzerconfig:obj/Debug/net9.0/test.GeneratedMSBuildEditorConfig.editorconfig | -| 189 | /analyzerconfig:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig | -| 190 | /analyzer:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | -| 191 | /analyzer:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | -| 192 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | -| 193 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | -| 194 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | -| 195 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | -| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | -| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | +| 188 | /analyzerconfig:obj/Debug/net10.0/test.GeneratedMSBuildEditorConfig.editorconfig | +| 189 | /analyzerconfig:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig | +| 190 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | +| 191 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | +| 192 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | +| 193 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | +| 194 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | +| 195 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | +| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | +| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | | 198 | Program.cs | -| 199 | obj/Debug/net9.0/test.GlobalUsings.g.cs | -| 200 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| 201 | obj/Debug/net9.0/test.AssemblyInfo.cs | +| 199 | obj/Debug/net10.0/test.GlobalUsings.g.cs | +| 200 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| 201 | obj/Debug/net10.0/test.AssemblyInfo.cs | | 202 | /warnaserror+:NU1605,SYSLIB0011 | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected index 05b3826c73c..800e4cd1a71 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected @@ -1,167 +1,167 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected index 05b3826c73c..800e4cd1a71 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected @@ -1,167 +1,167 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected index 1e4df659ded..f1a83aa8a5c 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected @@ -1,164 +1,164 @@ -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected index 0b4ea613c8e..1314e0acf05 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected @@ -1,213 +1,213 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Design.dll:0:0:0:0 | System.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Design.dll:0:0:0:0 | System.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | From af6809e93e798fb50e0a67ee91c60ae9cfb265ad Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 25 Nov 2025 14:23:03 +0100 Subject: [PATCH 082/194] C#: Update integration test expected files. --- .../all-platforms/blazor/Files.expected | 3 + .../all-platforms/cshtml/Files.expected | 1 + .../source_generator/Files.expected | 1 + .../standalone_winforms/Assemblies.expected | 3 +- .../linux/compiler_args/CompilerArgs.expected | 268 +++++++++--------- .../Assemblies.expected | 5 +- .../Assemblies.expected | 3 + .../Assemblies.expected | 5 +- .../Assemblies.expected | 5 +- .../Assemblies.expected | 8 +- 10 files changed, 164 insertions(+), 138 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected index b66e13dbe0d..cd035dc7ae9 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected @@ -11,6 +11,9 @@ | BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | | BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs | | BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs | +| BlazorTest/obj/Debug/net10.0/EmbeddedAttribute.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/EmbeddedAttribute.cs | +| BlazorTest/obj/Debug/net10.0/ValidatableTypeAttribute.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/ValidatableTypeAttribute.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs | | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs | | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected index 1018a413d5e..ef4dc96389f 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected @@ -4,4 +4,5 @@ | obj/Debug/net10.0/cshtml.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.AssemblyInfo.cs | | obj/Debug/net10.0/cshtml.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.GlobalUsings.g.cs | | obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs | +| obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | | obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs:0:0:0:0 | obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected index e1b80884081..9e84046bb15 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected @@ -1,3 +1,4 @@ +| Generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | Generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | | Generated/x.cs:0:0:0:0 | Generated/x.cs | | Program.cs:0:0:0:0 | Program.cs | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected index 90b1be0baf8..aa00093875c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected @@ -26,12 +26,12 @@ | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.GdiPlus.dll:0:0:0:0 | System.Private.Windows.GdiPlus, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -40,6 +40,7 @@ | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Primitives.dll:0:0:0:0 | System.Windows.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | diff --git a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected index 327c51e2b87..67a23e2d941 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected +++ b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected @@ -5,8 +5,8 @@ | 4 | /fullpaths | | 5 | /nostdlib+ | | 6 | /errorreport:prompt | -| 7 | /warn:9 | -| 8 | /define:TRACE;DEBUG;NET;NET9_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER | +| 7 | /warn:10 | +| 8 | /define:TRACE;DEBUG;NET;NET10_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NET10_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER | | 9 | /preferreduilang:en | | 10 | /highentropyva+ | | 11 | /nullable:enable | @@ -71,133 +71,137 @@ | 70 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll | | 71 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.dll | | 72 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll | -| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.dll | -| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll | -| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll | -| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll | -| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Memory.dll | -| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.dll | -| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.dll | -| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll | -| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll | -| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Mail.dll | -| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll | -| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll | -| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Ping.dll | -| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Primitives.dll | -| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Quic.dll | -| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Requests.dll | -| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Security.dll | -| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll | -| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Sockets.dll | -| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebClient.dll | -| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll | -| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll | -| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll | -| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll | -| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.dll | -| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll | -| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ObjectModel.dll | -| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll | -| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.dll | -| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll | -| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll | -| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll | -| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll | -| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll | -| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll | -| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll | -| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Reader.dll | -| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll | -| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Writer.dll | -| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll | -| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll | -| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.dll | -| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll | -| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll | -| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll | -| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll | -| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll | -| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll | -| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll | -| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll | -| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll | -| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll | -| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll | -| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll | -| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll | -| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll | -| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Claims.dll | -| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll | -| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll | -| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll | -| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll | -| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll | -| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll | -| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll | -| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll | -| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.dll | -| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.dll | -| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll | -| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.SecureString.dll | -| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll | -| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceProcess.dll | -| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll | -| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.dll | -| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll | -| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll | -| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Json.dll | -| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll | -| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Channels.dll | -| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.dll | -| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll | -| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll | -| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll | -| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll | -| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll | -| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Thread.dll | -| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll | -| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Timer.dll | -| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.dll | -| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.Local.dll | -| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ValueTuple.dll | -| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.dll | -| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll | -| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Windows.dll | -| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.dll | -| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Linq.dll | -| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll | -| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll | -| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll | -| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll | -| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll | -| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.dll | -| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll | -| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/WindowsBase.dll | -| 176 | /debug+ | -| 177 | /debug:portable | -| 178 | /filealign:512 | -| 179 | /generatedfilesout:obj/Debug/net10.0//generated | -| 180 | /optimize- | -| 181 | /out:obj/Debug/net10.0/test.dll | -| 182 | /refout:obj/Debug/net10.0/refint/test.dll | -| 183 | /target:exe | -| 184 | /warnaserror- | -| 185 | /utf8output | -| 186 | /deterministic+ | -| 187 | /langversion:13.0 | -| 188 | /analyzerconfig:obj/Debug/net10.0/test.GeneratedMSBuildEditorConfig.editorconfig | -| 189 | /analyzerconfig:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig | -| 190 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | -| 191 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | -| 192 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | -| 193 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | -| 194 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | -| 195 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | -| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | -| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | -| 198 | Program.cs | -| 199 | obj/Debug/net10.0/test.GlobalUsings.g.cs | -| 200 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | -| 201 | obj/Debug/net10.0/test.AssemblyInfo.cs | -| 202 | /warnaserror+:NU1605,SYSLIB0011 | +| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll | +| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.dll | +| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll | +| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll | +| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll | +| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Memory.dll | +| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.dll | +| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.dll | +| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll | +| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll | +| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Mail.dll | +| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll | +| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll | +| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Ping.dll | +| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Primitives.dll | +| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Quic.dll | +| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Requests.dll | +| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Security.dll | +| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll | +| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll | +| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Sockets.dll | +| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebClient.dll | +| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll | +| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll | +| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll | +| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll | +| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.dll | +| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll | +| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ObjectModel.dll | +| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll | +| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.dll | +| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll | +| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll | +| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll | +| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll | +| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll | +| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll | +| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll | +| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Reader.dll | +| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll | +| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Writer.dll | +| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll | +| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll | +| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.dll | +| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll | +| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll | +| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll | +| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll | +| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll | +| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll | +| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll | +| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll | +| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll | +| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll | +| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll | +| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll | +| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll | +| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll | +| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Claims.dll | +| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll | +| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll | +| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll | +| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll | +| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll | +| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll | +| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll | +| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll | +| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.dll | +| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.dll | +| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll | +| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.SecureString.dll | +| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll | +| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceProcess.dll | +| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll | +| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.dll | +| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll | +| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll | +| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Json.dll | +| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll | +| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll | +| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Channels.dll | +| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.dll | +| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll | +| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll | +| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll | +| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll | +| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll | +| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Thread.dll | +| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll | +| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Timer.dll | +| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.dll | +| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.Local.dll | +| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ValueTuple.dll | +| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.dll | +| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll | +| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Windows.dll | +| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.dll | +| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Linq.dll | +| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll | +| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll | +| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll | +| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll | +| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll | +| 176 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.dll | +| 177 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll | +| 178 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/WindowsBase.dll | +| 179 | /features:"InterceptorsNamespaces=;Microsoft.Extensions.Validation.Generated" | +| 180 | /debug+ | +| 181 | /debug:portable | +| 182 | /filealign:512 | +| 183 | /generatedfilesout:obj/Debug/net10.0//generated | +| 184 | /optimize- | +| 185 | /out:obj/Debug/net10.0/test.dll | +| 186 | /refout:obj/Debug/net10.0/refint/test.dll | +| 187 | /target:exe | +| 188 | /warnaserror- | +| 189 | /utf8output | +| 190 | /deterministic+ | +| 191 | /langversion:14.0 | +| 192 | /analyzerconfig:obj/Debug/net10.0/test.GeneratedMSBuildEditorConfig.editorconfig | +| 193 | /analyzerconfig:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_10_default.globalconfig | +| 194 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | +| 195 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | +| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | +| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | +| 198 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | +| 199 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | +| 200 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | +| 201 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | +| 202 | Program.cs | +| 203 | obj/Debug/net10.0/test.GlobalUsings.g.cs | +| 204 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| 205 | obj/Debug/net10.0/test.AssemblyInfo.cs | +| 206 | /warnaserror+:NU1605,SYSLIB0011 | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected index 800e4cd1a71..619475882b5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected @@ -1,7 +1,7 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -58,6 +58,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -74,6 +75,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | @@ -135,6 +137,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected index 72f46cf9ac4..0b408640770 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected @@ -85,6 +85,7 @@ | [...]/csharp/tools/[...]/System.IO.Pipes.dll | | [...]/csharp/tools/[...]/System.IO.UnmanagedMemoryStream.dll | | [...]/csharp/tools/[...]/System.IO.dll | +| [...]/csharp/tools/[...]/System.Linq.AsyncEnumerable.dll | | [...]/csharp/tools/[...]/System.Linq.Expressions.dll | | [...]/csharp/tools/[...]/System.Linq.Parallel.dll | | [...]/csharp/tools/[...]/System.Linq.Queryable.dll | @@ -101,6 +102,7 @@ | [...]/csharp/tools/[...]/System.Net.Quic.dll | | [...]/csharp/tools/[...]/System.Net.Requests.dll | | [...]/csharp/tools/[...]/System.Net.Security.dll | +| [...]/csharp/tools/[...]/System.Net.ServerSentEvents.dll | | [...]/csharp/tools/[...]/System.Net.ServicePoint.dll | | [...]/csharp/tools/[...]/System.Net.Sockets.dll | | [...]/csharp/tools/[...]/System.Net.WebClient.dll | @@ -169,6 +171,7 @@ | [...]/csharp/tools/[...]/System.Text.Encodings.Web.dll | | [...]/csharp/tools/[...]/System.Text.Json.dll | | [...]/csharp/tools/[...]/System.Text.RegularExpressions.dll | +| [...]/csharp/tools/[...]/System.Threading.AccessControl.dll | | [...]/csharp/tools/[...]/System.Threading.Channels.dll | | [...]/csharp/tools/[...]/System.Threading.Overlapped.dll | | [...]/csharp/tools/[...]/System.Threading.Tasks.Dataflow.dll | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected index 800e4cd1a71..619475882b5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected @@ -1,7 +1,7 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -58,6 +58,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -74,6 +75,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | @@ -135,6 +137,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected index f1a83aa8a5c..7e3b8f6e453 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected @@ -1,5 +1,5 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -56,6 +56,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -72,6 +73,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | @@ -133,6 +135,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected index 1314e0acf05..90a2806afe5 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected @@ -1,7 +1,7 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -56,6 +56,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -72,6 +73,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | @@ -133,6 +135,7 @@ | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -189,12 +192,12 @@ | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.GdiPlus.dll:0:0:0:0 | System.Private.Windows.GdiPlus, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -203,6 +206,7 @@ | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Primitives.dll:0:0:0:0 | System.Windows.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | From 3bb12f62365fd5c1ebdb063f3bd945bc5f03f7a2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Dec 2025 15:52:51 +0100 Subject: [PATCH 083/194] C#: Cleanup dependencies. --- .../Semmle.Autobuild.CSharp.Tests/BUILD.bazel | 1 - .../paket.references | 1 - .../Semmle.Autobuild.Cpp.Tests/BUILD.bazel | 1 - .../paket.references | 1 - .../paket.references | 4 -- .../Semmle.Extraction.Tests/BUILD.bazel | 1 - .../Semmle.Extraction.Tests/paket.references | 1 - csharp/paket.dependencies | 5 -- csharp/paket.lock | 48 ------------------- csharp/paket.main.bzl | 13 ----- 10 files changed, 76 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel index 67f3470712d..9590f7f86ca 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel @@ -13,6 +13,5 @@ codeql_xunit_test( "//csharp/autobuilder/Semmle.Autobuild.CSharp:bin/Semmle.Autobuild.CSharp", "//csharp/autobuilder/Semmle.Autobuild.Shared", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel index ad8f6e3d1f1..0a718903a95 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel @@ -13,6 +13,5 @@ codeql_xunit_test( "//csharp/autobuilder/Semmle.Autobuild.Cpp:bin/Semmle.Autobuild.Cpp", "//csharp/autobuilder/Semmle.Autobuild.Shared", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references index 9a2eede6b35..ec65ce95b91 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references @@ -1,5 +1 @@ Microsoft.Build -Microsoft.Win32.Primitives -System.Net.Primitives -System.Security.Principal -System.Threading.ThreadPool diff --git a/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel b/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel index 4d13f7f4fb8..2b27e4048ba 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel +++ b/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel @@ -16,6 +16,5 @@ codeql_xunit_test( "//csharp/extractor/Semmle.Extraction.CSharp.StubGenerator", "//csharp/extractor/Semmle.Util", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/extractor/Semmle.Extraction.Tests/paket.references b/csharp/extractor/Semmle.Extraction.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/paket.references +++ b/csharp/extractor/Semmle.Extraction.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/paket.dependencies b/csharp/paket.dependencies index 610614cd564..130a5d98125 100644 --- a/csharp/paket.dependencies +++ b/csharp/paket.dependencies @@ -15,8 +15,3 @@ nuget Microsoft.NET.Test.Sdk nuget Microsoft.CodeAnalysis.CSharp 4.14.0 nuget Microsoft.CodeAnalysis 4.14.0 nuget Microsoft.Build 17.14.28 -nuget Microsoft.Win32.Primitives -nuget System.Net.Primitives -nuget System.Security.Principal -nuget System.Threading.ThreadPool -nuget System.IO.FileSystem diff --git a/csharp/paket.lock b/csharp/paket.lock index aa3b6bf5743..5efb14dba91 100644 --- a/csharp/paket.lock +++ b/csharp/paket.lock @@ -104,17 +104,11 @@ NUGET Microsoft.NET.Test.Sdk (18.0.1) Microsoft.CodeCoverage (>= 18.0.1) Microsoft.TestPlatform.TestHost (>= 18.0.1) - Microsoft.NETCore.Platforms (7.0.4) - Microsoft.NETCore.Targets (5.0) Microsoft.TestPlatform.ObjectModel (18.0.1) System.Reflection.Metadata (>= 8.0) Microsoft.TestPlatform.TestHost (18.0.1) Microsoft.TestPlatform.ObjectModel (>= 18.0.1) Newtonsoft.Json (>= 13.0.3) - Microsoft.Win32.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) Mono.Posix.NETStandard (1.0) MSBuild.StructuredLogger (2.3.113) Microsoft.Build.Framework (>= 17.5) @@ -145,58 +139,16 @@ NUGET System.Diagnostics.EventLog (>= 10.0) System.Security.Cryptography.ProtectedData (>= 10.0) System.Diagnostics.EventLog (10.0) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - System.Runtime (>= 4.3) System.IO.Pipelines (10.0) System.Memory (4.6.3) - System.Net.Primitives (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) - System.Runtime.Handles (>= 4.3) System.Numerics.Vectors (4.6.1) System.Reflection.Metadata (10.0) System.Reflection.MetadataLoadContext (10.0) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) System.Runtime.CompilerServices.Unsafe (6.1.2) - System.Runtime.Handles (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) System.Security.Cryptography.ProtectedData (10.0) - System.Security.Principal (4.3) - System.Runtime (>= 4.3) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) System.Text.Encoding.CodePages (10.0) System.Threading.Channels (10.0) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) System.Threading.Tasks.Extensions (4.6.3) - System.Threading.ThreadPool (4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) xunit (2.9.3) xunit.analyzers (>= 1.18) xunit.assert (>= 2.9.3) diff --git a/csharp/paket.main.bzl b/csharp/paket.main.bzl index 5dd73c5d9ba..73919a76201 100644 --- a/csharp/paket.main.bzl +++ b/csharp/paket.main.bzl @@ -29,11 +29,8 @@ def main(): {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.0", "sha512": "sha512-c9pc0Jh0Sm3hl+y5qTwyJ1weldQt3C73SwPFhalL4gTWGxQGo5XFGVvy5nNqsOH5tXYePwcjuCEoJXi/nI6nYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "18.0.2", "sha512": "sha512-s9BywFgRKhPV5OyY2t2EMQXfoDrvYSEzX4bHaWkZ/PwYJnxbxmLEqA/dh8MQ2mUOq48sGr3hbkgnghZQHeZc7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.1", "sha512": "sha512-cfpn4IW0Q+emID8eUocS7xfmwwYgD/JX5S+zCZA2l7gcYzxZ1vvfcdZHcKkuzCH4gMbBYqcZqtBn9uZa0WJRUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.NETCore.Platforms", "id": "Microsoft.NETCore.Platforms", "version": "7.0.4", "sha512": "sha512-mcQWjuDBh4WHGG4WcBI0k025WAdA2afMm6fs42sm1f+3gRyNQUiuMVT5gAWNUGSHmlu6qn/TCnAQpfl4Gm6cBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.NETCore.Targets", "id": "Microsoft.NETCore.Targets", "version": "5.0.0", "sha512": "sha512-hYHm3JAjQO/nySxcl1EpZhYEW+2P3H1eLZNr+QxgO5TnLS6hqtfi5WchjQzjid45MYmhy2X7IOmcWtDP4fpMGw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.1", "sha512": "sha512-qZKcsS5mN7GMwtpd+tRfAt4Dmg8yVbtWkm9iGfqY2GNOG2qW95NH6zf/FrTLXTiS7rB7zqihWGEcSspOaSK8TQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.1", "sha512": "sha512-SX1FnYA8zcNv/lbWK3GjLnAx93jalmyHyQMVi+TNWA61R6xzkLMNpC3fotbfpDheXCFhwy/1rKoULyaOOe0jEg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.Win32.Primitives", "id": "Microsoft.Win32.Primitives", "version": "4.3.0", "sha512": "sha512-Nm8Hp51y9tYcK3xD6qk43Wjftrg1mdH24CCJsTb6gr7HS21U1uA+CKPGEtUcVZbjU1y8Kynzm5eoJ7Pnx5gm8A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.113", "sha512": "sha512-FS/vecrCK5mq3v4OIyd90BU6x9clwoRzW6LiIfilSQZQBYp/E9/+G9LS2Q9nB1rHEhJ8kDWnsZdytEIsNAb4Jw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.1", "sha512": "sha512-UTrcQcgmn7pBdx+0Oi/NxlyPslWbMt7U8I1sg/4m36OkOCS+7QKZWY3O4dKcjHD2wQaBr9L2/XWnx3ViTaehZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, @@ -49,26 +46,16 @@ def main(): {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "10.0.0", "sha512": "sha512-maWE8bEZMVv84NU1XEfwrdARVNG/n4Xreg8uYN4+R0j/NR70wzSmjV+i1XXSRC+N96gqLwvBa+jVbeFRY4asPw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "10.0.0", "sha512": "sha512-siDQPzzFWSwUHLz/eNsgWkQKTZSVHcDybHGY0OvvAEe3GaHWfjIDbtnqzSjxUxAfKWmmPaAqubv3p1TF9RCfRg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "10.0.0", "sha512": "sha512-MW9Vd1l580ev4JdChWxxOS9llYO3U79gHvcFu5YiDcDMDJhiqHF/GC67teJ1tEDiTyQHUKhSBSijhi/zY4zhuA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.IO", "id": "System.IO", "version": "4.3.0", "sha512": "sha512-v8paIePhmGuXZbE9xvvNb4uJ5ME4OFXR1+8la/G/L1GIl2nbU2WFnddgb79kVK3U2us7q1aZT/uY/R0D/ovB5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.IO.FileSystem", "id": "System.IO.FileSystem", "version": "4.3.0", "sha512": "sha512-T7WB1vhblSmgkaDpdGM3Uqo55Qsr5sip5eyowrwiXOoHBkzOx3ePd9+Zh97r9NzOwFCxqX7awO6RBxQuao7n7g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": ["System.IO.FileSystem.Primitives"], "net461": ["System.IO.FileSystem.Primitives"], "net462": ["System.IO.FileSystem.Primitives"], "net47": ["System.IO.FileSystem.Primitives"], "net471": ["System.IO.FileSystem.Primitives"], "net472": ["System.IO.FileSystem.Primitives"], "net48": ["System.IO.FileSystem.Primitives"], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.IO.FileSystem.Primitives", "id": "System.IO.FileSystem.Primitives", "version": "4.3.0", "sha512": "sha512-WIWVPQlYLP/Zc9I6IakpBk1y8ryVGK83MtZx//zGKKi2hvHQWKAB7moRQCOz5Is/wNDksiYpocf3FeA3le6e5Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "10.0.0", "sha512": "sha512-u/DHKOwXB6sPdswZln+du+jUpWYkik9bFjT3KinfYey/wKBV845m4Y2ul3HtkEJ2BJJnfTYN556iQ6xc/MEvqg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Net.Primitives", "id": "System.Net.Primitives", "version": "4.3.1", "sha512": "sha512-BgdlyYCI7rrdh36p3lMTqbkvaafPETpB1bk9iQlFdQxYE692kiXvmseXs8ghL+gEgQF2xgDc8GH4QLkSgUUs+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "10.0.0", "sha512": "sha512-se+gXT13zqFct0l43vU8SbjExvQ/4oUD/kyf0OP4dVzxJHQdow49oSVYZ5XlMthXyNTvJ+sdZDBtPoP7yNdKOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable"], "net462": ["System.Collections.Immutable"], "net47": ["System.Collections.Immutable"], "net471": ["System.Collections.Immutable"], "net472": ["System.Collections.Immutable"], "net48": ["System.Collections.Immutable"], "net5.0": ["System.Collections.Immutable"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "net9.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable"], "netcoreapp2.1": ["System.Collections.Immutable"], "netcoreapp2.2": ["System.Collections.Immutable"], "netcoreapp3.0": ["System.Collections.Immutable"], "netcoreapp3.1": ["System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable"], "netstandard2.1": ["System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "10.0.0", "sha512": "sha512-1ZLtiaq0AjW8wkN+DmCLvrNrJRhjNN3RB1s7wSGNEuoqYbG2BiTrOrbvYwxylPJvEyGuKn/nCXs1Z7oEbS5Eew==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Runtime", "id": "System.Runtime", "version": "4.3.1", "sha512": "sha512-Al69mPDfzdD+bKGK2HAfB+lNFOHFqnkqzNnUJmmvUe1/qEPK9M7EiTT4zuycKDPy7ev11xz8XVgJWKP0hm7NIA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Runtime.Handles", "id": "System.Runtime.Handles", "version": "4.3.0", "sha512": "sha512-CluvHdVUv54BvLTOCCyybugreDNk/rR8unMPruzXDtxSjvrQOU3M4R831/lQf4YI8VYp668FGQa/01E+Rq8PEQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "10.0.0", "sha512": "sha512-teHxNzoQmQKZz4y0rF/bdfZbHe7JuLujMDJ0Ec+mhdy9/55AbOnGXqOaQ8nlJVVdSeMw8xOL3LDzAce1qFBeBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Security.Principal", "id": "System.Security.Principal", "version": "4.3.0", "sha512": "sha512-24oe0NGJY32e+DFHVQzl2okM9uwYmn0Aa6nehqtVZ55/Al4Yva7S3BN934Kn5qATH7TVTUJkgxhisdfF7mKDfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": ["System.Runtime"], "netstandard1.1": ["System.Runtime"], "netstandard1.2": ["System.Runtime"], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Text.Encoding", "id": "System.Text.Encoding", "version": "4.3.0", "sha512": "sha512-b/f+7HMTpxIfeV7H03bkuHKMFylCGfr9/U6gePnfFFW0aF8LOWLDgQCY6V1oWUqDksC3mdNuyChM1vy9TP4sZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "10.0.0", "sha512": "sha512-okG5NSnh+Q9OYFrwgx0KAaUKXkBmhhI2fjUjB2K9RPboJcpeAplMR4JqbKGOTjHzAZhx6/b05KV3d4B4g7chfQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "10.0.0", "sha512": "sha512-8eOjQcZanQbdFWIgrf13QPEme7lxkSBucz513v5iEvKZLZEdkNNhHBU21fP2fI02wWGeYTfa+S5eMnTiiDcZQg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Threading.Tasks", "id": "System.Threading.Tasks", "version": "4.3.0", "sha512": "sha512-fUiP+CyyCjs872OA8trl6p97qma/da1xGq3h4zAbJZk8zyaU4zyEfqW5vbkP80xG/Nimun1vlWBboMEk7XxdEw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Threading.ThreadPool", "id": "System.Threading.ThreadPool", "version": "4.3.0", "sha512": "sha512-RQpA+UpI6Tlpeedk5JStYk2DM/M3i5HqabI/yDbfj1xDu9bIz9kdoquVpHbh/wQjOJaOCbcgRH8iQcAUv8dRWQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Runtime", "System.Runtime.Handles"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime", "System.Runtime.Handles"], "net6.0": ["System.Runtime", "System.Runtime.Handles"], "net7.0": ["System.Runtime", "System.Runtime.Handles"], "net8.0": ["System.Runtime", "System.Runtime.Handles"], "net9.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "xunit.analyzers", "id": "xunit.analyzers", "version": "1.26.0", "sha512": "sha512-gJ6shgzXmTVaWJsRCpWrfp1ymSSIwjandPL5myGv3wt+96TkARHFUV1bAS4omFPPkSLkFV7nOssjCeEIorPE+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, From c69bbce17657c6a6ae4f1f54886c6c529d08cc2a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Dec 2025 11:51:16 +0100 Subject: [PATCH 084/194] C#: Add change-note. --- csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md diff --git a/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md b/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md new file mode 100644 index 00000000000..832e6069ee0 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* In `build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. From 4702e208b7c2bb4a32663d171e98e55bfe31c125 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Mon, 8 Dec 2025 16:08:28 +0100 Subject: [PATCH 085/194] C/C++ overlay: Add overlay support for discarding functions --- .../lib/semmle/code/cpp/internal/Overlay.qll | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index 571f034d85b..adc040c5cff 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -20,9 +20,13 @@ private string getLocationFilePath(@location_default loc) { */ overlay[local] private string getSingleLocationFilePath(@element e) { - // @var_decl has a direct location in the var_decls relation - exists(@location_default loc | var_decls(e, _, _, _, loc) | result = getLocationFilePath(loc)) - //TODO: add other kinds of elements with single locations + exists(@location_default loc | + var_decls(e, _, _, _, loc) + or + fun_decls(e, _, _, _, loc) + | + result = getLocationFilePath(loc) + ) } /** @@ -30,11 +34,13 @@ private string getSingleLocationFilePath(@element e) { */ overlay[local] private string getMultiLocationFilePath(@element e) { - // @variable gets its location(s) from its @var_decl(s) - exists(@var_decl vd, @location_default loc | var_decls(vd, e, _, _, loc) | + exists(@location_default loc | + exists(@var_decl vd | var_decls(vd, e, _, _, loc)) + or + exists(@fun_decl fd | fun_decls(fd, e, _, _, loc)) + | result = getLocationFilePath(loc) ) - //TODO: add other kinds of elements with multiple locations } /** From c34456e3a04e53c5822655d5347222ffa97cc352 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Mon, 8 Dec 2025 16:08:56 +0100 Subject: [PATCH 086/194] C/C++ overlay: Add overlay support for discarding user types --- cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index adc040c5cff..61466946070 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -24,6 +24,8 @@ private string getSingleLocationFilePath(@element e) { var_decls(e, _, _, _, loc) or fun_decls(e, _, _, _, loc) + or + type_decls(e, _, loc) | result = getLocationFilePath(loc) ) @@ -38,6 +40,8 @@ private string getMultiLocationFilePath(@element e) { exists(@var_decl vd | var_decls(vd, e, _, _, loc)) or exists(@fun_decl fd | fun_decls(fd, e, _, _, loc)) + or + exists(@type_decl td | type_decls(td, e, loc)) | result = getLocationFilePath(loc) ) From 1286ca6683a39e83fcb2f5f117bf4c93134b2511 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Mon, 8 Dec 2025 16:09:26 +0100 Subject: [PATCH 087/194] C/C++ overlay: Add overlay support for discarding namespaces --- cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index 61466946070..9bc9ace89fe 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -26,6 +26,8 @@ private string getSingleLocationFilePath(@element e) { fun_decls(e, _, _, _, loc) or type_decls(e, _, loc) + or + namespace_decls(e, _, loc, _) | result = getLocationFilePath(loc) ) @@ -42,6 +44,8 @@ private string getMultiLocationFilePath(@element e) { exists(@fun_decl fd | fun_decls(fd, e, _, _, loc)) or exists(@type_decl td | type_decls(td, e, loc)) + or + exists(@namespace_decl nd | namespace_decls(nd, e, loc, _)) | result = getLocationFilePath(loc) ) From 3f372d2658de7e2da7a3deca6e7587f84c309112 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Mon, 8 Dec 2025 16:09:50 +0100 Subject: [PATCH 088/194] C/C++ overlay: Add overlay support for discarding macro invocations --- cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index 9bc9ace89fe..64bfb7a8f17 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -28,6 +28,10 @@ private string getSingleLocationFilePath(@element e) { type_decls(e, _, loc) or namespace_decls(e, _, loc, _) + or + macroinvocations(e, _, loc, _) + or + preprocdirects(e, _, loc) | result = getLocationFilePath(loc) ) From 66895a0c625b282bfe549f82e54cf6631f0e9a27 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Dec 2025 13:24:35 +0100 Subject: [PATCH 089/194] C#: Update the Roslyn, MsBuild and Binlog extractor dependencies. --- csharp/paket.dependencies | 8 ++-- csharp/paket.lock | 79 +++++++++++++++------------------------ csharp/paket.main.bzl | 18 ++++----- 3 files changed, 44 insertions(+), 61 deletions(-) diff --git a/csharp/paket.dependencies b/csharp/paket.dependencies index 130a5d98125..32f495954dc 100644 --- a/csharp/paket.dependencies +++ b/csharp/paket.dependencies @@ -4,7 +4,7 @@ source https://api.nuget.org/v3/index.json # behave like nuget in choosing transitive dependency versions strategy: max -nuget Basic.CompilerLog.Util 0.9.21 +nuget Basic.CompilerLog.Util 0.9.25 nuget Mono.Posix.NETStandard nuget Newtonsoft.Json nuget NuGet.Versioning @@ -12,6 +12,6 @@ nuget xunit nuget xunit.runner.visualstudio nuget xunit.runner.utility nuget Microsoft.NET.Test.Sdk -nuget Microsoft.CodeAnalysis.CSharp 4.14.0 -nuget Microsoft.CodeAnalysis 4.14.0 -nuget Microsoft.Build 17.14.28 +nuget Microsoft.CodeAnalysis.CSharp 5.0.0 +nuget Microsoft.CodeAnalysis 5.0.0 +nuget Microsoft.Build 18.0.2 diff --git a/csharp/paket.lock b/csharp/paket.lock index 5efb14dba91..f0226edbbd5 100644 --- a/csharp/paket.lock +++ b/csharp/paket.lock @@ -3,7 +3,7 @@ STRATEGY: MAX RESTRICTION: == net10.0 NUGET remote: https://api.nuget.org/v3/index.json - Basic.CompilerLog.Util (0.9.21) + Basic.CompilerLog.Util (0.9.25) MessagePack (>= 3.1.4) Microsoft.Bcl.Memory (>= 9.0.10) Microsoft.CodeAnalysis (>= 4.8) @@ -12,6 +12,7 @@ NUGET Microsoft.Extensions.ObjectPool (>= 9.0.10) MSBuild.StructuredLogger (>= 2.3.71) NaturalSort.Extension (>= 4.4) + NuGet.Versioning (>= 6.14) Humanizer.Core (3.0.1) MessagePack (3.1.4) MessagePack.Annotations (>= 3.1.4) @@ -21,13 +22,13 @@ NUGET MessagePackAnalyzer (3.1.4) Microsoft.Bcl.AsyncInterfaces (10.0) Microsoft.Bcl.Memory (10.0) - Microsoft.Build (17.14.28) - Microsoft.Build.Framework (>= 17.14.28) - Microsoft.NET.StringTools (>= 17.14.28) + Microsoft.Build (18.0.2) + Microsoft.Build.Framework (>= 18.0.2) + Microsoft.NET.StringTools (>= 18.0.2) System.Configuration.ConfigurationManager (>= 9.0) System.Diagnostics.EventLog (>= 9.0) System.Reflection.MetadataLoadContext (>= 9.0) - System.Security.Cryptography.ProtectedData (>= 9.0) + System.Security.Cryptography.ProtectedData (>= 9.0.6) Microsoft.Build.Framework (18.0.2) Microsoft.Build.Utilities.Core (18.0.2) Microsoft.Build.Framework (>= 18.0.2) @@ -35,69 +36,51 @@ NUGET System.Configuration.ConfigurationManager (>= 9.0) System.Diagnostics.EventLog (>= 9.0) System.Security.Cryptography.ProtectedData (>= 9.0.6) - Microsoft.CodeAnalysis (4.14) + Microsoft.CodeAnalysis (5.0) Humanizer.Core (>= 2.14.1) Microsoft.Bcl.AsyncInterfaces (>= 9.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.CSharp.Workspaces (4.14) - Microsoft.CodeAnalysis.VisualBasic.Workspaces (4.14) - System.Buffers (>= 4.5.1) + Microsoft.CodeAnalysis.CSharp.Workspaces (5.0) + Microsoft.CodeAnalysis.VisualBasic.Workspaces (5.0) + System.Buffers (>= 4.6) System.Collections.Immutable (>= 9.0) System.Composition (>= 9.0) System.IO.Pipelines (>= 9.0) - System.Memory (>= 4.5.5) - System.Numerics.Vectors (>= 4.5) + System.Memory (>= 4.6) + System.Numerics.Vectors (>= 4.6) System.Reflection.Metadata (>= 9.0) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Encoding.CodePages (>= 7.0) - System.Threading.Channels (>= 7.0) - System.Threading.Tasks.Extensions (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 6.1) + System.Text.Encoding.CodePages (>= 8.0) + System.Threading.Channels (>= 8.0) + System.Threading.Tasks.Extensions (>= 4.6) Microsoft.CodeAnalysis.Analyzers (3.11) - Microsoft.CodeAnalysis.Common (4.14) + Microsoft.CodeAnalysis.Common (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.CSharp (4.14) + Microsoft.CodeAnalysis.CSharp (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.CSharp.Workspaces (4.14) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.CSharp.Workspaces (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - Microsoft.CodeAnalysis.CSharp (4.14) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.CSharp (5.0) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) - Microsoft.CodeAnalysis.VisualBasic (4.14) + Microsoft.CodeAnalysis.VisualBasic (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.VisualBasic.Workspaces (4.14) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.VisualBasic.Workspaces (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - Microsoft.CodeAnalysis.VisualBasic (4.14) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.VisualBasic (5.0) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) Microsoft.CodeCoverage (18.0.1) Microsoft.Extensions.ObjectPool (10.0) Microsoft.NET.StringTools (18.0.2) diff --git a/csharp/paket.main.bzl b/csharp/paket.main.bzl index 73919a76201..a9112bfda73 100644 --- a/csharp/paket.main.bzl +++ b/csharp/paket.main.bzl @@ -7,24 +7,24 @@ def main(): nuget_repo( name = "paket.main", packages = [ - {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.21", "sha512": "sha512-l+Qbzh3nVaLLwZYgv/v5zIEdprseLgxcprHBvbNBzOyer7m6XD/N5GJC+FPChnSP48kK1/p7Nj7mvQH8d5NOtA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.25", "sha512": "sha512-AU428QscGy1Z9eM4WqAqlO19pRIyHPZ+K63jgKX+sBWFzVLHMlyc97RVdm8VUAqVVBauS7kwaiA3S1sE/mBr4w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Humanizer.Core", "id": "Humanizer.Core", "version": "3.0.1", "sha512": "sha512-lcQ2HfNqHljfbalRLMKc8j4M0Og3qIvMSeyLp7KY58aCcgcZwiR0s5Uf2vrJ3p7OFGoWjcgbWATTpxqzrbuBSw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "10.0.0", "sha512": "sha512-3HqmWl57VHdP18TtKeRpM62/ACKgg58AEX9j1Zof+HA879/aGJ6s0WgngeLTEzlUAB9tRxm3kGfkIDJRV168BQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "10.0.0", "sha512": "sha512-gP4skrltie3xbrXIKZ0j8gnnT+MoslGYsC2Eqi3Ap9g3QSnu1KYp92d96cZZQ31VfvI1AYx/rEmSfCU2K6R2zg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "17.14.28", "sha512": "sha512-/J3DY36eYjSi/NYf/m4fS4HlxN8Zy+bCsopJUN0j4NNnrws4NR9ueWd0HKyhWEYYUa29Q1kjG1uKSGN1jBWg4g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "18.0.2", "sha512": "sha512-/rRET3AtEAUTKFDboKvp/GTDxGwU7VBBfwaKeZtzGg+pyqYdvasHeR3ERTuoxSrgJqnu1J23xd4H481IiJFhnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "18.0.2", "sha512": "sha512-cmXoGncAIrDZgu0NumtXJSTILv9NHU2sPhrlkckefMK1XCuJUrvClVxkmvQDpvm4sCKwSFolW2AanGCLNJ6xDw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "18.0.2", "sha512": "sha512-4f5DSPN/nLyGddOx2Etrjy42XFQ9tWeJ8lwJr/tLloRl/YRzT1kV+1txwRFXlav9V93wMOUrwMQqpnd131Sb+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework"], "net462": ["Microsoft.Build.Framework"], "net47": ["Microsoft.Build.Framework"], "net471": ["Microsoft.Build.Framework"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework"], "net6.0": ["Microsoft.Build.Framework"], "net7.0": ["Microsoft.Build.Framework"], "net8.0": ["Microsoft.Build.Framework"], "net9.0": ["Microsoft.Build.Framework"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework"], "netcoreapp2.1": ["Microsoft.Build.Framework"], "netcoreapp2.2": ["Microsoft.Build.Framework"], "netcoreapp3.0": ["Microsoft.Build.Framework"], "netcoreapp3.1": ["Microsoft.Build.Framework"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework"], "netstandard2.1": ["Microsoft.Build.Framework"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "4.14.0", "sha512": "sha512-eNBbL927Lc1Nh24ElWJmlGA928O9tu4mgWGOqmMFe6sskqQWCdnronCrrzwUdhBsBIjfx898MOCMOXuZQMtqOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "5.0.0", "sha512": "sha512-ToXzcZLcHA9vT4e1A6jNafAPuTJj4osfqJck562Be8ByvzS78pY9I+SdO5yo2Kwka0lz++hOWypW1Qdf1TtR4w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.11.0", "sha512": "sha512-tP9SLzLK72XCExlh8KXfrKbU6ycmZL3ExGl/a3Ml7LNy2Uaam7gFjjUmdzyTYkMXTyckCHHpzx7bD6BMumh8Bg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.14.0", "sha512": "sha512-k9AIzOrtcZVqr9+lmcEW0vY80emyXx5JB/757K0HUF96GeUeiTD+djOlFF2y7k4XPZo20Lru4tDgQos+VKBr0w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.14.0", "sha512": "sha512-kqS2NihVvNQHxzLePtyYiiJmFzoYO9Wm46O9DhfUgIIf5NwTbvSy66kV9EM+qAHmGpi7zQy4w8JU6DFnPlAyTA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "4.14.0", "sha512": "sha512-q9VD/wqMEGW0S5WIKuTZ4Wr9EpsZJQrQxqCodxjlsfW0bWl7mOQ4zA7k0Nf80ZrEe7Edaz6+3SBvrALiUcaHzA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "4.14.0", "sha512": "sha512-vXhNyQk07THoSHzsu/fM48tFFHYAZQumfT7uDJuL/5ZO4CRgJK9Zr6UOJOwX1Df8N//lRMeymYyT+qiAmnWiYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "4.14.0", "sha512": "sha512-LZMVjjbRTcKOtgVDz/sZn+AXBNGL4iKYnWwu5eOvvRcdXaLNlOA7bYtTZOnSMlqig7b/3gMzkoaLqcJ+7hgddg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "4.14.0", "sha512": "sha512-m/c+FWBNr/JgCYRJ/jh14U9oAtPxHTgDiujb+19QG1AA3KMNZed+UQ51PRSaOt9CbIoMubZp2AkUMSeioz4EHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "5.0.0", "sha512": "sha512-uK5yslTJQ2UznzYlttFuDCa/6KruN1aQW/ZNFFHvK+yyA6q7vZ5o0BSPvLj+Com1/R7wGJ07c2O0lPcbDrmQdw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "5.0.0", "sha512": "sha512-wwT/CJOQyQ72Ldouy7gjS/3Vi92hbAAoU3Y0e/6mb39+Vp7aXr3PxuBD73U2QrK1zzgTyv3QhvJPrQX0EiWS8Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "5.0.0", "sha512": "sha512-Fy0BNxco9b7XC7LKdTgq+Kk62HKapyEM05LN5ua3Nt6PZ4pzfAAh+9Dg/VW4aSflgYoiQw/mjnotgUuM9NP6Kw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "5.0.0", "sha512": "sha512-jGrTRyHgUXYd0iH1wF4svuGnB/3kPerq+iIbaLq5XpNv2+3hbZPyyDla+k/Ylpur6+9ZsDoP0ymhribbgXLmYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "5.0.0", "sha512": "sha512-sgWa3mUtCHIfPcSCyKKksrZNlYnmKWeivbZdENrPLTJQXiKXCjFcVYaxRvGBcYeAQES5J63iV03XVviSkJyMqQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "5.0.0", "sha512": "sha512-zbKJyIkFW+2Bx5eQl/IWBLmbPTpo9/UyAbt8vaVTXsoi4EYlXrJftCRZmUsmyQP7pg3qKMiR6czPdUjTadNkhA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.1", "sha512": "sha512-0bzrz+vR49E/jtdBySXaJSPP4plwnMHE2qsyJZgZJuDdIOtLUFswInVa7krxIVz2ur6KJZFdTPXr3WMXfgnDNg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.0", "sha512": "sha512-c9pc0Jh0Sm3hl+y5qTwyJ1weldQt3C73SwPFhalL4gTWGxQGo5XFGVvy5nNqsOH5tXYePwcjuCEoJXi/nI6nYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "18.0.2", "sha512": "sha512-s9BywFgRKhPV5OyY2t2EMQXfoDrvYSEzX4bHaWkZ/PwYJnxbxmLEqA/dh8MQ2mUOq48sGr3hbkgnghZQHeZc7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, From d97b9f532a4a4bd76b46a27c69127c3270009aaf Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Dec 2025 09:51:25 +0100 Subject: [PATCH 090/194] C#: Update example to use a type that calls an implicit (library) conversion operator. --- .../ql/test/library-tests/csharp7.3/PrintAst.expected | 4 ++-- .../library-tests/dataflow/local/DataFlowStep.expected | 8 ++++---- .../test/library-tests/dataflow/local/LocalDataFlow.cs | 4 ++-- .../dataflow/local/TaintTrackingStep.expected | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected index 29ad30dc223..b3fa3781436 100644 --- a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected @@ -75,8 +75,8 @@ csharp73.cs: # 22| -1: [TypeMention] Span # 22| 1: [TypeMention] int # 22| 0: [LocalVariableAccess] access to local variable t -# 22| 1: [OperatorCall] call to operator implicit conversion -# 22| 0: [ArrayCreation] array creation of type Int32[] +# 22| 1: [CastExpr] (...) ... +# 22| 1: [ArrayCreation] array creation of type Int32[] # 22| -1: [TypeMention] Int32[] # 22| 1: [TypeMention] int # 22| 0: [IntLiteral] 10 diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 16e0aa842c5..861e4c519a8 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -507,11 +507,11 @@ | LocalDataFlow.cs:353:21:353:21 | access to parameter x | LocalDataFlow.cs:353:16:353:21 | ... = ... | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:29 | access to local variable os2 | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:34 | ... = ... | -| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:363:29:363:32 | access to parameter args | +| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:364:27:364:30 | access to parameter args | | LocalDataFlow.cs:361:41:361:44 | args | LocalDataFlow.cs:361:41:361:44 | SSA param(args) | -| LocalDataFlow.cs:363:29:363:32 | [post] access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | LocalDataFlow.cs:363:22:363:25 | access to local variable span | +| LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | LocalDataFlow.cs:363:30:363:31 | access to parameter dt | +| LocalDataFlow.cs:361:56:361:57 | dt | LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | +| LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | LocalDataFlow.cs:363:24:363:26 | access to local variable dto | | LocalDataFlow.cs:364:27:364:30 | call to operator implicit conversion | LocalDataFlow.cs:364:23:364:23 | access to local variable x | | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | LocalDataFlow.cs:371:13:371:14 | access to parameter b1 | | LocalDataFlow.cs:367:23:367:24 | b1 | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | diff --git a/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs b/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs index 900a2161715..53b6165dd75 100644 --- a/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs @@ -358,9 +358,9 @@ public class LocalDataFlow public static implicit operator LocalDataFlow(string[] args) => null; - public void ConversionFlow(string[] args) + public void ConversionFlow(string[] args, DateTime dt) { - Span span = args; // flow (library operator) + DateTimeOffset dto = dt; // flow (library operator) LocalDataFlow x = args; // no flow (source code operator) } diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 2dc753a1889..b2d395d4b83 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -618,12 +618,12 @@ | LocalDataFlow.cs:353:21:353:21 | access to parameter x | LocalDataFlow.cs:353:16:353:21 | ... = ... | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:29 | access to local variable os2 | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:34 | ... = ... | -| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:363:29:363:32 | access to parameter args | +| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:364:27:364:30 | access to parameter args | | LocalDataFlow.cs:361:41:361:44 | args | LocalDataFlow.cs:361:41:361:44 | SSA param(args) | -| LocalDataFlow.cs:363:29:363:32 | [post] access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | LocalDataFlow.cs:363:22:363:25 | access to local variable span | +| LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | LocalDataFlow.cs:363:30:363:31 | access to parameter dt | +| LocalDataFlow.cs:361:56:361:57 | dt | LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | +| LocalDataFlow.cs:363:30:363:31 | access to parameter dt | LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | +| LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | LocalDataFlow.cs:363:24:363:26 | access to local variable dto | | LocalDataFlow.cs:364:27:364:30 | call to operator implicit conversion | LocalDataFlow.cs:364:23:364:23 | access to local variable x | | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | LocalDataFlow.cs:371:13:371:14 | access to parameter b1 | | LocalDataFlow.cs:367:23:367:24 | b1 | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | From 45cd8e94cd9163efa3db12850ce348aca5302b17 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Dec 2025 10:19:53 +0100 Subject: [PATCH 091/194] C#: Update test example (field is now a reserved word). --- csharp/ql/test/library-tests/csharp7/CSharp7.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/ql/test/library-tests/csharp7/CSharp7.cs b/csharp/ql/test/library-tests/csharp7/CSharp7.cs index c17b4164120..d067dc66a4d 100644 --- a/csharp/ql/test/library-tests/csharp7/CSharp7.cs +++ b/csharp/ql/test/library-tests/csharp7/CSharp7.cs @@ -11,13 +11,13 @@ class Literals class ExpressionBodiedMembers { - int field = 0; - int Foo() => field; + int @field = 0; + int Foo() => @field; int P => 5; int Q { get => Foo(); - set => field = value; + set => @field = value; } ExpressionBodiedMembers() : this(1) { } ExpressionBodiedMembers(int x) => Foo(); From ee5c291c9d5c30eda12b7156d1ed583572d8c3a6 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Dec 2025 10:21:11 +0100 Subject: [PATCH 092/194] C#: Update test expected output. --- .../ql/test/library-tests/csharp7/DefUse.expected | 2 +- .../csharp7/ExpressionBodies.expected | 4 ++-- .../library-tests/csharp7/LocalTaintFlow.expected | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/csharp/ql/test/library-tests/csharp7/DefUse.expected b/csharp/ql/test/library-tests/csharp7/DefUse.expected index fb55afb5e51..ac466f9e865 100644 --- a/csharp/ql/test/library-tests/csharp7/DefUse.expected +++ b/csharp/ql/test/library-tests/csharp7/DefUse.expected @@ -1,4 +1,4 @@ -| CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:24:20:28 | access to parameter value | +| CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:25:20:29 | access to parameter value | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:31:16:31:16 | access to parameter i | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:31:24:31:24 | access to parameter i | | CSharp7.cs:42:19:42:19 | x | CSharp7.cs:44:13:44:13 | access to parameter x | diff --git a/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected b/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected index fcba5499d77..c2575373d51 100644 --- a/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected +++ b/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected @@ -1,7 +1,7 @@ -| CSharp7.cs:15:9:15:11 | Foo | CSharp7.cs:15:18:15:22 | access to field field | +| CSharp7.cs:15:9:15:11 | Foo | CSharp7.cs:15:18:15:23 | access to field field | | CSharp7.cs:16:14:16:14 | get_P | CSharp7.cs:16:14:16:14 | 5 | | CSharp7.cs:19:9:19:11 | get_Q | CSharp7.cs:19:16:19:20 | call to method Foo | -| CSharp7.cs:20:9:20:11 | set_Q | CSharp7.cs:20:16:20:28 | ... = ... | +| CSharp7.cs:20:9:20:11 | set_Q | CSharp7.cs:20:16:20:29 | ... = ... | | CSharp7.cs:23:5:23:27 | ExpressionBodiedMembers | CSharp7.cs:23:39:23:43 | call to method Foo | | CSharp7.cs:24:6:24:28 | ~ExpressionBodiedMembers | CSharp7.cs:24:35:24:39 | call to method Foo | | CSharp7.cs:135:9:135:22 | f3 | CSharp7.cs:135:21:135:21 | 2 | diff --git a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected index a37109c8481..ebe04faf725 100644 --- a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected @@ -7,15 +7,15 @@ | CSharp7.cs:8:9:8:9 | this access | CSharp7.cs:9:9:9:9 | this access | | CSharp7.cs:8:13:8:19 | 123456 | CSharp7.cs:8:9:8:9 | access to field y | | CSharp7.cs:9:13:9:23 | 128 | CSharp7.cs:9:9:9:9 | access to field z | -| CSharp7.cs:12:7:12:29 | this | CSharp7.cs:14:9:14:13 | this access | -| CSharp7.cs:14:17:14:17 | 0 | CSharp7.cs:14:9:14:13 | access to field field | -| CSharp7.cs:15:9:15:11 | SSA entry def(this.field) | CSharp7.cs:15:18:15:22 | access to field field | -| CSharp7.cs:15:9:15:11 | this | CSharp7.cs:15:18:15:22 | this access | +| CSharp7.cs:12:7:12:29 | this | CSharp7.cs:14:9:14:14 | this access | +| CSharp7.cs:14:18:14:18 | 0 | CSharp7.cs:14:9:14:14 | access to field field | +| CSharp7.cs:15:9:15:11 | SSA entry def(this.field) | CSharp7.cs:15:18:15:23 | access to field field | +| CSharp7.cs:15:9:15:11 | this | CSharp7.cs:15:18:15:23 | this access | | CSharp7.cs:19:9:19:11 | this | CSharp7.cs:19:16:19:20 | this access | -| CSharp7.cs:20:9:20:11 | SSA param(value) | CSharp7.cs:20:24:20:28 | access to parameter value | -| CSharp7.cs:20:9:20:11 | this | CSharp7.cs:20:16:20:20 | this access | +| CSharp7.cs:20:9:20:11 | SSA param(value) | CSharp7.cs:20:25:20:29 | access to parameter value | +| CSharp7.cs:20:9:20:11 | this | CSharp7.cs:20:16:20:21 | this access | | CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:9:20:11 | SSA param(value) | -| CSharp7.cs:20:24:20:28 | access to parameter value | CSharp7.cs:20:16:20:20 | access to field field | +| CSharp7.cs:20:25:20:29 | access to parameter value | CSharp7.cs:20:16:20:21 | access to field field | | CSharp7.cs:23:5:23:27 | [post] this access | CSharp7.cs:23:39:23:43 | this access | | CSharp7.cs:23:5:23:27 | this | CSharp7.cs:23:5:23:27 | this access | | CSharp7.cs:23:5:23:27 | this access | CSharp7.cs:23:39:23:43 | this access | From 298e8f0c580c568f55a07055d41c250179898567 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Dec 2025 14:00:20 +0100 Subject: [PATCH 093/194] C#: Bugfix in the implicittostring. Need to handle the ReadOnlySpan params overload for string.Format. --- csharp/ql/lib/semmle/code/csharp/commons/Strings.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll index 908d1c2fb5a..bdf9e558539 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll @@ -3,6 +3,7 @@ */ import csharp +private import semmle.code.csharp.commons.Collections private import semmle.code.csharp.frameworks.Format private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.system.Text @@ -33,7 +34,7 @@ class ImplicitToStringExpr extends Expr { or p instanceof StringFormatItemParameter and not p.getType() = - any(ArrayType at | + any(ParamsCollectionType at | at.getElementType() instanceof ObjectType and this.getType().isImplicitlyConvertibleTo(at) ) From fa76d3555a51f9240d12432c589add42f21ce73d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Dec 2025 14:02:53 +0100 Subject: [PATCH 094/194] C#: Update launch.json to point to .NET 10. --- csharp/.vscode/launch.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/.vscode/launch.json b/csharp/.vscode/launch.json index 75d27e6708e..3bdd256da0c 100644 --- a/csharp/.vscode/launch.json +++ b/csharp/.vscode/launch.json @@ -6,7 +6,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net9.0/Semmle.Extraction.CSharp.Standalone.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net10.0/Semmle.Extraction.CSharp.Standalone.dll", "args": [], // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/test/library-tests/standalone/standalonemode", @@ -35,7 +35,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net9.0/Semmle.Autobuild.CSharp.dll", + "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net10.0/Semmle.Autobuild.CSharp.dll", // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/integration-tests/all-platforms/autobuild", "stopAtEntry": true, @@ -53,7 +53,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net9.0/Semmle.Extraction.CSharp.Driver.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net10.0/Semmle.Extraction.CSharp.Driver.dll", "stopAtEntry": true, "args": [ "--binlog", @@ -66,7 +66,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net9.0/Semmle.Extraction.CSharp.Driver.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net10.0/Semmle.Extraction.CSharp.Driver.dll", // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/test/library-tests/dataflow/local", "args": [ From 5650c87c5548e7fbb076eb3eabd7051764393704 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 10 Dec 2025 13:34:53 +0100 Subject: [PATCH 095/194] Swift: Update to Swift 6.2.2 --- swift/third_party/load.bzl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index d19345a1880..1632ce4d743 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,6 +5,10 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main + "swift-prebuilt-macOS-swift-6.2.2-RELEASE-136.tar.zst": "4b5e8997a99155330871e146288a8947fa224ba05e54539c795f21c082c7a940", + "swift-prebuilt-Linux-swift-6.2.2-RELEASE-136.tar.zst": "b5efba3953668d02a15b74bcf637831be99824702cfd74ac8cf53b31d89a4f2a", + "resource-dir-macOS-swift-6.2.2-RELEASE-136.zip": "b5e4bfbfaf1c9bae0bff0580797803a05328c08fffee47de406a5fa6cd7e19c7", + "resource-dir-Linux-swift-6.2.2-RELEASE-136.zip": "9d2aa88f3f9e2ff181a9c9607f95804b959fb334947cf72c566666b3be98ff2e", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From 0673c2d82be9c16bf07203933ccbea58d545b7d3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 11 Dec 2025 12:55:43 +0100 Subject: [PATCH 096/194] Swift: Update resources to Swift 6.2.2 --- swift/third_party/load.bzl | 4 ---- swift/third_party/resources/resource-dir-linux.zip | 4 ++-- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- swift/third_party/resources/swift-prebuilt-linux.tar.zst | 4 ++-- swift/third_party/resources/swift-prebuilt-macos.tar.zst | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index 1632ce4d743..d19345a1880 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,10 +5,6 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main - "swift-prebuilt-macOS-swift-6.2.2-RELEASE-136.tar.zst": "4b5e8997a99155330871e146288a8947fa224ba05e54539c795f21c082c7a940", - "swift-prebuilt-Linux-swift-6.2.2-RELEASE-136.tar.zst": "b5efba3953668d02a15b74bcf637831be99824702cfd74ac8cf53b31d89a4f2a", - "resource-dir-macOS-swift-6.2.2-RELEASE-136.zip": "b5e4bfbfaf1c9bae0bff0580797803a05328c08fffee47de406a5fa6cd7e19c7", - "resource-dir-Linux-swift-6.2.2-RELEASE-136.zip": "9d2aa88f3f9e2ff181a9c9607f95804b959fb334947cf72c566666b3be98ff2e", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index 970660d813f..21f02672b1b 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e08f6da9166c36d8cc1bb6c3c80f18664feade81ae193daeaada5a9a009748b0 -size 385198654 +oid sha256:9d2aa88f3f9e2ff181a9c9607f95804b959fb334947cf72c566666b3be98ff2e +size 385200751 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index c802f6fab29..1a059eda5ef 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7505fccfe0a537b1583b754fbdd0720415cd9c5e076b542be0d4ec976c955c8 -size 613718859 +oid sha256:b5e4bfbfaf1c9bae0bff0580797803a05328c08fffee47de406a5fa6cd7e19c7 +size 613729529 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 1f1dba6a974..2770d5be19f 100644 --- a/swift/third_party/resources/swift-prebuilt-linux.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-linux.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1aa54c08025679cea2128499040790c4792debcbe214144b099469debe0d488d -size 132780711 +oid sha256:b5efba3953668d02a15b74bcf637831be99824702cfd74ac8cf53b31d89a4f2a +size 132824388 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index c66199543e1..7121b9743a5 100644 --- a/swift/third_party/resources/swift-prebuilt-macos.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-macos.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5b96fe3e221accd9435f40dbd123d388c3418e1e451751ffd6e67339b063cf7 -size 115298493 +oid sha256:4b5e8997a99155330871e146288a8947fa224ba05e54539c795f21c082c7a940 +size 115298351 From a820c49a0d64f0391167f716292ff8c475db5ca0 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 11 Dec 2025 12:58:38 +0100 Subject: [PATCH 097/194] Swift: Add change note --- swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md diff --git a/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md b/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md new file mode 100644 index 00000000000..27927802dba --- /dev/null +++ b/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.2.2. \ No newline at end of file From 24417cf93dbf367de98d05cc477fed460e92aa15 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 13:15:29 +0100 Subject: [PATCH 098/194] C#: Add change-note. --- csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md diff --git a/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md b/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md new file mode 100644 index 00000000000..d15a55a7eb4 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and `build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. From fac84ee9f3a451359db6da9908f4dfc63b8bf6fc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 11 Dec 2025 11:58:25 +0100 Subject: [PATCH 099/194] C#: Add `NHibernate` SQL sinks --- csharp/ql/lib/ext/NHibernate.model.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 csharp/ql/lib/ext/NHibernate.model.yml diff --git a/csharp/ql/lib/ext/NHibernate.model.yml b/csharp/ql/lib/ext/NHibernate.model.yml new file mode 100644 index 00000000000..472374cfbc3 --- /dev/null +++ b/csharp/ql/lib/ext/NHibernate.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: sinkModel + data: + - ["NHibernate", "ISession", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] + - ["NHibernate", "IStatelessSession", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] + - ["NHibernate.Impl", "AbstractSessionImpl", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] \ No newline at end of file From 776f6cd56f172979d65cc1f6e0749dc509896e42 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 11 Dec 2025 13:14:44 +0100 Subject: [PATCH 100/194] C#: Add NHibernate SQL injection tests --- .../CWE-089/SqlInjection.expected | 139 ++++++++++-------- .../CWE-089/SqlInjectionNHibernate.cs | 24 +++ .../Security Features/CWE-089/options | 1 + 3 files changed, 105 insertions(+), 59 deletions(-) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected index 238cbd0bc3b..9d54fb1cdd7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected @@ -17,6 +17,9 @@ | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | this TextBox text | | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | this TextBox text | | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | this TextBox text | +| SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | this ASP.NET user input | +| SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | this ASP.NET user input | +| SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | this ASP.NET user input | @@ -27,43 +30,43 @@ edges | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | provenance | | | SecondOrderSqlInjection.cs:20:48:20:78 | call to method ExecuteReader : SqlDataReader | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | provenance | | -| SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | provenance | MaD:23 | -| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | provenance | Sink:MaD:15 | +| SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | provenance | MaD:26 | +| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | provenance | Sink:MaD:18 | | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | provenance | | -| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:19 | -| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:18 | +| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:22 | +| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:21 | | SecondOrderSqlInjection.cs:35:37:35:38 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | provenance | | | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | SecondOrderSqlInjection.cs:35:37:35:38 | access to local variable sr : StreamReader | provenance | | -| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | provenance | MaD:25 | +| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | provenance | MaD:28 | | SecondOrderSqlInjection.cs:38:29:38:31 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | provenance | | -| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | provenance | MaD:26 | +| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | provenance | MaD:29 | | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | SecondOrderSqlInjection.cs:38:29:38:31 | access to local variable sql : String | provenance | | -| SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | provenance | Sink:MaD:10 | -| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | provenance | MaD:28 | +| SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | provenance | Sink:MaD:13 | +| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | provenance | MaD:31 | | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | provenance | | -| SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | SqlInjection.cs:39:50:39:55 | access to local variable query1 | provenance | Sink:MaD:17 | -| SqlInjection.cs:38:21:38:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:38:21:38:40 | access to property Text : String | provenance | MaD:27 | +| SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | SqlInjection.cs:39:50:39:55 | access to local variable query1 | provenance | Sink:MaD:20 | +| SqlInjection.cs:38:21:38:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:38:21:38:40 | access to property Text : String | provenance | MaD:30 | | SqlInjection.cs:38:21:38:40 | access to property Text : String | SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:74:56:74:61 | access to local variable query1 | provenance | Sink:MaD:7 | -| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:75:55:75:60 | access to local variable query1 | provenance | Sink:MaD:8 | -| SqlInjection.cs:73:33:73:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:73:33:73:52 | access to property Text : String | provenance | MaD:27 | +| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:74:56:74:61 | access to local variable query1 | provenance | Sink:MaD:10 | +| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:75:55:75:60 | access to local variable query1 | provenance | Sink:MaD:11 | +| SqlInjection.cs:73:33:73:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:73:33:73:52 | access to property Text : String | provenance | MaD:30 | | SqlInjection.cs:73:33:73:52 | access to property Text : String | SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | SqlInjection.cs:88:50:88:55 | access to local variable query1 | provenance | Sink:MaD:17 | +| SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | SqlInjection.cs:88:50:88:55 | access to local variable query1 | provenance | Sink:MaD:20 | | SqlInjection.cs:87:21:87:29 | access to property Text : String | SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString | provenance | Sink:MaD:14 | +| SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString | provenance | Sink:MaD:17 | | SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | provenance | | | SqlInjection.cs:97:21:97:29 | access to property Text : String | SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | provenance | | -| SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:99:50:99:52 | access to local variable cmd | provenance | Sink:MaD:16 | +| SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:99:50:99:52 | access to local variable cmd | provenance | Sink:MaD:19 | | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | provenance | | -| SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:22 | -| SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString | provenance | Sink:MaD:14 | +| SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:25 | +| SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString | provenance | Sink:MaD:17 | | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | provenance | | -| SqlInjection.cs:108:21:108:38 | call to method ReadLine : String | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | provenance | Src:MaD:20 | -| SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:110:50:110:52 | access to local variable cmd | provenance | Sink:MaD:16 | +| SqlInjection.cs:108:21:108:38 | call to method ReadLine : String | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | provenance | Src:MaD:23 | +| SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:110:50:110:52 | access to local variable cmd | provenance | Sink:MaD:19 | | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | provenance | | -| SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:22 | +| SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:25 | | SqlInjection.cs:122:73:122:78 | userId : String | SqlInjection.cs:125:20:125:24 | access to local variable query : String | provenance | | -| SqlInjection.cs:125:20:125:24 | access to local variable query : String | SqlInjection.cs:129:53:129:57 | access to local variable query | provenance | Sink:MaD:15 | +| SqlInjection.cs:125:20:125:24 | access to local variable query : String | SqlInjection.cs:129:53:129:57 | access to local variable query | provenance | Sink:MaD:18 | | SqlInjectionDapper.cs:20:21:20:25 | access to local variable query : String | SqlInjectionDapper.cs:21:55:21:59 | access to local variable query | provenance | Sink:MaD:4 | | SqlInjectionDapper.cs:20:86:20:94 | access to property Text : String | SqlInjectionDapper.cs:20:21:20:25 | access to local variable query : String | provenance | | | SqlInjectionDapper.cs:29:21:29:25 | access to local variable query : String | SqlInjectionDapper.cs:30:66:30:70 | access to local variable query | provenance | Sink:MaD:5 | @@ -78,27 +81,36 @@ edges | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:66:21:66:25 | access to local variable query : String | provenance | | | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | provenance | | | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | provenance | | -| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | provenance | MaD:27 Sink:MaD:9 | -| SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | provenance | Sink:MaD:11 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | provenance | MaD:30 Sink:MaD:12 | +| SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | provenance | Sink:MaD:14 | | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | provenance | | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | provenance | MaD:27 Sink:MaD:10 | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | provenance | MaD:27 | -| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | provenance | MaD:21 | -| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | provenance | MaD:27 Sink:MaD:12 | -| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | provenance | MaD:27 Sink:MaD:13 | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | provenance | MaD:30 Sink:MaD:13 | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | provenance | MaD:30 | +| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | provenance | MaD:24 | +| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | provenance | MaD:30 Sink:MaD:15 | +| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | provenance | MaD:30 Sink:MaD:16 | | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | provenance | | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:19 | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:18 | -| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | provenance | MaD:27 | -| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | provenance | MaD:24 | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:22 | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:21 | +| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | provenance | MaD:30 | +| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | provenance | MaD:27 | | SqlInjectionSqlite.cs:51:37:51:38 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | provenance | | | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:51:37:51:38 | access to local variable sr : StreamReader | provenance | | -| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | MaD:25 | +| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | MaD:28 | | SqlInjectionSqlite.cs:54:29:54:31 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | provenance | | -| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | MaD:26 | +| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | MaD:29 | | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:54:29:54:31 | access to local variable sql : String | provenance | | -| SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | Sink:MaD:10 | -| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | MaD:28 | +| SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | Sink:MaD:13 | +| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | MaD:31 | | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | provenance | | models | 1 | Sink: Dapper; SqlMapper; false; ExecuteAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | @@ -107,28 +119,31 @@ models | 4 | Sink: Dapper; SqlMapper; false; Query; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Boolean,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | | 5 | Sink: Dapper; SqlMapper; false; QueryAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | | 6 | Sink: Dapper; SqlMapper; false; QueryFirstAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | -| 7 | Sink: System.Data.Entity; Database; false; ExecuteSqlCommand; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | -| 8 | Sink: System.Data.Entity; Database; false; SqlQuery; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | -| 9 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String); ; Argument[0]; sql-injection; manual | -| 10 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | -| 11 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.Data.SQLite.SQLiteCommand); ; Argument[0]; sql-injection; manual | -| 12 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | -| 13 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.String); ; Argument[0]; sql-injection; manual | -| 14 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; sql-injection; manual | -| 15 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | -| 16 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.Data.SqlClient.SqlCommand); ; Argument[0]; sql-injection; manual | -| 17 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | -| 18 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file-write; manual | -| 19 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file; manual | -| 20 | Source: System; Console; false; ReadLine; ; ; ReturnValue; stdin; manual | -| 21 | Summary: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; Argument[this]; taint; manual | -| 22 | Summary: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; Argument[this]; taint; manual | -| 23 | Summary: System.Data; IDataRecord; true; GetString; (System.Int32); ; Argument[this]; ReturnValue; taint; manual | -| 24 | Summary: System.IO; FileStream; false; FileStream; (System.String,System.IO.FileMode); ; Argument[0]; Argument[this]; taint; manual | -| 25 | Summary: System.IO; StreamReader; false; StreamReader; (System.IO.Stream,System.Text.Encoding); ; Argument[0]; Argument[this]; taint; manual | -| 26 | Summary: System.IO; TextReader; true; ReadLine; (); ; Argument[this]; ReturnValue; taint; manual | -| 27 | Summary: System.Web.UI.WebControls; TextBox; false; get_Text; (); ; Argument[this]; ReturnValue; taint; manual | -| 28 | Summary: System; String; false; Trim; (); ; Argument[this]; ReturnValue; taint; manual | +| 7 | Sink: NHibernate.Impl; AbstractSessionImpl; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 8 | Sink: NHibernate; ISession; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 9 | Sink: NHibernate; IStatelessSession; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 10 | Sink: System.Data.Entity; Database; false; ExecuteSqlCommand; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | +| 11 | Sink: System.Data.Entity; Database; false; SqlQuery; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | +| 12 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String); ; Argument[0]; sql-injection; manual | +| 13 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | +| 14 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.Data.SQLite.SQLiteCommand); ; Argument[0]; sql-injection; manual | +| 15 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | +| 16 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.String); ; Argument[0]; sql-injection; manual | +| 17 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; sql-injection; manual | +| 18 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | +| 19 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.Data.SqlClient.SqlCommand); ; Argument[0]; sql-injection; manual | +| 20 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | +| 21 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file-write; manual | +| 22 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file; manual | +| 23 | Source: System; Console; false; ReadLine; ; ; ReturnValue; stdin; manual | +| 24 | Summary: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; Argument[this]; taint; manual | +| 25 | Summary: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; Argument[this]; taint; manual | +| 26 | Summary: System.Data; IDataRecord; true; GetString; (System.Int32); ; Argument[this]; ReturnValue; taint; manual | +| 27 | Summary: System.IO; FileStream; false; FileStream; (System.String,System.IO.FileMode); ; Argument[0]; Argument[this]; taint; manual | +| 28 | Summary: System.IO; StreamReader; false; StreamReader; (System.IO.Stream,System.Text.Encoding); ; Argument[0]; Argument[this]; taint; manual | +| 29 | Summary: System.IO; TextReader; true; ReadLine; (); ; Argument[this]; ReturnValue; taint; manual | +| 30 | Summary: System.Web.UI.WebControls; TextBox; false; get_Text; (); ; Argument[this]; ReturnValue; taint; manual | +| 31 | Summary: System; String; false; Trim; (); ; Argument[this]; ReturnValue; taint; manual | nodes | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | semmle.label | access to local variable customerReader : SqlDataReader | | SecondOrderSqlInjection.cs:20:48:20:78 | call to method ExecuteReader : SqlDataReader | semmle.label | call to method ExecuteReader : SqlDataReader | @@ -197,6 +212,12 @@ nodes | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | semmle.label | access to local variable query : String | | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | semmle.label | access to property Text : String | | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | semmle.label | access to local variable query | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | semmle.label | access to property Text | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | semmle.label | access to property Text | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | semmle.label | access to property Text | | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | semmle.label | access to property Text | | SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | semmle.label | access to local variable cmd : SQLiteCommand | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs new file mode 100644 index 00000000000..3493891abb2 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs @@ -0,0 +1,24 @@ +using System; + +namespace TestNHibernate +{ + using System.Data; + using System.IO; + using System.Text; + using System.Web.UI.WebControls; + + class SqlInjection + { + private string connectionString; + public TextBox untrustedData; + + public void InjectUntrustedData(NHibernate.ISession session, NHibernate.IStatelessSession statelessSession, NHibernate.Impl.AbstractSessionImpl impl) + { + session.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + + statelessSession.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + + impl.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + } + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/options b/csharp/ql/test/query-tests/Security Features/CWE-089/options index 77da3f8c8fb..7cdc544e958 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/options @@ -4,3 +4,4 @@ semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resour semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/NHibernate/5.5.2/NHibernate.csproj From 2fd4516c258abcf93619c9bdc42f09955e889521 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 11 Dec 2025 13:37:56 +0100 Subject: [PATCH 101/194] C#: Adjust log levels in `FilePathFilter.cs` --- .../FilePathFilter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs index 1a1e9934e8c..e33e6703b43 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs @@ -55,12 +55,12 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } else { - logger.LogInfo($"Invalid filter: {filter}"); + logger.LogWarning($"Invalid filter: {filter}"); continue; } var regex = new FilePattern(filterText).RegexPattern; - logger.LogInfo($"Filtering {(include ? "in" : "out")} files matching '{regex}'. Original glob filter: '{filter}'"); + logger.LogDebug($"Filtering {(include ? "in" : "out")} files matching '{regex}'. Original glob filter: '{filter}'"); pathFilters.Add(new PathFilter(new Regex(regex, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline), include)); } @@ -91,7 +91,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching if (!include) { - logger.LogInfo($"Excluding '{f.FileInfo.FullName}'"); + logger.LogDebug($"Excluding '{f.FileInfo.FullName}'"); } return include; From a06021810978b8b65032efbe4e4d740e9488cdc4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 11 Dec 2025 13:43:52 +0100 Subject: [PATCH 102/194] Add change note --- csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md diff --git a/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md b/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md new file mode 100644 index 00000000000..c2ce476dd7a --- /dev/null +++ b/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added `NHibernate.ISession.CreateSQLQuery`, `NHibernate.IStatelessSession.CreateSQLQuery` and `NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. \ No newline at end of file From adac3926a185f4c95050121d57d4b8d9f4d1b0dc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 9 Dec 2025 10:38:01 +0100 Subject: [PATCH 103/194] C#: Remove `PreSsa` library --- .../semmle/code/csharp/controlflow/Guards.qll | 193 ++++----------- .../csharp/controlflow/internal/PreSsa.qll | 221 ------------------ .../csharp/controlflow/internal/Splitting.qll | 7 - .../code/csharp/dataflow/internal/BaseSSA.qll | 43 +++- .../code/csharp/dataflow/internal/SsaImpl.qll | 4 +- .../dataflow/defuse/defUseEquivalence.ql | 4 +- .../defuse/parameterUseEquivalence.ql | 4 +- .../dataflow/defuse/useUseEquivalence.ql | 4 +- .../dataflow/ssa/PreSsaConsistency.expected | 3 - .../dataflow/ssa/PreSsaConsistency.ql | 99 -------- 10 files changed, 95 insertions(+), 487 deletions(-) delete mode 100644 csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll delete mode 100644 csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected delete mode 100644 csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index f61d7f9c3a7..414cfc2d50a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -842,6 +842,40 @@ module Internal { e3 = any(NullCoalescingExpr nce | e1 = nce.getLeftOperand() and e2 = nce.getRightOperand()) } + predicate nullValueImplied(Expr e) { + nullValue(e) + or + exists(Expr e1 | nullValueImplied(e1) and nullValueImpliedUnary(e1, e)) + or + exists(Expr e1, Expr e2 | + nullValueImplied(e1) and nullValueImplied(e2) and nullValueImpliedBinary(e1, e2, e) + ) + or + e = + any(Ssa::Definition def | + forex(Ssa::Definition u | u = def.getAnUltimateDefinition() | nullDef(u)) + ).getARead() + } + + private predicate nullDef(Ssa::ExplicitDefinition def) { + nullValueImplied(def.getADefinition().getSource()) + } + + predicate nonNullValueImplied(Expr e) { + nonNullValue(e) + or + exists(Expr e1 | nonNullValueImplied(e1) and nonNullValueImpliedUnary(e1, e)) + or + e = + any(Ssa::Definition def | + forex(Ssa::Definition u | u = def.getAnUltimateDefinition() | nonNullDef(u)) + ).getARead() + } + + private predicate nonNullDef(Ssa::ExplicitDefinition def) { + nonNullValueImplied(def.getADefinition().getSource()) + } + /** A callable that always returns a non-`null` value. */ private class NonNullCallable extends Callable { NonNullCallable() { this = any(SystemObjectClass c).getGetTypeMethod() } @@ -936,154 +970,21 @@ module Internal { e = any(BinaryArithmeticOperation bao | result = bao.getAnOperand()) } - // The predicates in this module should be evaluated in the same stage as the CFG - // construction stage. This is to avoid recomputation of pre-basic-blocks and - // pre-SSA predicates - private module PreCfg { - private import semmle.code.csharp.controlflow.internal.PreBasicBlocks as PreBasicBlocks - private import semmle.code.csharp.controlflow.internal.PreSsa - - private predicate nullDef(PreSsa::Definition def) { - nullValueImplied(def.getDefinition().getSource()) - } - - private predicate nonNullDef(PreSsa::Definition def) { - nonNullValueImplied(def.getDefinition().getSource()) - } - - private predicate emptyDef(PreSsa::Definition def) { - emptyValue(def.getDefinition().getSource()) - } - - private predicate nonEmptyDef(PreSsa::Definition def) { - nonEmptyValue(def.getDefinition().getSource()) - } - - deprecated predicate isGuard(Expr e, GuardValue val) { - ( - e.getType() instanceof BoolType and - not e instanceof BoolLiteral and - not e instanceof SwitchCaseExpr and - not e instanceof PatternExpr and - exists(val.asBooleanValue()) - or - e instanceof DereferenceableExpr and - val.isNullness(_) - ) and - not e = any(ExprStmt es).getExpr() and - not e = any(LocalVariableDeclStmt s).getAVariableDeclExpr() - } - - cached - private module CachedWithCfg { - private import semmle.code.csharp.Caching - - private predicate firstReadSameVarUniquePredecessor( - PreSsa::Definition def, AssignableRead read - ) { - read = def.getAFirstRead() and - ( - not PreSsa::adjacentReadPairSameVar(_, read) - or - read = unique(AssignableRead read0 | PreSsa::adjacentReadPairSameVar(read0, read)) - ) - } - - cached - predicate nullValueImplied(Expr e) { - nullValue(e) - or - exists(Expr e1 | nullValueImplied(e1) and nullValueImpliedUnary(e1, e)) - or - exists(Expr e1, Expr e2 | - nullValueImplied(e1) and nullValueImplied(e2) and nullValueImpliedBinary(e1, e2, e) - ) - or - e = - any(PreSsa::Definition def | - forex(PreSsa::Definition u | u = def.getAnUltimateDefinition() | nullDef(u)) - ).getARead() - } - - cached - predicate nonNullValueImplied(Expr e) { - nonNullValue(e) - or - exists(Expr e1 | nonNullValueImplied(e1) and nonNullValueImpliedUnary(e1, e)) - or - e = - any(PreSsa::Definition def | - forex(PreSsa::Definition u | u = def.getAnUltimateDefinition() | nonNullDef(u)) - ).getARead() - } - - private predicate adjacentReadPairSameVarUniquePredecessor( - AssignableRead read1, AssignableRead read2 - ) { - PreSsa::adjacentReadPairSameVar(read1, read2) and - ( - read1 = read2 and - read1 = unique(AssignableRead other | PreSsa::adjacentReadPairSameVar(other, read2)) - or - read1 = - unique(AssignableRead other | - PreSsa::adjacentReadPairSameVar(other, read2) and other != read2 - ) - ) - } - - cached - predicate emptyValue(Expr e) { - e.(ArrayCreation).getALengthArgument().getValue().toInt() = 0 - or - e.(ArrayInitializer).hasNoElements() - or - exists(Expr mid | emptyValue(mid) | - mid = e.(AssignExpr).getRValue() - or - mid = e.(Cast).getExpr() - ) - or - exists(PreSsa::Definition def | emptyDef(def) | firstReadSameVarUniquePredecessor(def, e)) - or - exists(MethodCall mc | - mc.getTarget().getAnUltimateImplementee().getUnboundDeclaration() = - any(SystemCollectionsGenericICollectionInterface c).getClearMethod() and - adjacentReadPairSameVarUniquePredecessor(mc.getQualifier(), e) - ) - } - - cached - predicate nonEmptyValue(Expr e) { - forex(Expr length | length = e.(ArrayCreation).getALengthArgument() | - length.getValue().toInt() != 0 - ) - or - e.(ArrayInitializer).getNumberOfElements() > 0 - or - exists(Expr mid | nonEmptyValue(mid) | - mid = e.(AssignExpr).getRValue() - or - mid = e.(Cast).getExpr() - ) - or - exists(PreSsa::Definition def | nonEmptyDef(def) | - firstReadSameVarUniquePredecessor(def, e) - ) - or - exists(MethodCall mc | - mc.getTarget().getAnUltimateImplementee().getUnboundDeclaration() = - any(SystemCollectionsGenericICollectionInterface c).getAddMethod() and - adjacentReadPairSameVarUniquePredecessor(mc.getQualifier(), e) - ) - } - } - - import CachedWithCfg + deprecated predicate isGuard(Expr e, GuardValue val) { + ( + e.getType() instanceof BoolType and + not e instanceof BoolLiteral and + not e instanceof SwitchCaseExpr and + not e instanceof PatternExpr and + exists(val.asBooleanValue()) + or + e instanceof DereferenceableExpr and + val.isNullness(_) + ) and + not e = any(ExprStmt es).getExpr() and + not e = any(LocalVariableDeclStmt s).getAVariableDeclExpr() } - import PreCfg - private predicate interestingDescendantCandidate(Expr e) { guardControls(e, _, _) or diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll deleted file mode 100644 index 4921e692623..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll +++ /dev/null @@ -1,221 +0,0 @@ -import csharp - -/** - * Provides an SSA implementation based on "pre-basic-blocks", restricted - * to local scope variables and fields/properties that behave like local - * scope variables. - */ -module PreSsa { - private import AssignableDefinitions - private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl - private import semmle.code.csharp.controlflow.internal.PreBasicBlocks as PreBasicBlocks - private import codeql.ssa.Ssa as SsaImplCommon - - private predicate definitionAt( - AssignableDefinition def, PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v - ) { - bb.getNode(i) = def.getExpr() and - v = def.getTarget() and - // In cases like `(x, x) = (0, 1)`, we discard the first (dead) definition of `x` - not exists(TupleAssignmentDefinition first, TupleAssignmentDefinition second | first = def | - second.getAssignment() = first.getAssignment() and - second.getEvaluationOrder() > first.getEvaluationOrder() and - second.getTarget() = v - ) - or - def.(ImplicitParameterDefinition).getParameter() = v and - exists(Callable c | v = c.getAParameter() | - scopeFirst(c, bb) and - i = -1 - ) - } - - predicate implicitEntryDef( - Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v - ) { - c = v.getACallable() and - scopeFirst(c, bb) and - ( - not v instanceof LocalScopeVariable - or - v.(SimpleLocalScopeVariable).isReadonlyCapturedBy(c) - ) - } - - /** Holds if `a` is assigned in callable `c`. */ - pragma[nomagic] - private predicate assignableDefinition(Assignable a, Callable c) { - exists(AssignableDefinition def | - def.getTarget() = a and - c = def.getEnclosingCallable() - | - not c instanceof Constructor or - a instanceof LocalScopeVariable - ) - } - - pragma[nomagic] - private predicate assignableUniqueWriter(Assignable a, Callable c) { - c = unique(Callable c0 | assignableDefinition(a, c0) | c0) - } - - /** Holds if `a` is accessed in callable `c`. */ - pragma[nomagic] - private predicate assignableAccess(Assignable a, Callable c) { - exists(AssignableAccess aa | aa.getTarget() = a | c = aa.getEnclosingCallable()) - } - - /** - * A local scope variable that is amenable to SSA analysis. - * - * This is either a local variable that is not captured, or one - * where all writes happen in the defining callable. - */ - class SimpleLocalScopeVariable extends LocalScopeVariable { - SimpleLocalScopeVariable() { assignableUniqueWriter(this, this.getCallable()) } - - /** Holds if this local scope variable is read-only captured by `c`. */ - predicate isReadonlyCapturedBy(Callable c) { - assignableAccess(this, c) and - c != this.getCallable() - } - } - - module SsaInput implements SsaImplCommon::InputSig { - private import semmle.code.csharp.Caching - - private class ExitBasicBlock extends PreBasicBlocks::PreBasicBlock { - ExitBasicBlock() { scopeLast(_, this.getLastNode(), _) } - } - - pragma[noinline] - private predicate assignableNoComplexQualifiers(Assignable a) { - forall(QualifiableExpr qe | qe.(AssignableAccess).getTarget() = a | qe.targetIsThisInstance()) - } - - /** - * A simple assignable. Either a local scope variable or a field/property - * that behaves like a local scope variable. - */ - class SourceVariable extends Assignable { - private Callable c; - - SourceVariable() { - assignableAccess(this, c) and - ( - this instanceof SimpleLocalScopeVariable - or - ( - this = any(Field f | not f.isVolatile()) - or - this = any(TrivialProperty tp | not tp.isOverridableOrImplementable()) - ) and - ( - not assignableDefinition(this, _) - or - assignableUniqueWriter(this, c) - ) and - assignableNoComplexQualifiers(this) - ) - } - - /** Gets a callable in which this simple assignable can be analyzed. */ - Callable getACallable() { result = c } - } - - predicate variableWrite( - PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain - ) { - Stages::ControlFlowStage::forceCachingInSameStage() and - exists(AssignableDefinition def | - definitionAt(def, bb, i, v) and - if def.getTargetAccess().isRefArgument() then certain = false else certain = true - ) - or - implicitEntryDef(_, bb, v) and - i = -1 and - certain = true - } - - predicate variableRead( - PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain - ) { - exists(AssignableRead read | - read = bb.getNode(i) and - read.getTarget() = v and - certain = true - ) - or - v = - any(LocalScopeVariable lsv | - lsv.getCallable() = bb.(ExitBasicBlock).getEnclosingCallable() and - i = bb.length() and - (lsv.isRef() or v.(Parameter).isOut()) and - certain = false - ) - } - } - - private module SsaImpl = SsaImplCommon::Make; - - class Definition extends SsaImpl::Definition { - final AssignableRead getARead() { - exists(PreBasicBlocks::PreBasicBlock bb, int i | - SsaImpl::ssaDefReachesRead(_, this, bb, i) and - result = bb.getNode(i) - ) - } - - final AssignableDefinition getDefinition() { - exists(PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v | - this.definesAt(v, bb, i) and - definitionAt(result, bb, i, v) - ) - } - - final AssignableRead getAFirstRead() { - exists(PreBasicBlocks::PreBasicBlock bb, int i | - SsaImpl::firstUse(this, bb, i, true) and - result = bb.getNode(i) - ) - } - - private Definition getAPhiInputOrPriorDefinition() { - result = this.(PhiNode).getAnInput() or - SsaImpl::uncertainWriteDefinitionInput(this, result) - } - - final Definition getAnUltimateDefinition() { - result = this.getAPhiInputOrPriorDefinition*() and - not result instanceof PhiNode - } - - final predicate isLiveAtEndOfBlock(PreBasicBlocks::PreBasicBlock bb) { - SsaImpl::ssaDefReachesEndOfBlock(bb, this, _) - } - - override Location getLocation() { - result = this.getDefinition().getLocation() - or - exists(Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v | - this.definesAt(v, bb, -1) and - implicitEntryDef(c, bb, v) and - result = c.getLocation() - ) - } - } - - class PhiNode extends SsaImpl::PhiNode, Definition { - final override Location getLocation() { result = this.getBasicBlock().getLocation() } - - final Definition getAnInput() { SsaImpl::phiHasInputFromBlock(this, result, _) } - } - - predicate adjacentReadPairSameVar(AssignableRead read1, AssignableRead read2) { - exists(PreBasicBlocks::PreBasicBlock bb1, int i1, PreBasicBlocks::PreBasicBlock bb2, int i2 | - read1 = bb1.getNode(i1) and - SsaImpl::adjacentUseUse(bb1, i1, bb2, i2, _, true) and - read2 = bb2.getNode(i2) - ) - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll index 87579a075f9..55b75ed31a7 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -9,18 +9,11 @@ private import Completion as Comp private import Comp private import ControlFlowGraphImpl private import semmle.code.csharp.controlflow.ControlFlowGraph::ControlFlow as Cfg -private import semmle.code.csharp.controlflow.internal.PreSsa cached private module Cached { private import semmle.code.csharp.Caching - cached - newtype TBooleanSplitSubKind = - TSsaBooleanSplitSubKind(PreSsa::Definition def) { - Stages::ControlFlowStage::forceCachingInSameStage() - } - cached newtype TSplitKind = TConditionalCompletionSplitKind() diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll index 747cf790d91..a994873274a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -43,10 +43,47 @@ module BaseSsa { ) } - private module SsaInput implements SsaImplCommon::InputSig { - private import semmle.code.csharp.controlflow.internal.PreSsa + /** Holds if `a` is assigned in callable `c`. */ + pragma[nomagic] + private predicate assignableDefinition(Assignable a, Callable c) { + exists(AssignableDefinition def | + def.getTarget() = a and + c = def.getEnclosingCallable() + | + not c instanceof Constructor or + a instanceof LocalScopeVariable + ) + } - class SourceVariable = PreSsa::SimpleLocalScopeVariable; + pragma[nomagic] + private predicate assignableUniqueWriter(Assignable a, Callable c) { + c = unique(Callable c0 | assignableDefinition(a, c0) | c0) + } + + /** Holds if `a` is accessed in callable `c`. */ + pragma[nomagic] + private predicate assignableAccess(Assignable a, Callable c) { + exists(AssignableAccess aa | aa.getTarget() = a | c = aa.getEnclosingCallable()) + } + + /** + * A local scope variable that is amenable to SSA analysis. + * + * This is either a local variable that is not captured, or one + * where all writes happen in the defining callable. + */ + class SimpleLocalScopeVariable extends LocalScopeVariable { + SimpleLocalScopeVariable() { assignableUniqueWriter(this, this.getCallable()) } + + /** Holds if this local scope variable is read-only captured by `c`. */ + predicate isReadonlyCapturedBy(Callable c) { + assignableAccess(this, c) and + c != this.getCallable() + } + } + + private module SsaInput implements SsaImplCommon::InputSig { + class SourceVariable = SimpleLocalScopeVariable; predicate variableWrite(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) { exists(AssignableDefinition def | diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 70fda2b1296..bc68382b17a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -5,9 +5,9 @@ import csharp private import codeql.ssa.Ssa as SsaImplCommon private import AssignableDefinitions -private import semmle.code.csharp.controlflow.internal.PreSsa private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks private import semmle.code.csharp.controlflow.Guards as Guards +private import semmle.code.csharp.dataflow.internal.BaseSSA private module SsaInput implements SsaImplCommon::InputSig { class SourceVariable = Ssa::SourceVariable; @@ -783,7 +783,7 @@ cached private module Cached { cached newtype TSourceVariable = - TLocalVar(Callable c, PreSsa::SimpleLocalScopeVariable v) { + TLocalVar(Callable c, BaseSsa::SimpleLocalScopeVariable v) { c = v.getCallable() or // Local scope variables can be captured diff --git a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql index 0f278c9df1c..f6aaf07485e 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql @@ -1,9 +1,9 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" def-use implementation. */ predicate defReaches( - AssignableDefinition def, PreSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + AssignableDefinition def, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn ) { def.getTarget() = v and cfn = def.getExpr().getAControlFlowNode().getASuccessor() or diff --git a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql index 88b93ceedfd..87c26e32259 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql @@ -1,10 +1,10 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" parameter-use implementation. */ predicate parameterReaches(Parameter p, ControlFlow::Node cfn) { cfn = p.getCallable().getEntryPoint().getASuccessor() and - p instanceof PreSsa::SimpleLocalScopeVariable + p instanceof BaseSsa::SimpleLocalScopeVariable or exists(ControlFlow::Node mid | parameterReaches(p, mid) | not mid = diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index 7952f3adef5..f212e48f1c4 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -1,9 +1,9 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" use-use implementation. */ predicate useReaches( - LocalScopeVariableRead read, PreSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + LocalScopeVariableRead read, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn ) { read.getTarget() = v and cfn = read.getAControlFlowNode().getASuccessor() or diff --git a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected b/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected deleted file mode 100644 index 4fa64b47674..00000000000 --- a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -defReadInconsistency -readReadInconsistency -phiInconsistency diff --git a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql b/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql deleted file mode 100644 index de7357d14b6..00000000000 --- a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql +++ /dev/null @@ -1,99 +0,0 @@ -import csharp -import semmle.code.csharp.controlflow.internal.PreSsa -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl -import semmle.code.csharp.dataflow.internal.SsaImpl as SsaImpl - -class CallableWithSplitting extends Callable { - CallableWithSplitting() { this = any(SplitAstNode n).getEnclosingCallable() } -} - -query predicate defReadInconsistency( - AssignableRead ar, Expr e, PreSsa::SsaInput::SourceVariable v, boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not ar.getEnclosingCallable() instanceof CallableWithSplitting and - exists(AssignableDefinition def | e = def.getExpr() | - b = true and - exists(PreSsa::Definition ssaDef | ssaDef.getSourceVariable() = v | - ar = ssaDef.getAFirstRead() and - ssaDef.getDefinition() = def and - not exists(Ssa::ExplicitDefinition edef | - edef.getADefinition() = def and - edef.getAFirstRead() = ar - ) - ) - or - b = false and - exists(Ssa::ExplicitDefinition edef | - edef.getADefinition() = def and - edef.getAFirstRead() = ar and - def.getTarget() = v and - not exists(PreSsa::Definition ssaDef | - ar = ssaDef.getAFirstRead() and - ssaDef.getDefinition() = def - ) - ) - ) -} - -query predicate readReadInconsistency( - LocalScopeVariableRead read1, LocalScopeVariableRead read2, PreSsa::SsaInput::SourceVariable v, - boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not read1.getEnclosingCallable() instanceof CallableWithSplitting and - ( - b = true and - v = read1.getTarget() and - PreSsa::adjacentReadPairSameVar(read1, read2) and - not SsaImpl::adjacentReadPairSameVar(_, read1.getAControlFlowNode(), read2.getAControlFlowNode()) - or - b = false and - v = read1.getTarget() and - SsaImpl::adjacentReadPairSameVar(_, read1.getAControlFlowNode(), read2.getAControlFlowNode()) and - read1.getTarget() instanceof PreSsa::SsaInput::SourceVariable and - not PreSsa::adjacentReadPairSameVar(read1, read2) and - // Exclude split CFG elements because SSA may be more precise than pre-SSA - // in those cases - not read1 instanceof SplitAstNode and - not read2 instanceof SplitAstNode - ) -} - -query predicate phiInconsistency( - ControlFlowElement cfe, Expr e, PreSsa::SsaInput::SourceVariable v, boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not cfe.getEnclosingCallable() instanceof CallableWithSplitting and - exists(AssignableDefinition adef | e = adef.getExpr() | - b = true and - exists(PreSsa::PhiNode prePhi | v = prePhi.getSourceVariable() | - adef = prePhi.getAnInput+().getDefinition() and - cfe = prePhi.getBasicBlock().getFirstElement() and - not exists(Ssa::PhiNode phi, ControlFlow::BasicBlock bb, Ssa::ExplicitDefinition edef | - edef = phi.getAnUltimateDefinition() - | - edef.getADefinition() = adef and - phi.definesAt(_, bb, _) and - cfe = bb.getFirstNode().getAstNode() - ) - ) - or - b = false and - exists(Ssa::PhiNode phi, ControlFlow::BasicBlock bb, Ssa::ExplicitDefinition edef | - v = phi.getSourceVariable().getAssignable() - | - edef = phi.getAnUltimateDefinition() and - edef.getADefinition() = adef and - phi.definesAt(_, bb, _) and - cfe = bb.getFirstNode().getAstNode() and - not exists(PreSsa::PhiNode prePhi | - adef = prePhi.getAnInput+().getDefinition() and - cfe = prePhi.getBasicBlock().getFirstElement() - ) - ) - ) -} From 247d764a50ce3b35819657d4a0e1e2f9bfc88bc9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 14:45:38 +0100 Subject: [PATCH 104/194] C#: Add autobuilder integration tests with .slnx file. --- .../all-platforms/autobuild_slnx/Files.expected | 8 ++++++++ .../all-platforms/autobuild_slnx/Files.ql | 5 +++++ .../all-platforms/autobuild_slnx/autobuild_slnx.slnx | 3 +++ .../all-platforms/autobuild_slnx/global.json | 5 +++++ .../all-platforms/autobuild_slnx/proj1/Program.cs | 2 ++ .../all-platforms/autobuild_slnx/proj1/proj1.csproj | 10 ++++++++++ .../all-platforms/autobuild_slnx/proj2/Program.cs | 2 ++ .../all-platforms/autobuild_slnx/proj2/proj2.csproj | 10 ++++++++++ .../all-platforms/autobuild_slnx/test.py | 3 +++ 9 files changed, 48 insertions(+) create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj create mode 100644 csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected new file mode 100644 index 00000000000..5753e4f76d8 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected @@ -0,0 +1,8 @@ +| proj1/Program.cs:0:0:0:0 | proj1/Program.cs | +| proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs | +| proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs | +| proj2/Program.cs:0:0:0:0 | proj2/Program.cs | +| proj2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | proj2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| proj2/obj/Debug/net10.0/proj2.AssemblyInfo.cs:0:0:0:0 | proj2/obj/Debug/net10.0/proj2.AssemblyInfo.cs | +| proj2/obj/Debug/net10.0/proj2.GlobalUsings.g.cs:0:0:0:0 | proj2/obj/Debug/net10.0/proj2.GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql new file mode 100644 index 00000000000..bea5557a25f --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql @@ -0,0 +1,5 @@ +import csharp + +from File f +where f.fromSource() +select f diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx new file mode 100644 index 00000000000..39f589f13f1 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx @@ -0,0 +1,3 @@ + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json new file mode 100644 index 00000000000..481e95ec7be --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100" + } +} diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py new file mode 100644 index 00000000000..b0cc524b00d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py @@ -0,0 +1,3 @@ +def test(codeql, csharp): + # Only proj1 is included in the solution, so only it should be built (and extracted). + codeql.database.create() From 166ce1b4982ff0cb64f120ef78afca0236f22f40 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 14:47:08 +0100 Subject: [PATCH 105/194] C#: Add buildless integration test example including .slnx file. --- .../standalone_slnx/CompilationInfo.expected | 19 +++++++++++++++++++ .../standalone_slnx/CompilationInfo.ql | 16 ++++++++++++++++ .../all-platforms/standalone_slnx/global.json | 5 +++++ .../standalone_slnx/mylib/Class1.cs | 6 ++++++ .../standalone_slnx/mylib/mylib.csproj | 9 +++++++++ .../standalone_slnx/proj/Program.cs | 2 ++ .../standalone_slnx/proj/proj.csproj | 10 ++++++++++ .../all-platforms/standalone_slnx/test.py | 2 ++ .../all-platforms/standalone_slnx/test.slnx | 4 ++++ 9 files changed, 73 insertions(+) create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py create mode 100644 csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected new file mode 100644 index 00000000000..77e6ccfae9d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected @@ -0,0 +1,19 @@ +| All NuGet feeds reachable | 1.0 | +| Failed project restore with package source error | 0.0 | +| Failed solution restore with package source error | 0.0 | +| Inherited NuGet feed count | 1.0 | +| NuGet feed responsiveness checked | 1.0 | +| Project files on filesystem | 2.0 | +| Reachable fallback NuGet feed count | 1.0 | +| Resource extraction enabled | 0.0 | +| Restored .NET framework variants | 1.0 | +| Restored projects through solution files | 0.0 | +| Solution files on filesystem | 0.0 | +| Source files generated | 1.0 | +| Source files on filesystem | 2.0 | +| Successfully restored project files | 2.0 | +| Successfully restored solution files | 0.0 | +| Unresolved references | 0.0 | +| UseWPF set | 0.0 | +| UseWindowsForms set | 0.0 | +| WebView extraction enabled | 1.0 | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql new file mode 100644 index 00000000000..078e352be4d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql @@ -0,0 +1,16 @@ +import csharp +import semmle.code.csharp.commons.Diagnostics + +query predicate compilationInfo(string key, float value) { + key != "Resolved references" and + key != "Resolved assembly conflicts" and + not key.matches(["Compiler diagnostic count for%", "Extractor message count for group%"]) and + exists(Compilation c, string infoKey, string infoValue | infoValue = c.getInfo(infoKey) | + key = infoKey and + value = infoValue.toFloat() + or + not exists(infoValue.toFloat()) and + key = infoKey + ": " + infoValue and + value = 1 + ) +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json b/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json new file mode 100644 index 00000000000..481e95ec7be --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100" + } +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs new file mode 100644 index 00000000000..8f662eb2ce6 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs @@ -0,0 +1,6 @@ +namespace mylib; + +public class Class1 +{ + +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj new file mode 100644 index 00000000000..b760144708e --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj @@ -0,0 +1,9 @@ + + + + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py new file mode 100644 index 00000000000..237174a46c6 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py @@ -0,0 +1,2 @@ +def test(codeql, csharp): + codeql.database.create(build_mode="none") diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx new file mode 100644 index 00000000000..40c1aa63ae1 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx @@ -0,0 +1,4 @@ + + + + From 74a77a7c3c1312a8cd622abd97d278259c6e08d4 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 11 Dec 2025 15:04:25 +0100 Subject: [PATCH 106/194] Rust: Fix typo in change note Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- rust/ql/lib/change-notes/2025-12-11-read-as-taint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md index 6e17d6a4e63..3e1cabd75f7 100644 --- a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md +++ b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Reading content of a value now carry taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. \ No newline at end of file +* Reading content of a value now carries taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. \ No newline at end of file From 5212e635bc98b661be031cbe0a0e7cf5aebea7bc Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 15:13:20 +0100 Subject: [PATCH 107/194] C#: Add dependency Microsoft.VisualStudio.SolutionPersistence and update lock files. --- .../Semmle.Autobuild.Shared/BUILD.bazel | 1 + .../Semmle.Autobuild.Shared/paket.references | 1 + .../BUILD.bazel | 1 + .../paket.references | 1 + csharp/paket.dependencies | 1 + csharp/paket.lock | 61 ++++++++++--------- csharp/paket.main.bzl | 37 +++++------ 7 files changed, 55 insertions(+), 48 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel index bc968ff8a4d..41a53574487 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel @@ -12,5 +12,6 @@ codeql_csharp_library( deps = [ "//csharp/extractor/Semmle.Util", "@paket.main//microsoft.build", + "@paket.main//microsoft.visualstudio.solutionpersistence", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references b/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references index ec65ce95b91..ca431a6703e 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references @@ -1 +1,2 @@ Microsoft.Build +Microsoft.VisualStudio.SolutionPersistence diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel index 0dc2a366125..aefa581837e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel @@ -15,6 +15,7 @@ codeql_csharp_library( deps = [ "//csharp/extractor/Semmle.Extraction.CSharp", "//csharp/extractor/Semmle.Util", + "@paket.main//microsoft.visualstudio.solutionpersistence", "@paket.main//newtonsoft.json", "@paket.main//nuget.versioning", ], diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references index f4c783b379a..b70a0ef65be 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references @@ -1,2 +1,3 @@ +Microsoft.VisualStudio.SolutionPersistence Newtonsoft.Json NuGet.Versioning diff --git a/csharp/paket.dependencies b/csharp/paket.dependencies index 32f495954dc..61cb1d3d8d9 100644 --- a/csharp/paket.dependencies +++ b/csharp/paket.dependencies @@ -15,3 +15,4 @@ nuget Microsoft.NET.Test.Sdk nuget Microsoft.CodeAnalysis.CSharp 5.0.0 nuget Microsoft.CodeAnalysis 5.0.0 nuget Microsoft.Build 18.0.2 +nuget Microsoft.VisualStudio.SolutionPersistence diff --git a/csharp/paket.lock b/csharp/paket.lock index f0226edbbd5..42d537cc181 100644 --- a/csharp/paket.lock +++ b/csharp/paket.lock @@ -20,8 +20,8 @@ NUGET Microsoft.NET.StringTools (>= 17.11.4) MessagePack.Annotations (3.1.4) MessagePackAnalyzer (3.1.4) - Microsoft.Bcl.AsyncInterfaces (10.0) - Microsoft.Bcl.Memory (10.0) + Microsoft.Bcl.AsyncInterfaces (10.0.1) + Microsoft.Bcl.Memory (10.0.1) Microsoft.Build (18.0.2) Microsoft.Build.Framework (>= 18.0.2) Microsoft.NET.StringTools (>= 18.0.2) @@ -82,7 +82,7 @@ NUGET Microsoft.CodeAnalysis.Common (5.0) System.Composition (>= 9.0) Microsoft.CodeCoverage (18.0.1) - Microsoft.Extensions.ObjectPool (10.0) + Microsoft.Extensions.ObjectPool (10.0.1) Microsoft.NET.StringTools (18.0.2) Microsoft.NET.Test.Sdk (18.0.1) Microsoft.CodeCoverage (>= 18.0.1) @@ -92,6 +92,7 @@ NUGET Microsoft.TestPlatform.TestHost (18.0.1) Microsoft.TestPlatform.ObjectModel (>= 18.0.1) Newtonsoft.Json (>= 13.0.3) + Microsoft.VisualStudio.SolutionPersistence (1.0.52) Mono.Posix.NETStandard (1.0) MSBuild.StructuredLogger (2.3.113) Microsoft.Build.Framework (>= 17.5) @@ -101,36 +102,36 @@ NUGET Newtonsoft.Json (13.0.4) NuGet.Versioning (7.0.1) System.Buffers (4.6.1) - System.Collections.Immutable (10.0) - System.Composition (10.0) - System.Composition.AttributedModel (>= 10.0) - System.Composition.Convention (>= 10.0) - System.Composition.Hosting (>= 10.0) - System.Composition.Runtime (>= 10.0) - System.Composition.TypedParts (>= 10.0) - System.Composition.AttributedModel (10.0) - System.Composition.Convention (10.0) - System.Composition.AttributedModel (>= 10.0) - System.Composition.Hosting (10.0) - System.Composition.Runtime (>= 10.0) - System.Composition.Runtime (10.0) - System.Composition.TypedParts (10.0) - System.Composition.AttributedModel (>= 10.0) - System.Composition.Hosting (>= 10.0) - System.Composition.Runtime (>= 10.0) - System.Configuration.ConfigurationManager (10.0) - System.Diagnostics.EventLog (>= 10.0) - System.Security.Cryptography.ProtectedData (>= 10.0) - System.Diagnostics.EventLog (10.0) - System.IO.Pipelines (10.0) + System.Collections.Immutable (10.0.1) + System.Composition (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Convention (>= 10.0.1) + System.Composition.Hosting (>= 10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Composition.TypedParts (>= 10.0.1) + System.Composition.AttributedModel (10.0.1) + System.Composition.Convention (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Hosting (10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Composition.Runtime (10.0.1) + System.Composition.TypedParts (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Hosting (>= 10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Configuration.ConfigurationManager (10.0.1) + System.Diagnostics.EventLog (>= 10.0.1) + System.Security.Cryptography.ProtectedData (>= 10.0.1) + System.Diagnostics.EventLog (10.0.1) + System.IO.Pipelines (10.0.1) System.Memory (4.6.3) System.Numerics.Vectors (4.6.1) - System.Reflection.Metadata (10.0) - System.Reflection.MetadataLoadContext (10.0) + System.Reflection.Metadata (10.0.1) + System.Reflection.MetadataLoadContext (10.0.1) System.Runtime.CompilerServices.Unsafe (6.1.2) - System.Security.Cryptography.ProtectedData (10.0) - System.Text.Encoding.CodePages (10.0) - System.Threading.Channels (10.0) + System.Security.Cryptography.ProtectedData (10.0.1) + System.Text.Encoding.CodePages (10.0.1) + System.Threading.Channels (10.0.1) System.Threading.Tasks.Extensions (4.6.3) xunit (2.9.3) xunit.analyzers (>= 1.18) diff --git a/csharp/paket.main.bzl b/csharp/paket.main.bzl index a9112bfda73..88131888227 100644 --- a/csharp/paket.main.bzl +++ b/csharp/paket.main.bzl @@ -12,8 +12,8 @@ def main(): {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "10.0.0", "sha512": "sha512-3HqmWl57VHdP18TtKeRpM62/ACKgg58AEX9j1Zof+HA879/aGJ6s0WgngeLTEzlUAB9tRxm3kGfkIDJRV168BQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "10.0.0", "sha512": "sha512-gP4skrltie3xbrXIKZ0j8gnnT+MoslGYsC2Eqi3Ap9g3QSnu1KYp92d96cZZQ31VfvI1AYx/rEmSfCU2K6R2zg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "10.0.1", "sha512": "sha512-2SbGOdcRb04XU0XDlYH3o3a2Xu9w2kgkS5SXXru/YVvdpbLymqgen+JcYsPzf9IzLO4hFiZhKpBTJRe7fB885A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "10.0.1", "sha512": "sha512-e0Z3KEDQN0Q7HxmYBNuY2r1pCyaUl9T5AbtyC2v7Nnn+XcT2v41B+nnhGKesGUWo119e9Qq9wbOhh94Tm6kR/A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "18.0.2", "sha512": "sha512-/rRET3AtEAUTKFDboKvp/GTDxGwU7VBBfwaKeZtzGg+pyqYdvasHeR3ERTuoxSrgJqnu1J23xd4H481IiJFhnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "18.0.2", "sha512": "sha512-cmXoGncAIrDZgu0NumtXJSTILv9NHU2sPhrlkckefMK1XCuJUrvClVxkmvQDpvm4sCKwSFolW2AanGCLNJ6xDw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "18.0.2", "sha512": "sha512-4f5DSPN/nLyGddOx2Etrjy42XFQ9tWeJ8lwJr/tLloRl/YRzT1kV+1txwRFXlav9V93wMOUrwMQqpnd131Sb+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework"], "net462": ["Microsoft.Build.Framework"], "net47": ["Microsoft.Build.Framework"], "net471": ["Microsoft.Build.Framework"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework"], "net6.0": ["Microsoft.Build.Framework"], "net7.0": ["Microsoft.Build.Framework"], "net8.0": ["Microsoft.Build.Framework"], "net9.0": ["Microsoft.Build.Framework"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework"], "netcoreapp2.1": ["Microsoft.Build.Framework"], "netcoreapp2.2": ["Microsoft.Build.Framework"], "netcoreapp3.0": ["Microsoft.Build.Framework"], "netcoreapp3.1": ["Microsoft.Build.Framework"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework"], "netstandard2.1": ["Microsoft.Build.Framework"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, @@ -26,35 +26,36 @@ def main(): {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "5.0.0", "sha512": "sha512-sgWa3mUtCHIfPcSCyKKksrZNlYnmKWeivbZdENrPLTJQXiKXCjFcVYaxRvGBcYeAQES5J63iV03XVviSkJyMqQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "5.0.0", "sha512": "sha512-zbKJyIkFW+2Bx5eQl/IWBLmbPTpo9/UyAbt8vaVTXsoi4EYlXrJftCRZmUsmyQP7pg3qKMiR6czPdUjTadNkhA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.1", "sha512": "sha512-0bzrz+vR49E/jtdBySXaJSPP4plwnMHE2qsyJZgZJuDdIOtLUFswInVa7krxIVz2ur6KJZFdTPXr3WMXfgnDNg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.0", "sha512": "sha512-c9pc0Jh0Sm3hl+y5qTwyJ1weldQt3C73SwPFhalL4gTWGxQGo5XFGVvy5nNqsOH5tXYePwcjuCEoJXi/nI6nYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.1", "sha512": "sha512-dDQU1quroimptw3K9WSczyFrVmFYKEjeWXmba4BHHSEovYZw2TI77wIJTwrPHgk6j9ozE02AgjP0z0A8POZFwg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "18.0.2", "sha512": "sha512-s9BywFgRKhPV5OyY2t2EMQXfoDrvYSEzX4bHaWkZ/PwYJnxbxmLEqA/dh8MQ2mUOq48sGr3hbkgnghZQHeZc7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.1", "sha512": "sha512-cfpn4IW0Q+emID8eUocS7xfmwwYgD/JX5S+zCZA2l7gcYzxZ1vvfcdZHcKkuzCH4gMbBYqcZqtBn9uZa0WJRUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.1", "sha512": "sha512-qZKcsS5mN7GMwtpd+tRfAt4Dmg8yVbtWkm9iGfqY2GNOG2qW95NH6zf/FrTLXTiS7rB7zqihWGEcSspOaSK8TQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.1", "sha512": "sha512-SX1FnYA8zcNv/lbWK3GjLnAx93jalmyHyQMVi+TNWA61R6xzkLMNpC3fotbfpDheXCFhwy/1rKoULyaOOe0jEg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.VisualStudio.SolutionPersistence", "id": "Microsoft.VisualStudio.SolutionPersistence", "version": "1.0.52", "sha512": "sha512-lHyMm5j5wRwVaC3vlCWrFH2FGy2SpFUZqLvYhzwf1cEUIQCUChU960h8kteFSf01ZkLSgJwrznmspwjW8kPtrA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.113", "sha512": "sha512-FS/vecrCK5mq3v4OIyd90BU6x9clwoRzW6LiIfilSQZQBYp/E9/+G9LS2Q9nB1rHEhJ8kDWnsZdytEIsNAb4Jw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.1", "sha512": "sha512-UTrcQcgmn7pBdx+0Oi/NxlyPslWbMt7U8I1sg/4m36OkOCS+7QKZWY3O4dKcjHD2wQaBr9L2/XWnx3ViTaehZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "Newtonsoft.Json", "id": "Newtonsoft.Json", "version": "13.0.4", "sha512": "sha512-bR+v+E/yJ6g7GV2uXw2OrUSjYYfjLkOLC8JD4kCS23msLapnKtdJPBJA75fwHH++ErIffeIqzYITLxAur4KAXA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "NuGet.Versioning", "id": "NuGet.Versioning", "version": "7.0.1", "sha512": "sha512-ibGcrpgA8foidKNcnf+AQ4zEaVZu4OyWjcPITii6mNgwt2uhd8VFsEq7/Mb0KDxrEJaew+nWJQb7Ju166SAyzw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Buffers", "id": "System.Buffers", "version": "4.6.1", "sha512": "sha512-qve/dFwECwehSWlZmpkrrlIeATCvo/Hw2koyMrUVcDBy5gXAQrnwX8pHEoqgj8DgkrWuWW1DrQbFqoMbo+Fvrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "10.0.0", "sha512": "sha512-X8f2K6WYvpYzbYT4QLhZfzEXLp8RG7VYKRpFQtcrOcBnfA5ifRxwTN3G2EE6N7MwdNfH8ygbmtB18ql62Uzqjw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition", "id": "System.Composition", "version": "10.0.0", "sha512": "sha512-H9t7Q6f4JGhLrsc1oEcGZw67YqJKyRDqptuXkop09EW7TEuyhN+YTlKGREF2V7b/Ea4mqJLjcuT9gQBTSnQC0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "10.0.0", "sha512": "sha512-4NLPtVh/LQYIhOV+2/+me510VExg+pCRclLlYHSF77QpjV0uvZcXTICcCoKUMfqUeWFqk0tXqXpv9mBNTzdGug==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "10.0.0", "sha512": "sha512-9ufTkv7jkezJiHJjRW7T9HBrL04JRAH2s6l7YBPFmm8t7WVTR9ZxKndEUdy+shk5R8ldKTuIclQPkd6yOKNBdw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "10.0.0", "sha512": "sha512-dUSww1dWPykYinDRV1zhLbYhEykPBijsF+N/MvOOeT7o9ZpZUtjuOzPyQ/Tt4GYju30qBbfZQSd8N/mON/uWMQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "10.0.0", "sha512": "sha512-aI6VwYsLL96Az4sum1F2jf8Zqao+cpDwMEwz8gcIbk5Bzqpt3GDaxixiVhSrfbpGgvrlfQibSZJskevDKOkpVA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "10.0.0", "sha512": "sha512-maWE8bEZMVv84NU1XEfwrdARVNG/n4Xreg8uYN4+R0j/NR70wzSmjV+i1XXSRC+N96gqLwvBa+jVbeFRY4asPw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "10.0.0", "sha512": "sha512-siDQPzzFWSwUHLz/eNsgWkQKTZSVHcDybHGY0OvvAEe3GaHWfjIDbtnqzSjxUxAfKWmmPaAqubv3p1TF9RCfRg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "10.0.0", "sha512": "sha512-MW9Vd1l580ev4JdChWxxOS9llYO3U79gHvcFu5YiDcDMDJhiqHF/GC67teJ1tEDiTyQHUKhSBSijhi/zY4zhuA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "10.0.0", "sha512": "sha512-u/DHKOwXB6sPdswZln+du+jUpWYkik9bFjT3KinfYey/wKBV845m4Y2ul3HtkEJ2BJJnfTYN556iQ6xc/MEvqg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "10.0.1", "sha512": "sha512-JdD3TbINwQPseS67IR4oTJHb0KGxwnaT/j3A/VWqoKhvBIqTBgWK08UhDn7mcKEozKIfeSUWspmpW9kE2EgsHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition", "id": "System.Composition", "version": "10.0.1", "sha512": "sha512-N6NIjCYQpESjd6TSFlaZwbNrV7ZuLZuVBv/5/UuyX2z2zI+zr9lmbCXMN9IEa6gKSu561gsGjveEXAPCY1u6Ug==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "10.0.1", "sha512": "sha512-1YnM6Ly+qKW62DGTz9Ew+vaYpB7Y3d6R+oxaOgdJwp6vlHP9oUNsL7hD12+ugoGheWcg8Ld+X63wI8/XbLaUxA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "10.0.1", "sha512": "sha512-/ugIOC1IAYV2+waaSutJXMvAe5cGG9bP+dKt9oGiXdAFJ3cUFqJdxwQJJSeDZ4OQ220aj6EYErDewWxUoo0QHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "10.0.1", "sha512": "sha512-LVw0GhK+7IJLeIgggvNh7wu3I3MkOBdq+O3SUA378mQeLKjwR8ElsPvyq3rqaO+de38pVl0oFt0Fz/fU/Jox4A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "10.0.1", "sha512": "sha512-HYfhfKira/soAn1h3e3pOctNx5WTAZMdGFbF5rO55oXXRzzFtBoujTEjGYCyJVj8jKezGZVvIZNr1N2bmqc3sQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "10.0.1", "sha512": "sha512-AfgzCNetIffOWMnRo2szRGaeV6YZTpS0zrkZj5/6BWWaF2qgGllTtZOBBiZqA57tVDUoVUNf/LP1I6Lt1xkrAw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "10.0.1", "sha512": "sha512-E6SRJRaRweplupgFl3IRfNZ/AeCCb+6/FNeXpG6Wgj0mzKs7EAUoJTn0V+8c+SwffVifZRz9+bvNL/hKVddkyg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "10.0.1", "sha512": "sha512-Q1RjaIGlmcSUWEjPkIq6eUd/O5FVR9Kgseq/cPPldpdkRWK/GO5HkDE7B4Az1tVVjDiY/UnpRLQy2e/pH5nr1g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "10.0.1", "sha512": "sha512-hiEzKxYthGSjhsrnW/D4jCxBbE+lDG01KvAf3Iv7cQjpNU9ZoVo25Ukedth0LRymKpWcsTs3Fuawu9O6+Gnr5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "10.0.0", "sha512": "sha512-se+gXT13zqFct0l43vU8SbjExvQ/4oUD/kyf0OP4dVzxJHQdow49oSVYZ5XlMthXyNTvJ+sdZDBtPoP7yNdKOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable"], "net462": ["System.Collections.Immutable"], "net47": ["System.Collections.Immutable"], "net471": ["System.Collections.Immutable"], "net472": ["System.Collections.Immutable"], "net48": ["System.Collections.Immutable"], "net5.0": ["System.Collections.Immutable"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "net9.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable"], "netcoreapp2.1": ["System.Collections.Immutable"], "netcoreapp2.2": ["System.Collections.Immutable"], "netcoreapp3.0": ["System.Collections.Immutable"], "netcoreapp3.1": ["System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable"], "netstandard2.1": ["System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "10.0.0", "sha512": "sha512-1ZLtiaq0AjW8wkN+DmCLvrNrJRhjNN3RB1s7wSGNEuoqYbG2BiTrOrbvYwxylPJvEyGuKn/nCXs1Z7oEbS5Eew==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "10.0.1", "sha512": "sha512-wY+305y+G3F14m0ba1znntQaZZSGDeCkUYJu1MP4ms0yer0wjx1lDr9PV+3PPXF1FJaKZqynUPzh5S0Oud2OHg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable"], "net462": ["System.Collections.Immutable"], "net47": ["System.Collections.Immutable"], "net471": ["System.Collections.Immutable"], "net472": ["System.Collections.Immutable"], "net48": ["System.Collections.Immutable"], "net5.0": ["System.Collections.Immutable"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "net9.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable"], "netcoreapp2.1": ["System.Collections.Immutable"], "netcoreapp2.2": ["System.Collections.Immutable"], "netcoreapp3.0": ["System.Collections.Immutable"], "netcoreapp3.1": ["System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable"], "netstandard2.1": ["System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "10.0.1", "sha512": "sha512-PhPuIrzG9J6x9stz1ItEOOO+avF41vmPMrvVCGZvIdNUym5i7fepNQsegXfAWYNl8Am8hswj+Gv4eIl9y3gy/Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "10.0.0", "sha512": "sha512-teHxNzoQmQKZz4y0rF/bdfZbHe7JuLujMDJ0Ec+mhdy9/55AbOnGXqOaQ8nlJVVdSeMw8xOL3LDzAce1qFBeBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "10.0.0", "sha512": "sha512-okG5NSnh+Q9OYFrwgx0KAaUKXkBmhhI2fjUjB2K9RPboJcpeAplMR4JqbKGOTjHzAZhx6/b05KV3d4B4g7chfQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, - {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "10.0.0", "sha512": "sha512-8eOjQcZanQbdFWIgrf13QPEme7lxkSBucz513v5iEvKZLZEdkNNhHBU21fP2fI02wWGeYTfa+S5eMnTiiDcZQg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "10.0.1", "sha512": "sha512-ktT9zhhc2gGmPFGOCy6m+eqnY/yBEnaSanjINTDmF4zqNmSteydGR/Hebaf1IkNOGWs2jrkXvovWO86omwLGQA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "10.0.1", "sha512": "sha512-iRoZmmRaI0ZLsMd9+ESdBWZX/tYhM9kozmutE53ZJCiGFXQ7aYaD1Q6LJU8UCDclB+4kY2VfFBRNcIU87jsdgw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "10.0.1", "sha512": "sha512-zRRdonHIIJHLwFRDMynwD8zZRpkF+FOFz3kqsTO0Az36YBoRsDVjrhnH79P2+UUFl4eBAbgr9U/m7qFtNBtbnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, From d31a297a97b38ae456b6a97f79d41b6fb60765b4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 14:53:40 +0100 Subject: [PATCH 108/194] C#: Make support for .slnx files. --- .../Semmle.Autobuild.Shared/Autobuilder.cs | 10 +++++++++- .../Semmle.Autobuild.Shared/Solution.cs | 3 +-- .../FileProvider.cs | 2 +- .../SolutionFile.cs | 6 +++--- csharp/extractor/Semmle.Util/Language.cs | 14 ++++++++++---- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs index 919e3821750..a15235d3502 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs @@ -182,8 +182,16 @@ namespace Semmle.Autobuild.Shared if (ret is not null) return ret; + // Then look for language specific solution files, e.g. `.slnx` files + if (Options.Language.SolutionExtension is string solutionExtension) + { + ret = FindFiles(solutionExtension, f => new Solution(this, f, false))?.ToList(); + if (ret is not null) + return ret; + } + // Finally look for language specific project files, e.g. `.csproj` files - ret = FindFiles(this.Options.Language.ProjectExtension, f => new Project(this, f))?.ToList(); + ret = FindFiles(Options.Language.ProjectExtension, f => new Project(this, f))?.ToList(); return ret ?? new List(); }); diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs index 7a98a01de25..5cf0c4a8487 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs @@ -4,12 +4,11 @@ using System.IO; using System.Linq; using Microsoft.Build.Construction; using Microsoft.Build.Exceptions; -using Semmle.Util.Logging; namespace Semmle.Autobuild.Shared { /// - /// A solution file, extension .sln. + /// A solution file, extension .sln or .slnx. /// public interface ISolution : IProjectOrSolution { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs index e908855df0a..9e6b810b95e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs @@ -37,7 +37,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching smallNonBinary = new Lazy(() => ReturnAndLogFiles("small non-binary", SelectSmallFiles(allNonBinary.Value).SelectFileNames().ToArray())); sources = new Lazy(() => SelectTextFileNamesByExtension("source", ".cs")); projects = new Lazy(() => SelectTextFileNamesByExtension("project", ".csproj")); - solutions = new Lazy(() => SelectTextFileNamesByExtension("solution", ".sln")); + solutions = new Lazy(() => SelectTextFileNamesByExtension("solution", ".sln", ".slnx")); dlls = new Lazy(() => SelectBinaryFileNamesByExtension("DLL", ".dll")); nugetConfigs = new Lazy(() => SelectTextFileNamesByName("nuget.config")); globalJsons = new Lazy(() => SelectTextFileNamesByName("global.json")); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs index 6858cd77f4a..f143ec8f3d2 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs @@ -6,7 +6,7 @@ using Microsoft.Build.Construction; namespace Semmle.Extraction.CSharp.DependencyFetching { /// - /// Access data in a .sln file. + /// Access data in a .sln or .slnx file. /// internal class SolutionFile { @@ -17,7 +17,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Read the file. /// - /// The filename of the .sln. + /// The filename of the .sln or .slnx. public SolutionFile(string filename) { // SolutionFile.Parse() expects a rooted path. @@ -26,7 +26,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } /// - /// Projects directly included in the .sln file. + /// Projects directly included in the .sln or .slnx file. /// public IEnumerable MsBuildProjects { diff --git a/csharp/extractor/Semmle.Util/Language.cs b/csharp/extractor/Semmle.Util/Language.cs index fa3d71b6154..a895a6e3e06 100644 --- a/csharp/extractor/Semmle.Util/Language.cs +++ b/csharp/extractor/Semmle.Util/Language.cs @@ -2,21 +2,27 @@ { public sealed class Language { - public static Language Cpp { get; } = new Language(".vcxproj", "CPP"); - public static Language CSharp { get; } = new Language(".csproj", "CSHARP"); + public static Language Cpp { get; } = new Language("CPP", ".vcxproj"); + public static Language CSharp { get; } = new Language("CSHARP", ".csproj", ".slnx"); public bool ProjectFileHasThisLanguage(string path) => System.IO.Path.GetExtension(path) == ProjectExtension; public string ProjectExtension { get; } + public string? SolutionExtension { get; } public string UpperCaseName { get; } - private Language(string extension, string name) + private Language(string name, string projectExtension) { - ProjectExtension = extension; + ProjectExtension = projectExtension; UpperCaseName = name; } + private Language(string name, string projectExtension, string solutionExtension) : this(name, projectExtension) + { + SolutionExtension = solutionExtension; + } + public override string ToString() => ProjectExtension == Cpp.ProjectExtension ? "C/C++" : "C#"; } From 23981b474bbb135327eb7e8a6e37efff42fa16d4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 15:23:51 +0100 Subject: [PATCH 109/194] C#: Update integration test expected output. --- .../all-platforms/autobuild_slnx/Files.expected | 4 ---- .../standalone_slnx/CompilationInfo.expected | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected index 5753e4f76d8..9654753b642 100644 --- a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected @@ -2,7 +2,3 @@ | proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | | proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs | | proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs | -| proj2/Program.cs:0:0:0:0 | proj2/Program.cs | -| proj2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | proj2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | -| proj2/obj/Debug/net10.0/proj2.AssemblyInfo.cs:0:0:0:0 | proj2/obj/Debug/net10.0/proj2.AssemblyInfo.cs | -| proj2/obj/Debug/net10.0/proj2.GlobalUsings.g.cs:0:0:0:0 | proj2/obj/Debug/net10.0/proj2.GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected index 77e6ccfae9d..3bd3941b27c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected @@ -7,12 +7,12 @@ | Reachable fallback NuGet feed count | 1.0 | | Resource extraction enabled | 0.0 | | Restored .NET framework variants | 1.0 | -| Restored projects through solution files | 0.0 | -| Solution files on filesystem | 0.0 | +| Restored projects through solution files | 2.0 | +| Solution files on filesystem | 1.0 | | Source files generated | 1.0 | | Source files on filesystem | 2.0 | -| Successfully restored project files | 2.0 | -| Successfully restored solution files | 0.0 | +| Successfully restored project files | 0.0 | +| Successfully restored solution files | 1.0 | | Unresolved references | 0.0 | | UseWPF set | 0.0 | | UseWindowsForms set | 0.0 | From efb585384be38f6122fc52d9a32d222da09e44b2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Dec 2025 15:27:28 +0100 Subject: [PATCH 110/194] C#: Add change-note. --- csharp/ql/lib/change-notes/2025-12-11-slnx-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2025-12-11-slnx-support.md diff --git a/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md b/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md new file mode 100644 index 00000000000..9ca9b989812 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added autobuilder and `build-mode: none` support for `.slnx` solution files. From 84bbe715224296dc65517448625df1aa9843cad1 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 11 Dec 2025 15:26:17 +0100 Subject: [PATCH 111/194] C/C++ overlay: Discard xml entities --- .../lib/semmle/code/cpp/internal/Overlay.qll | 2 + .../semmle/code/cpp/internal/OverlayXml.qll | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index 64bfb7a8f17..b870bbfb9f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -2,6 +2,8 @@ * Defines entity discard predicates for C++ overlay analysis. */ +private import OverlayXml + /** * Holds always for the overlay variant and never for the base variant. * This local predicate is used to define local predicates that behave diff --git a/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll b/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll new file mode 100644 index 00000000000..95d49f2d611 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll @@ -0,0 +1,46 @@ +overlay[local] +module; + +/** + * A local predicate that always holds for the overlay variant and never holds for the base variant. + * This is used to define local predicates that behave differently for the base and overlay variant. + */ +private predicate isOverlay() { databaseMetadata("isOverlay", "true") } + +private string getXmlFile(@xmllocatable locatable) { + exists(@location_default location, @file file | xmllocations(locatable, location) | + locations_default(location, file, _, _, _, _) and + files(file, result) + ) +} + +private string getXmlFileInBase(@xmllocatable locatable) { + not isOverlay() and + result = getXmlFile(locatable) +} + +/** + * Holds if the given `file` was extracted as part of the overlay and was extracted by the HTML/XML + * extractor. + */ +private predicate overlayXmlExtracted(string file) { + isOverlay() and + exists(@xmllocatable locatable | + not files(locatable, _) and not xmlNs(locatable, _, _, _) and file = getXmlFile(locatable) + ) +} + +/** + * Holds if the given XML `locatable` should be discarded, because it is part of the overlay base + * and is in a file that was also extracted as part of the overlay database. + */ +overlay[discard_entity] +private predicate discardXmlLocatable(@xmllocatable locatable) { + exists(string file | file = getXmlFileInBase(locatable) | + overlayChangedFiles(file) + or + // The HTML/XML extractor is currently not incremental and may extract more files than those + // included in overlayChangedFiles. + overlayXmlExtracted(file) + ) +} From 1142f4a54aa06cce1193c418dccabbf10775c4c3 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 15:41:47 +0100 Subject: [PATCH 112/194] C#: Connect shared Guards to SSA BarrierGuards. --- .../code/csharp/dataflow/internal/SsaImpl.qll | 56 +++++++------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 70fda2b1296..5872459445f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -967,18 +967,22 @@ private module Cached { cached // nothing is actually cached module BarrierGuard { - private predicate guardChecksAdjTypes( - DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, - DataFlowIntegrationInput::GuardValue branch + private import codeql.util.Unit + + private predicate guardChecksAdjTypes(Guards::Guards::Guard g, Expr e, Guards::GuardValue v) { + guardChecks(g, e, v) + } + + private predicate guardChecksWithWrappers( + Guards::Guard g, Definition def, Guards::GuardValue val, Unit state ) { - exists(Guards::GuardValue v | - guardChecks(g, e.getAstNode(), v) and - branch = v.asBooleanValue() - ) + Guards::Guards::ValidationWrapper::guardChecksDef(g, def, val) and + exists(state) } private Node getABarrierNodeImpl() { - result = DataFlowIntegrationImpl::BarrierGuard::getABarrierNode() + result = + DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(_) } predicate getABarrierNode = getABarrierNodeImpl/0; @@ -1037,38 +1041,18 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu ) } - class GuardValue = Boolean; + class GuardValue = Guards::GuardValue; - class Guard extends Guards::Guard { - /** - * Holds if the evaluation of this guard to `branch` corresponds to the edge - * from `bb1` to `bb2`. - */ - predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { - exists(ControlFlow::ConditionalSuccessor s | - this.getAControlFlowNode() = bb1.getLastNode() and - bb2 = bb1.getASuccessor(s) and - s.getValue() = branch - ) - } + class Guard = Guards::Guard; - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate valueControlsBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { - this.hasValueBranchEdge(bb1, bb2, branch) - } + /** Holds if the guard `guard` directly controls block `bb` upon evaluating to `val`. */ + predicate guardDirectlyControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.directlyValueControls(bb, val) } - /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ - predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, GuardValue branch) { - exists(ConditionBlock conditionBlock, ControlFlow::ConditionalSuccessor s | - guard.getAControlFlowNode() = conditionBlock.getLastNode() and - s.getValue() = branch and - conditionBlock.edgeDominates(bb, s) - ) + /** Holds if the guard `guard` controls block `bb` upon evaluating to `val`. */ + predicate guardControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.valueControls(bb, val) } } From d24b0ff59674dae50a261db45d69486393332f41 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 8 Dec 2025 14:53:09 +0100 Subject: [PATCH 113/194] Java: Basic support for pass-through barrier models. --- .../code/java/dataflow/ExternalFlow.qll | 43 ++++++++++++++++++- .../internal/ExternalFlowExtensions.qll | 8 ++++ .../dataflow/internal/FlowSummaryImpl.qll | 22 +++++++++- .../dataflow/internal/FlowSummaryImpl.qll | 35 ++++++++++++++- shared/mad/codeql/mad/ModelValidation.qll | 2 +- 5 files changed, 104 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index d1849df0f3e..283a55ddb0b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -174,6 +174,15 @@ predicate sinkModel( ) } +/** Holds if a barrier model exists for the given parameters. */ +predicate barrierModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +) { + Extensions::barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance, + madId) +} + /** Holds if a summary model exists for the given parameters. */ predicate summaryModel( string package, string type, boolean subtypes, string name, string signature, string ext, @@ -234,6 +243,7 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { "Summary: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance ) + //TODO: possibly barrier models? } /** Holds if a neutral model exists for the given parameters. */ @@ -292,6 +302,7 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int summaryModel(subpkg, type, subtypes, name, signature, ext, input, output, kind, provenance, _) ) + // TODO: possibly barrier models? ) } @@ -303,7 +314,8 @@ module ModelValidation { summaryModel(_, _, _, _, _, _, path, _, _, _, _) or summaryModel(_, _, _, _, _, _, _, path, _, _, _) or sinkModel(_, _, _, _, _, _, path, _, _, _) or - sourceModel(_, _, _, _, _, _, path, _, _, _) + sourceModel(_, _, _, _, _, _, path, _, _, _) or + barrierModel(_, _, _, _, _, _, path, _, _, _) } private module MkAccessPath = AccessPathSyntax::AccessPath; @@ -338,6 +350,8 @@ module ModelValidation { exists(string pred, AccessPath output, AccessPathToken part | sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source" or + barrierModel(_, _, _, _, _, _, output, _, _, _) and pred = "barrier" + or summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary" | ( @@ -355,7 +369,11 @@ module ModelValidation { private module KindValConfig implements SharedModelVal::KindValidationConfigSig { predicate summaryKind(string kind) { summaryModel(_, _, _, _, _, _, _, _, kind, _, _) } - predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) } + predicate sinkKind(string kind) { + sinkModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierModel(_, _, _, _, _, _, _, kind, _, _) + } predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } @@ -373,6 +391,8 @@ module ModelValidation { or sinkModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "sink" or + barrierModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "barrier" + or summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or @@ -418,6 +438,8 @@ private predicate elementSpec( or sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(package, type, subtypes, name, signature, ext, _, _, _, _) + or summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) or neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = true @@ -578,6 +600,17 @@ private module Cached { isSinkNode(n, kind, model) and n.asNode() = node ) } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + } } import Cached @@ -594,6 +627,12 @@ predicate sourceNode(Node node, string kind) { sourceNode(node, kind, _) } */ predicate sinkNode(Node node, string kind) { sinkNode(node, kind, _) } +/** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ +predicate barrierNode(Node node, string kind) { barrierNode(node, kind, _) } + // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends SummarizedCallable { SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _, _) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 32b5d289e28..8b3d91017f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -20,6 +20,14 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index 8dc28ea2f60..b3e0dda2b3d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -158,7 +158,8 @@ private predicate relatedArgSpec(Callable c, string spec) { summaryModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _, _) or summaryModel(namespace, type, subtypes, name, signature, ext, _, spec, _, _, _) or sourceModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or - sinkModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) + sinkModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or + barrierModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) | c = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) @@ -259,6 +260,25 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element e, string output, string kind, Public::Provenance provenance, string model + ) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + SourceOrSinkElement baseBarrier, string originalOutput, QlBuiltins::ExtensionId madId + | + barrierModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, provenance, + madId) and + model = "MaD:" + madId.toString() and + baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and + ( + e = baseBarrier and output = originalOutput + or + correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalOutput, output) + ) + ) + } + class SourceOrSinkElement = Element; private newtype TInterpretNode = diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 6cc9d6f88a4..3be9e7a30ba 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -2052,6 +2052,14 @@ module Make< Element n, string input, string kind, Provenance provenance, string model ); + /** + * Holds if an external barrier specification exists for `n` with output specification + * `output` and kind `kind`. + */ + predicate barrierElement( + Element n, string output, string kind, Provenance provenance, string model + ); + class SourceOrSinkElement extends Element; /** An entity used to interpret a source/sink specification. */ @@ -2105,7 +2113,8 @@ module Make< private predicate sourceSinkSpec(string spec) { sourceElement(_, spec, _, _, _) or - sinkElement(_, spec, _, _, _) + sinkElement(_, spec, _, _, _) or + barrierElement(_, spec, _, _, _) } private module AccessPath = AccessPathSyntax::AccessPath; @@ -2160,11 +2169,22 @@ module Make< ) } + private predicate barrierElementRef( + InterpretNode ref, SourceSinkAccessPath output, string kind, string model + ) { + exists(SourceOrSinkElement e | + barrierElement(e, output, kind, _, model) and + if outputNeedsReferenceExt(output.getToken(0)) + then e = ref.getCallTarget() + else e = ref.asElement() + ) + } + /** Holds if the first `n` tokens of `output` resolve to the given interpretation. */ private predicate interpretOutput( SourceSinkAccessPath output, int n, InterpretNode ref, InterpretNode node ) { - sourceElementRef(ref, output, _, _) and + (sourceElementRef(ref, output, _, _) or barrierElementRef(ref, output, _, _)) and n = 0 and ( if output = "" @@ -2280,6 +2300,17 @@ module Make< ) } + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + predicate isBarrierNode(InterpretNode node, string kind, string model) { + exists(InterpretNode ref, SourceSinkAccessPath output | + barrierElementRef(ref, output, kind, model) and + interpretOutput(output, output.getNumToken(), ref, node) + ) + } + final private class SourceOrSinkElementFinal = SourceOrSinkElement; signature predicate sourceOrSinkElementSig( diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index 5d4698bed1d..9791355d03a 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -173,7 +173,7 @@ module KindValidation { or exists(string kind, string msg | Config::sinkKind(kind) | not kind instanceof ValidSinkKind and - msg = "Invalid kind \"" + kind + "\" in sink model." and + msg = "Invalid kind \"" + kind + "\" in sink or barrier model." and // The part of this message that refers to outdated sink kinds can be deleted after June 1st, 2024. if kind instanceof OutdatedSinkKind then result = msg + " " + kind.(OutdatedSinkKind).outdatedMessage() From 8da65ec6d0404fd2e797b04a67326acdbe246153 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 9 Dec 2025 12:35:27 +0100 Subject: [PATCH 114/194] Java: Add support for boolean MaD barrier guards. --- .../code/java/dataflow/ExternalFlow.qll | 66 ++++++++++++++++- .../java/dataflow/internal/DataFlowUtil.qll | 28 +++++++ .../internal/ExternalFlowExtensions.qll | 8 ++ .../dataflow/internal/FlowSummaryImpl.qll | 27 ++++++- .../code/java/dataflow/internal/SsaImpl.qll | 30 ++++++++ .../dataflow/internal/FlowSummaryImpl.qll | 74 ++++++++++++++++++- 6 files changed, 227 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 283a55ddb0b..e612239a76e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -91,6 +91,7 @@ module; import java private import semmle.code.java.dataflow.DataFlow::DataFlow +private import semmle.code.java.controlflow.Guards private import FlowSummary as FlowSummary private import internal.DataFlowPrivate private import internal.FlowSummaryImpl @@ -183,6 +184,15 @@ predicate barrierModel( madId) } +/** Holds if a barrier guard model exists for the given parameters. */ +predicate barrierGuardModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +) { + Extensions::barrierGuardModel(package, type, subtypes, name, signature, ext, input, + acceptingvalue, kind, provenance, madId) +} + /** Holds if a summary model exists for the given parameters. */ predicate summaryModel( string package, string type, boolean subtypes, string name, string signature, string ext, @@ -315,7 +325,8 @@ module ModelValidation { summaryModel(_, _, _, _, _, _, _, path, _, _, _) or sinkModel(_, _, _, _, _, _, path, _, _, _) or sourceModel(_, _, _, _, _, _, path, _, _, _) or - barrierModel(_, _, _, _, _, _, path, _, _, _) + barrierModel(_, _, _, _, _, _, path, _, _, _) or + barrierGuardModel(_, _, _, _, _, _, path, _, _, _, _) } private module MkAccessPath = AccessPathSyntax::AccessPath; @@ -328,6 +339,8 @@ module ModelValidation { exists(string pred, AccessPath input, AccessPathToken part | sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink" or + barrierGuardModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "barrier guard" + or summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary" | ( @@ -373,6 +386,8 @@ module ModelValidation { sinkModel(_, _, _, _, _, _, _, kind, _, _) or barrierModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierGuardModel(_, _, _, _, _, _, _, _, kind, _, _) } predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } @@ -393,6 +408,9 @@ module ModelValidation { or barrierModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "barrier" or + barrierGuardModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and + pred = "barrier guard" + or summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or @@ -418,6 +436,14 @@ module ModelValidation { invalidProvenance(provenance) and result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) + or + exists(string acceptingvalue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and + invalidAcceptingValue(acceptingvalue) and + result = + "Unrecognized accepting value description \"" + acceptingvalue + + "\" in barrier guard model." + ) } /** Holds if some row in a MaD flow model appears to contain typos. */ @@ -440,6 +466,8 @@ private predicate elementSpec( or barrierModel(package, type, subtypes, name, signature, ext, _, _, _, _) or + barrierGuardModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) + or summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) or neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = true @@ -601,6 +629,39 @@ private module Cached { ) } + private newtype TKindModelPair = + TMkPair(string kind, string model) { isBarrierGuardNode(_, _, kind, model) } + + private GuardValue convertAcceptingValue(AcceptingValue av) { + av.isTrue() and result.asBooleanValue() = true + or + av.isFalse() and result.asBooleanValue() = false + or + av.isNoException() and result.getDualValue().isThrowsException() + or + av.isZero() and result.asIntValue() = 0 + or + av.isNotZero() and result.getDualValue().asIntValue() = 0 + or + av.isNull() and result.isNullValue() + or + av.isNotNull() and result.isNonNullValue() + } + + private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + string model + | + isBarrierGuardNode(n, acceptingvalue, kind, model) and + n.asNode().asExpr() = e and + kmp = TMkPair(kind, model) and + gv = convertAcceptingValue(acceptingvalue) + | + g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e + ) + } + /** * Holds if `node` is specified as a barrier with the given kind in a MaD flow * model. @@ -610,6 +671,9 @@ private module Cached { exists(SourceSinkInterpretationInput::InterpretNode n | isBarrierNode(n, kind, model) and n.asNode() = node ) + or + ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index d96834a5533..e2e80c293ef 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -420,3 +420,31 @@ module BarrierGuard { /** Gets a node that is safely guarded by the given guard check. */ Node getABarrierNode() { result = BarrierGuardValue::getABarrierNode() } } + +bindingset[this] +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `gv`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, P param); +} + +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode(P param) { + SsaFlow::asNode(result) = + SsaImpl::DataFlowIntegration::ParameterizedBarrierGuard::getABarrierNode(param) + } +} diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 8b3d91017f6..5386d916e24 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -28,6 +28,14 @@ extensible predicate barrierModel( string output, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index b3e0dda2b3d..19d9a33328b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -159,7 +159,8 @@ private predicate relatedArgSpec(Callable c, string spec) { summaryModel(namespace, type, subtypes, name, signature, ext, _, spec, _, _, _) or sourceModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or sinkModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or - barrierModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) + barrierModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or + barrierGuardModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _, _) | c = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) @@ -267,8 +268,28 @@ module SourceSinkInterpretationInput implements string namespace, string type, boolean subtypes, string name, string signature, string ext, SourceOrSinkElement baseBarrier, string originalOutput, QlBuiltins::ExtensionId madId | - barrierModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, provenance, - madId) and + barrierModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, + provenance, madId) and + model = "MaD:" + madId.toString() and + baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and + ( + e = baseBarrier and output = originalOutput + or + correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalOutput, output) + ) + ) + } + + predicate barrierGuardElement( + Element e, string output, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + SourceOrSinkElement baseBarrier, string originalOutput, QlBuiltins::ExtensionId madId + | + barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalOutput, + acceptingvalue, kind, provenance, madId) and model = "MaD:" + madId.toString() and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 323f14f550f..bafb16d6ab5 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -588,6 +588,36 @@ private module Cached { predicate getABarrierNode = getABarrierNodeImpl/0; } + + bindingset[this] + private signature class ParamSig; + + private module WithParam { + signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue gv, P param); + } + + cached // nothing is actually cached + module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + private predicate guardChecksAdjTypes( + Guards::Guards_v3::Guard g, Expr e, Guards::GuardValue gv, P param + ) { + guardChecks(g, e, gv, param) + } + + private predicate guardChecksWithWrappers( + DataFlowIntegrationInput::Guard g, Definition def, Guards::GuardValue val, P param + ) { + Guards::Guards_v3::ParameterizedValidationWrapper::guardChecksDef(g, + def, val, param) + } + + private Node getABarrierNodeImpl(P param) { + result = + DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(param) + } + + predicate getABarrierNode = getABarrierNodeImpl/1; + } } cached diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 3be9e7a30ba..4ab2eb1650c 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -215,6 +215,35 @@ module Make< ] } + class AcceptingValue extends string { + AcceptingValue() { + this = + [ + "true", + "false", + "no-exception", + "zero", + "not-zero", + "null", + "not-null", + ] + } + + predicate isTrue() { this = "true" } + + predicate isFalse() { this = "false" } + + predicate isNoException() { this = "no-exception" } + + predicate isZero() { this = "zero" } + + predicate isNotZero() { this = "not-zero" } + + predicate isNull() { this = "null" } + + predicate isNotNull() { this = "not-null" } + } + /** * A class used to represent provenance values for MaD models. * @@ -2015,6 +2044,12 @@ module Make< not exists(interpretComponent(c)) } + /** Holds if `acceptingvalue` is not a valid barrier guard accepting-value. */ + bindingset[acceptingvalue] + predicate invalidAcceptingValue(string acceptingvalue) { + not acceptingvalue instanceof AcceptingValue + } + /** Holds if `provenance` is not a valid provenance value. */ bindingset[provenance] predicate invalidProvenance(string provenance) { not provenance instanceof Provenance } @@ -2060,6 +2095,15 @@ module Make< Element n, string output, string kind, Provenance provenance, string model ); + /** + * Holds if an external barrier guard specification exists for `n` with input + * specification `input`, accepting value `acceptingvalue`, and kind `kind`. + */ + predicate barrierGuardElement( + Element n, string input, AcceptingValue acceptingvalue, string kind, + Provenance provenance, string model + ); + class SourceOrSinkElement extends Element; /** An entity used to interpret a source/sink specification. */ @@ -2114,7 +2158,8 @@ module Make< private predicate sourceSinkSpec(string spec) { sourceElement(_, spec, _, _, _) or sinkElement(_, spec, _, _, _) or - barrierElement(_, spec, _, _, _) + barrierElement(_, spec, _, _, _) or + barrierGuardElement(_, spec, _, _, _, _) } private module AccessPath = AccessPathSyntax::AccessPath; @@ -2180,6 +2225,18 @@ module Make< ) } + private predicate barrierGuardElementRef( + InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingvalue, string kind, + string model + ) { + exists(SourceOrSinkElement e | + barrierGuardElement(e, input, acceptingvalue, kind, _, model) and + if inputNeedsReferenceExt(input.getToken(0)) + then e = ref.getCallTarget() + else e = ref.asElement() + ) + } + /** Holds if the first `n` tokens of `output` resolve to the given interpretation. */ private predicate interpretOutput( SourceSinkAccessPath output, int n, InterpretNode ref, InterpretNode node @@ -2240,7 +2297,7 @@ module Make< private predicate interpretInput( SourceSinkAccessPath input, int n, InterpretNode ref, InterpretNode node ) { - sinkElementRef(ref, input, _, _) and + (sinkElementRef(ref, input, _, _) or barrierGuardElementRef(ref, input, _, _, _)) and n = 0 and ( if input = "" @@ -2311,6 +2368,19 @@ module Make< ) } + /** + * Holds if `node` is specified as a barrier guard argument with the + * given kind in a MaD flow model. + */ + predicate isBarrierGuardNode( + InterpretNode node, AcceptingValue acceptingvalue, string kind, string model + ) { + exists(InterpretNode ref, SourceSinkAccessPath input | + barrierGuardElementRef(ref, input, acceptingvalue, kind, model) and + interpretInput(input, input.getNumToken(), ref, node) + ) + } + final private class SourceOrSinkElementFinal = SourceOrSinkElement; signature predicate sourceOrSinkElementSig( From dcf6041dca95f251fe5d7bbe94b5ca87ed37b14f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 9 Dec 2025 12:52:38 +0100 Subject: [PATCH 115/194] Java: Add empty extensible data. --- java/ql/lib/ext/empty.model.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/ql/lib/ext/empty.model.yml b/java/ql/lib/ext/empty.model.yml index 43028e7cc14..a0ea3cf753b 100644 --- a/java/ql/lib/ext/empty.model.yml +++ b/java/ql/lib/ext/empty.model.yml @@ -13,6 +13,14 @@ extensions: pack: codeql/java-all extensible: summaryModel data: [] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/java-all extensible: neutralModel From f6e40bd49d2c75666c35c37801ed8c6b581932d0 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 9 Dec 2025 12:24:43 +0000 Subject: [PATCH 116/194] Convert trust boundary violation barrier and barrier guard to MaD --- java/ql/lib/ext/org.owasp.esapi.model.yml | 38 ++++++++++++++++- .../code/java/frameworks/owasp/Esapi.qll | 42 ------------------- .../security/TrustBoundaryViolationQuery.qll | 22 +--------- 3 files changed, 39 insertions(+), 63 deletions(-) delete mode 100644 java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll diff --git a/java/ql/lib/ext/org.owasp.esapi.model.yml b/java/ql/lib/ext/org.owasp.esapi.model.yml index 30578debe58..70890d7e03b 100644 --- a/java/ql/lib/ext/org.owasp.esapi.model.yml +++ b/java/ql/lib/ext/org.owasp.esapi.model.yml @@ -1,6 +1,42 @@ extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["org.owasp.esapi", "Validator", true, "isValidCreditCard", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDate", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDirectoryPath", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDouble", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidFileContent", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidFileName", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidInput", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidInteger", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidListItem", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidNumber", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidPrintable", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidRedirectLocation", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidSafeHTML", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidURI", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["org.owasp.esapi", "Validator", true, "getValidCreditCard", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDate", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDirectoryPath", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDouble", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidFileContent", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidFileName", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidInput", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidInteger", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidListItem", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidNumber", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidPrintable", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidRedirectLocation", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidSafeHTML", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidURI", "", "", "ReturnValue", "trust-boundary-violation", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] \ No newline at end of file + - ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll b/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll deleted file mode 100644 index fe95cd0d39d..00000000000 --- a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll +++ /dev/null @@ -1,42 +0,0 @@ -/** Classes and predicates for reasoning about the `owasp.easpi` package. */ -overlay[local?] -module; - -import java - -/** - * The `org.owasp.esapi.Validator` interface. - */ -class EsapiValidator extends RefType { - EsapiValidator() { this.hasQualifiedName("org.owasp.esapi", "Validator") } -} - -/** - * The methods of `org.owasp.esapi.Validator` which validate data. - */ -class EsapiIsValidMethod extends Method { - EsapiIsValidMethod() { - this.getDeclaringType() instanceof EsapiValidator and - this.hasName([ - "isValidCreditCard", "isValidDate", "isValidDirectoryPath", "isValidDouble", - "isValidFileContent", "isValidFileName", "isValidInput", "isValidInteger", - "isValidListItem", "isValidNumber", "isValidPrintable", "isValidRedirectLocation", - "isValidSafeHTML", "isValidURI" - ]) - } -} - -/** - * The methods of `org.owasp.esapi.Validator` which return validated data. - */ -class EsapiGetValidMethod extends Method { - EsapiGetValidMethod() { - this.getDeclaringType() instanceof EsapiValidator and - this.hasName([ - "getValidCreditCard", "getValidDate", "getValidDirectoryPath", "getValidDouble", - "getValidFileContent", "getValidFileName", "getValidInput", "getValidInteger", - "getValidListItem", "getValidNumber", "getValidPrintable", "getValidRedirectLocation", - "getValidSafeHTML", "getValidURI" - ]) - } -} diff --git a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll index b2f49834b5a..477aeb48b64 100644 --- a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll @@ -5,7 +5,6 @@ private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.controlflow.Guards private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSources -private import semmle.code.java.frameworks.owasp.Esapi private import semmle.code.java.security.Sanitizers /** @@ -28,25 +27,8 @@ class TrustBoundaryViolationSink extends DataFlow::Node { */ abstract class TrustBoundaryValidationSanitizer extends DataFlow::Node { } -/** - * A node validated by an OWASP ESAPI validation method. - */ -private class EsapiValidatedInputSanitizer extends TrustBoundaryValidationSanitizer { - EsapiValidatedInputSanitizer() { - this = DataFlow::BarrierGuard::getABarrierNode() or - this.asExpr().(MethodCall).getMethod() instanceof EsapiGetValidMethod - } -} - -/** - * Holds if `g` is a guard that checks that `e` is valid data according to an OWASP ESAPI validation method. - */ -private predicate esapiIsValidData(Guard g, Expr e, boolean branch) { - branch = true and - exists(MethodCall ma | ma.getMethod() instanceof EsapiIsValidMethod | - g = ma and - e = ma.getArgument(1) - ) +private class DefaultTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer { + DefaultTrustBoundaryValidationSanitizer() { barrierNode(this, "trust-boundary-violation") } } /** From f6e3c77145a3127c64f4db69de8aa164ea7c0606 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 9 Dec 2025 12:55:04 +0000 Subject: [PATCH 117/194] Convert path injection barrier to MaD --- java/ql/lib/ext/java.io.model.yml | 5 +++++ .../semmle/code/java/security/PathSanitizer.qll | 16 +++------------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index 3582e2b78ac..07e39c9e12f 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -162,3 +162,8 @@ extensions: extensible: sourceModel data: - ["java.io", "FileInputStream", True, "FileInputStream", "", "", "Argument[this]", "file", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.io", "File", True, "getName", "()", "", "ReturnValue", "path-injection", "manual"] diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index da6f242bde5..2018004a3fb 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -4,6 +4,7 @@ module; import java private import semmle.code.java.controlflow.Guards +private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSources private import semmle.code.java.dataflow.SSA private import semmle.code.java.frameworks.kotlin.IO @@ -288,19 +289,8 @@ private Method getSourceMethod(Method m) { result = m } -/** - * A sanitizer that protects against path injection vulnerabilities - * by extracting the final component of the user provided path. - * - * TODO: convert this class to models-as-data if sanitizer support is added - */ -private class FileGetNameSanitizer extends PathInjectionSanitizer { - FileGetNameSanitizer() { - exists(MethodCall mc | - mc.getMethod().hasQualifiedName("java.io", "File", "getName") and - this.asExpr() = mc - ) - } +private class DefaultPathInjectionSanitizer extends PathInjectionSanitizer { + DefaultPathInjectionSanitizer() { barrierNode(this, "path-injection") } } /** Holds if `g` is a guard that checks for `..` components. */ From 5ab26e481b1cf403f684b41e5c37b417b7cc7b54 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 9 Dec 2025 15:22:35 +0100 Subject: [PATCH 118/194] Add dummy instantiations for other languages. --- .../code/cpp/dataflow/internal/FlowSummaryImpl.qll | 13 +++++++++++++ .../csharp/dataflow/internal/FlowSummaryImpl.qll | 13 +++++++++++++ .../semmle/go/dataflow/internal/FlowSummaryImpl.qll | 13 +++++++++++++ .../swift/dataflow/internal/FlowSummaryImpl.qll | 13 +++++++++++++ 4 files changed, 52 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index d89ab06ed82..a1d9dd86c40 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -148,6 +148,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + private newtype TInterpretNode = TElement_(Element n) or TNode_(Node n) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 3ee16f21489..842c28ac75b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -235,6 +235,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + class SourceOrSinkElement = Element; private newtype TInterpretNode = diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index f12c9e6eeb1..41ded04634b 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -163,6 +163,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + // Note that due to embedding, which is currently implemented via some // Methods having multiple qualified names, a given Method is liable to have // more than one SourceOrSinkElement, one for each of the names it claims. diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index 46e2e63f2ca..692e3626080 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -159,6 +159,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + private newtype TInterpretNode = TElement_(Element n) or TNode_(Node n) or From 7e562f3150654458dd4490dcbc40ce663ead9d16 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 9 Dec 2025 15:45:19 +0000 Subject: [PATCH 119/194] Convert request forgery barrier guard to MaD --- java/ql/lib/ext/java.net.model.yml | 5 +++++ .../code/java/security/RequestForgery.qll | 21 ++----------------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 084fce7bbc4..e69db468a4a 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -34,6 +34,11 @@ extensions: - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "request-forgery", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[])", "", "Argument[0]", "request-forgery", "manual"] - ["java.net", "PasswordAuthentication", False, "PasswordAuthentication", "(String,char[])", "", "Argument[0]", "credentials-username", "hq-generated"] + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["java.net", "URI", True, "isAbsolute", "()", "", "Argument[this]", "false", "request-forgery", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 9e3dec00357..690e4f9315b 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -118,25 +118,8 @@ private class ContainsUrlSanitizer extends RequestForgerySanitizer { } } -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -private predicate isRelativeUrlSanitizer(Guard guard, Expr e, boolean branch) { - guard = - any(MethodCall call | - call.getMethod().hasQualifiedName("java.net", "URI", "isAbsolute") and - e = call.getQualifier() and - branch = false - ) -} - -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -private class RelativeUrlSanitizer extends RequestForgerySanitizer { - RelativeUrlSanitizer() { - this = DataFlow::BarrierGuard::getABarrierNode() - } +private class DefaultRequestForgerySanitizer extends RequestForgerySanitizer { + DefaultRequestForgerySanitizer() { barrierNode(this, "request-forgery") } } /** From 44295e4c7d21e2b1d67376456a6f42db9da9cce4 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 9 Dec 2025 16:11:12 +0000 Subject: [PATCH 120/194] Convert XSS barrier to MaD --- java/ql/lib/ext/hudson.model.yml | 6 ++++++ .../code/java/frameworks/hudson/Hudson.qll | 11 ---------- java/ql/lib/semmle/code/java/security/XSS.qll | 20 +++++++++++++++---- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/java/ql/lib/ext/hudson.model.yml b/java/ql/lib/ext/hudson.model.yml index eda30b6a0ff..0dfff091fcd 100644 --- a/java/ql/lib/ext/hudson.model.yml +++ b/java/ql/lib/ext/hudson.model.yml @@ -50,6 +50,12 @@ extensions: - ["hudson", "FilePath", False, "readToString", "", "", "ReturnValue", "file", "manual"] - ["hudson", "Plugin", True, "configure", "", "", "Parameter", "remote", "manual"] - ["hudson", "Plugin", True, "newInstance", "", "", "Parameter", "remote", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["hudson", "Util", True, "escape", "(String)", "", "ReturnValue", "html-injection", "manual"] + # Not including xmlEscape because it only accounts for >, <, and &. It does not account for ", or ', which makes it an incomplete XSS sanitizer. - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll index 44752f94576..86b65928917 100644 --- a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll @@ -14,14 +14,3 @@ class HudsonWebMethod extends Method { this.getDeclaringType().getASourceSupertype*().hasQualifiedName("hudson.model", "Descriptor") } } - -private class HudsonUtilXssSanitizer extends XssSanitizer { - HudsonUtilXssSanitizer() { - this.asExpr() - .(MethodCall) - .getMethod() - // Not including xmlEscape because it only accounts for >, <, and &. - // It does not account for ", or ', which makes it an incomplete XSS sanitizer. - .hasQualifiedName("hudson", "Util", "escape") - } -} diff --git a/java/ql/lib/semmle/code/java/security/XSS.qll b/java/ql/lib/semmle/code/java/security/XSS.qll index 990371cc8cf..c131f868f36 100644 --- a/java/ql/lib/semmle/code/java/security/XSS.qll +++ b/java/ql/lib/semmle/code/java/security/XSS.qll @@ -54,12 +54,24 @@ private class DefaultXssSink extends XssSink { } } -/** A default sanitizer that considers numeric and boolean typed data safe for writing to output. */ private class DefaultXssSanitizer extends XssSanitizer { - DefaultXssSanitizer() { + DefaultXssSanitizer() { barrierNode(this, ["html-injection", "js-injection"]) } +} + +/** A sanitizer that considers numeric and boolean typed data safe for writing to output. */ +private class PrimitiveSanitizer extends XssSanitizer { + PrimitiveSanitizer() { this.getType() instanceof NumericType or - this.getType() instanceof BooleanType or - // Match `org.springframework.web.util.HtmlUtils.htmlEscape` and possibly other methods like it. + this.getType() instanceof BooleanType + } +} + +/** + * A call to `org.springframework.web.util.HtmlUtils.htmlEscape`, or possibly + * other methods like it, considered as a sanitizer for XSS. + */ +private class HtmlEscapeXssSanitizer extends XssSanitizer { + HtmlEscapeXssSanitizer() { this.asExpr().(MethodCall).getMethod().getName().regexpMatch("(?i)html_?escape.*") } } From 87f58fe51a1424b121526ddfcda6f2f874401d85 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 9 Dec 2025 16:41:13 +0000 Subject: [PATCH 121/194] Convert regex injection barrier to MaD --- java/ql/lib/ext/java.util.regex.model.yml | 5 +++++ .../code/java/security/regexp/RegexInjection.qll | 13 ++----------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/java/ql/lib/ext/java.util.regex.model.yml b/java/ql/lib/ext/java.util.regex.model.yml index 4f0776e59bd..20269a271b5 100644 --- a/java/ql/lib/ext/java.util.regex.model.yml +++ b/java/ql/lib/ext/java.util.regex.model.yml @@ -12,6 +12,11 @@ extensions: - ["java.util.regex", "Pattern", False, "split", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] - ["java.util.regex", "Pattern", False, "split", "(CharSequence,int)", "", "Argument[this]", "regex-use[0]", "manual"] - ["java.util.regex", "Pattern", False, "splitAsStream", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.util.regex", "Pattern", False, "quote", "(String)", "", "ReturnValue", "regex-use", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll index eb27ec87375..d91b411b797 100644 --- a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll +++ b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll @@ -21,17 +21,8 @@ private class DefaultRegexInjectionSink extends RegexInjectionSink { } } -/** - * A call to the `Pattern.quote` method, which gives metacharacters or escape sequences - * no special meaning. - */ -private class PatternQuoteCall extends RegexInjectionSanitizer { - PatternQuoteCall() { - exists(MethodCall ma, Method m | m = ma.getMethod() | - ma.getArgument(0) = this.asExpr() and - m instanceof PatternQuoteMethod - ) - } +private class DefaultRegexInjectionSanitizer extends RegexInjectionSanitizer { + DefaultRegexInjectionSanitizer() { barrierNode(this, "regex-use") } } /** From 4066c0d84a349ea1a7cbef053f246f443c31f25d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 15:53:54 +0100 Subject: [PATCH 122/194] Java: Fix input/output naming. --- .../code/java/dataflow/internal/FlowSummaryImpl.qll | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index 19d9a33328b..c712e1ae5fb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -281,21 +281,21 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string output, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, Public::Provenance provenance, string model ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseBarrier, string originalOutput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseBarrier, string originalInput, QlBuiltins::ExtensionId madId | - barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalOutput, + barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalInput, acceptingvalue, kind, provenance, madId) and model = "MaD:" + madId.toString() and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( - e = baseBarrier and output = originalOutput + e = baseBarrier and input = originalInput or - correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalOutput, output) + correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalInput, input) ) ) } From 926d7f53f29438b62559b1ee885d0db42cd07ede Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 11 Dec 2025 16:56:29 +0100 Subject: [PATCH 123/194] C/C++ overlay: Update identical files --- config/identical-files.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/identical-files.json b/config/identical-files.json index a33dbb1997b..bdaf567ae17 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -282,6 +282,7 @@ "java/ql/lib/semmle/code/java/internal/OverlayXml.qll", "go/ql/lib/semmle/go/internal/OverlayXml.qll", "python/ql/lib/semmle/python/internal/OverlayXml.qll", - "csharp/ql/lib/semmle/code/csharp/internal/OverlayXml.qll" + "csharp/ql/lib/semmle/code/csharp/internal/OverlayXml.qll", + "cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll" ] } From d88bae9ec20df5e18dba21f7e07db0c63724b11f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:57:16 +0000 Subject: [PATCH 124/194] Rust: Narrow the exclusion a little. --- rust/ql/src/queries/unusedentities/UnusedVariable.qll | 8 +++++--- .../query-tests/unusedentities/UnusedVariable.expected | 1 + rust/ql/test/query-tests/unusedentities/main.rs | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rust/ql/src/queries/unusedentities/UnusedVariable.qll b/rust/ql/src/queries/unusedentities/UnusedVariable.qll index 64d49a547f1..744af559dd2 100644 --- a/rust/ql/src/queries/unusedentities/UnusedVariable.qll +++ b/rust/ql/src/queries/unusedentities/UnusedVariable.qll @@ -44,7 +44,9 @@ predicate isAllowableUnused(Variable v) { // a 'self' variable v.getText() = "self" or - // a common source of false positives is match arms that are misrecognized as - // a variable, having not been correctly resolved - v.getPat().getParentNode() instanceof MatchArm + // a common source of false positives is match arms containing constants + // (typically beginning with a capital letter) that are misrecognized as a + // variable, having not been correctly resolved. + v.getPat().getParentNode() instanceof MatchArm and + v.getText().charAt(0).isUppercase() } diff --git a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected index ca3b2979ef9..583587b8a13 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected @@ -10,6 +10,7 @@ | main.rs:307:13:307:15 | num | Variable 'num' is not used. | | main.rs:342:25:342:25 | y | Variable 'y' is not used. | | main.rs:345:28:345:28 | a | Variable 'a' is not used. | +| main.rs:348:9:348:9 | p | Variable 'p' is not used. | | main.rs:366:9:366:13 | right | Variable 'right' is not used. | | main.rs:372:9:372:14 | right2 | Variable 'right2' is not used. | | main.rs:383:13:383:13 | y | Variable 'y' is not used. | diff --git a/rust/ql/test/query-tests/unusedentities/main.rs b/rust/ql/test/query-tests/unusedentities/main.rs index 96bd808cee9..a08a05a83bd 100644 --- a/rust/ql/test/query-tests/unusedentities/main.rs +++ b/rust/ql/test/query-tests/unusedentities/main.rs @@ -345,7 +345,7 @@ fn if_lets_matches() { MyPoint { x: 3, y: a } => { // $ Alert[rust/unused-variable] } MyPoint { x: 4, .. } => {} - p => { // $ MISSING: Alert[rust/unused-variable] + p => { // $ Alert[rust/unused-variable] } } From cb578e32ab1851ff40b495108c681a226a2f27de Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 10 Dec 2025 16:59:47 +0100 Subject: [PATCH 125/194] Java: Move interpretModelForTest into shared code. --- .../code/java/dataflow/ExternalFlow.qll | 14 +- .../internal/ExternalFlowExtensions.qll | 6 + shared/mad/codeql/mad/static/MaD.qll | 124 ++++++++++++++++++ 3 files changed, 138 insertions(+), 6 deletions(-) create mode 100644 shared/mad/codeql/mad/static/MaD.qll diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index e612239a76e..372b3a22d10 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -98,8 +98,13 @@ private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions as Extensions +private import internal.ExternalFlowExtensions private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.MaD as SharedMaD + +private module MaD = SharedMaD::ModelsAsData; + +import MaD /** * A class for activating additional model rows. @@ -214,11 +219,12 @@ predicate summaryModel( * This predicate should only be used in tests. */ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { + MaD::interpretModelForTest(madId, model) + or exists( string package, string type, boolean subtypes, string name, string signature, string ext, string output, string kind, string provenance | - sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) or Extensions::experimentalSourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, _, madId) | @@ -231,7 +237,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { string package, string type, boolean subtypes, string name, string signature, string ext, string input, string kind, string provenance | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) or Extensions::experimentalSinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, _, madId) | @@ -244,8 +249,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { string package, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance | - summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) or Extensions::experimentalSummaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance, _, madId) | @@ -253,7 +256,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { "Summary: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance ) - //TODO: possibly barrier models? } /** Holds if a neutral model exists for the given parameters. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 5386d916e24..c01766c317a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -4,6 +4,8 @@ overlay[local?] module; +private import codeql.mad.static.MaD as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -93,3 +95,7 @@ extensible predicate experimentalSummaryModel( string input, string output, string kind, string provenance, string filter, QlBuiltins::ExtensionId madId ); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions +} diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll new file mode 100644 index 00000000000..5d58b74fe4e --- /dev/null +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -0,0 +1,124 @@ +overlay[local?] +module; + +signature module ExtensionsSig { + /** + * Holds if a source model exists for the given parameters. + */ + predicate sourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a sink model exists for the given parameters. + */ + predicate sinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a barrier model exists for the given parameters. + */ + predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a barrier guard model exists for the given parameters. + */ + predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, + QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a summary model exists for the given parameters. + */ + predicate summaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a neutral model exists for the given parameters. + */ + predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance + ); +} + +module ModelsAsData { + /** + * Holds if the given extension tuple `madId` should pretty-print as `model`. + * + * Barrier models are included for completeness even though they will not show up in a path. + * + * This predicate should only be used in tests. + */ + predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance + | + Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) + | + model = + "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + output + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance + | + Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, + provenance, madId) + | + model = + "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + + ext + "; " + input + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance + | + Extensions::barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) + | + model = + "Barrier: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + output + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance + | + Extensions::barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, + acceptingvalue, kind, provenance, madId) + | + model = + "Barrier Guard: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + + signature + "; " + ext + "; " + input + "; " + acceptingvalue + "; " + kind + "; " + + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance + | + Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) + | + model = + "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance + ) + } +} From f0e7f1af2c22c0f79992bf4dbebe5e05911b52ad Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 08:14:37 +0100 Subject: [PATCH 126/194] C++/C#/Go: Align ExternalFlowExtensions with Java. --- .../internal/ExternalFlowExtensions.qll | 29 +++++++++++++++++++ .../internal/ExternalFlowExtensions.qll | 22 ++++++++++++++ .../internal/ExternalFlowExtensions.qll | 22 ++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index cd1af34c8d8..16597020620 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.MaD as SharedMaD + /** * Holds if an external source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if an external summary model exists for the given parameters. */ @@ -25,3 +43,14 @@ extensible predicate summaryModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId ); + +/** + * Holds if a neutral model exists for the given parameters. + */ +extensible predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance +); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions +} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index f761a0a9f5c..f845ddf7951 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.MaD as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ @@ -32,3 +50,7 @@ extensible predicate summaryModel( extensible predicate neutralModel( string namespace, string type, string name, string signature, string kind, string provenance ); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions +} diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index b1e1c906028..588951944e1 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.MaD as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ @@ -37,3 +55,7 @@ extensible predicate neutralModel( * Holds if the package `package` is part of the group `group`. */ extensible predicate packageGrouping(string group, string package); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions +} From 0915db4f6bdcffc6a9f311f63af95bd23d52f499 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 08:20:13 +0100 Subject: [PATCH 127/194] C++/C#/Go: Use shared interpretModelForTest. --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 50 +++---------------- .../csharp/dataflow/internal/ExternalFlow.qll | 41 ++------------- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 49 +++--------------- 3 files changed, 18 insertions(+), 122 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 69e32d23ec1..b31578492bb 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -101,9 +101,14 @@ private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions as Extensions +private import internal.ExternalFlowExtensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.util.Unit +private import codeql.mad.static.MaD as SharedMaD + +private module MaD = SharedMaD::ModelsAsData; + +import MaD /** * A unit class for adding additional source model rows. @@ -230,49 +235,6 @@ private predicate summaryModel0( ) } -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, madId) - | - model = - "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " - + ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, - madId) - | - model = - "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - | - model = - "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + - "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} - /** * Holds if `input` is `input0`, but with all occurrences of `@` replaced * by `n` repetitions of `*` (and similarly for `output` and `output0`). diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 87b28b76e99..04933e11282 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -101,44 +101,11 @@ private import semmle.code.csharp.dispatch.OverridableCallable private import semmle.code.csharp.frameworks.System private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.MaD as SharedMaD -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = - "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " - + ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = - "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) and - model = - "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + - "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} +private module MaD = SharedMaD::ModelsAsData; + +import MaD private predicate relevantNamespace(string namespace) { sourceModel(namespace, _, _, _, _, _, _, _, _, _) or diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 3228f424885..f09d6b15006 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -86,7 +86,7 @@ */ private import go -import internal.ExternalFlowExtensions as FlowExtensions +private import internal.ExternalFlowExtensions private import FlowSummary as FlowSummary private import internal.DataFlowPrivate private import internal.FlowSummaryImpl @@ -94,6 +94,13 @@ private import internal.FlowSummaryImpl::Public as Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.MaD as SharedMaD + +private module MaD = SharedMaD::ModelsAsData; + +import MaD + +module FlowExtensions = Extensions; /** Gets the prefix for a group of packages. */ private string groupPrefix() { result = "group:" } @@ -178,46 +185,6 @@ predicate neutralModel( ) } -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - FlowExtensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind, - provenance, madId) and - model = - "Source: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - FlowExtensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, - provenance, madId) and - model = - "Sink: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - FlowExtensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = - "Summary: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} - bindingset[p] private string cleanPackage(string p) { exists(string noPrefix | From 3b334ea2158cce13da04a816d5e705ea6853f37d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 08:44:09 +0100 Subject: [PATCH 128/194] Java/C#: Share model coverage code. --- .../csharp/dataflow/internal/ExternalFlow.qll | 56 ------------------ .../code/java/dataflow/ExternalFlow.qll | 57 ------------------ shared/mad/codeql/mad/static/MaD.qll | 59 +++++++++++++++++++ 3 files changed, 59 insertions(+), 113 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 04933e11282..5b5d3f329df 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -107,62 +107,6 @@ private module MaD = SharedMaD::ModelsAsData; import MaD -private predicate relevantNamespace(string namespace) { - sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) -} - -private predicate namespaceLink(string shortns, string longns) { - relevantNamespace(shortns) and - relevantNamespace(longns) and - longns.prefix(longns.indexOf(".")) = shortns -} - -private predicate canonicalNamespace(string namespace) { - relevantNamespace(namespace) and not namespaceLink(_, namespace) -} - -private predicate canonicalNamespaceLink(string namespace, string subns) { - canonicalNamespace(namespace) and - (subns = namespace or namespaceLink(namespace, subns)) -} - -/** - * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the - * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of - * `namespace` which have MaD framework coverage (including `namespace` - * itself). - */ -predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { - namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and - ( - part = "source" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance | - canonicalNamespaceLink(namespace, subns) and - sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private predicate getRelevantAccessPath(string path) { diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 372b3a22d10..ca02010dcec 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -261,63 +261,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { /** Holds if a neutral model exists for the given parameters. */ predicate neutralModel = Extensions::neutralModel/6; -private predicate relevantPackage(string package) { - sourceModel(package, _, _, _, _, _, _, _, _, _) or - sinkModel(package, _, _, _, _, _, _, _, _, _) or - summaryModel(package, _, _, _, _, _, _, _, _, _, _) -} - -private predicate packageLink(string shortpkg, string longpkg) { - relevantPackage(shortpkg) and - relevantPackage(longpkg) and - longpkg.prefix(longpkg.indexOf(".")) = shortpkg -} - -private predicate canonicalPackage(string package) { - relevantPackage(package) and not packageLink(_, package) -} - -private predicate canonicalPkgLink(string package, string subpkg) { - canonicalPackage(package) and - (subpkg = package or packageLink(package, subpkg)) -} - -/** - * Holds if MaD framework coverage of `package` is `n` api endpoints of the - * kind `(kind, part)`, and `pkgs` is the number of subpackages of `package` - * which have MaD framework coverage (including `package` itself). - */ -predicate modelCoverage(string package, int pkgs, string kind, string part, int n) { - pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and - ( - part = "source" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance | - canonicalPkgLink(package, subpkg) and - sourceModel(subpkg, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance | - canonicalPkgLink(package, subpkg) and - sinkModel(subpkg, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalPkgLink(package, subpkg) and - summaryModel(subpkg, type, subtypes, name, signature, ext, input, output, kind, provenance, - _) - ) - // TODO: possibly barrier models? - ) -} - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll index 5d58b74fe4e..6a8598cf6d9 100644 --- a/shared/mad/codeql/mad/static/MaD.qll +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -121,4 +121,63 @@ module ModelsAsData { "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance ) } + + private predicate relevantNamespace(string namespace) { + Extensions::sourceModel(namespace, _, _, _, _, _, _, _, _, _) or + Extensions::sinkModel(namespace, _, _, _, _, _, _, _, _, _) or + Extensions::summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) + } + + private predicate namespaceLink(string shortns, string longns) { + relevantNamespace(shortns) and + relevantNamespace(longns) and + longns.prefix(longns.indexOf(".")) = shortns + } + + private predicate canonicalNamespace(string namespace) { + relevantNamespace(namespace) and not namespaceLink(_, namespace) + } + + private predicate canonicalNamespaceLink(string namespace, string subns) { + canonicalNamespace(namespace) and + (subns = namespace or namespaceLink(namespace, subns)) + } + + /** + * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the + * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of + * `namespace` which have MaD framework coverage (including `namespace` + * itself). + */ + predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { + namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and + ( + part = "source" and + n = + strictcount(string subns, string type, boolean subtypes, string name, string signature, + string ext, string output, string provenance | + canonicalNamespaceLink(namespace, subns) and + Extensions::sourceModel(subns, type, subtypes, name, signature, ext, output, kind, + provenance, _) + ) + or + part = "sink" and + n = + strictcount(string subns, string type, boolean subtypes, string name, string signature, + string ext, string input, string provenance | + canonicalNamespaceLink(namespace, subns) and + Extensions::sinkModel(subns, type, subtypes, name, signature, ext, input, kind, + provenance, _) + ) + or + part = "summary" and + n = + strictcount(string subns, string type, boolean subtypes, string name, string signature, + string ext, string input, string output, string provenance | + canonicalNamespaceLink(namespace, subns) and + Extensions::summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, + provenance, _) + ) + ) + } } From 47dcf05a3244b066e023117f2f00f5d718de61b3 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 08:59:17 +0100 Subject: [PATCH 129/194] C++/Go/Java: Don't import top-level extensible predicates. --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 2 +- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 2 +- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index b31578492bb..eb401f1c36c 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -101,7 +101,7 @@ private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.util.Unit private import codeql.mad.static.MaD as SharedMaD diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index f09d6b15006..42b3f472a59 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -86,7 +86,7 @@ */ private import go -private import internal.ExternalFlowExtensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import FlowSummary as FlowSummary private import internal.DataFlowPrivate private import internal.FlowSummaryImpl diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index ca02010dcec..786f76fc679 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -98,7 +98,7 @@ private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.mad.static.MaD as SharedMaD From 07252519c8ffbb70c82d5ab631b6dc7fa6c6de14 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 09:59:13 +0100 Subject: [PATCH 130/194] Java/C++: Thread additional models through the shared lib. --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 158 ++++++++---------- .../csharp/dataflow/internal/ExternalFlow.qll | 20 +-- .../dataflow/internal/FlowSummaryImpl.qll | 12 +- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 4 +- .../code/java/dataflow/ExternalFlow.qll | 85 +++++----- .../dataflow/internal/FlowSummaryImpl.qll | 16 +- shared/mad/codeql/mad/static/MaD.qll | 101 +++++++++-- 7 files changed, 226 insertions(+), 170 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index eb401f1c36c..cf211b4397d 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -106,10 +106,6 @@ private import codeql.mad.ModelValidation as SharedModelVal private import codeql.util.Unit private import codeql.mad.static.MaD as SharedMaD -private module MaD = SharedMaD::ModelsAsData; - -import MaD - /** * A unit class for adding additional source model rows. * @@ -149,91 +145,79 @@ predicate sinkModel(string row) { any(SinkModelCsv s).row(row) } /** Holds if `row` is a summary model. */ predicate summaryModel(string row) { any(SummaryModelCsv s).row(row) } -/** Holds if a source model exists for the given parameters. */ -predicate sourceModel( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, string model -) { - exists(string row | - sourceModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = output and - row.splitAt(";", 7) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() - ) +private module MadInput implements SharedMaD::InputSig { + /** Holds if a source model exists for the given parameters. */ + predicate additionalSourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(string row | + sourceModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = output and + row.splitAt(";", 7) = kind + ) and + provenance = "manual" and + model = "" + } + + /** Holds if a sink model exists for the given parameters. */ + predicate additionalSinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(string row | + sinkModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = input and + row.splitAt(";", 7) = kind + ) and + provenance = "manual" and + model = "" + } + + /** + * Holds if a summary model exists for the given parameters. + * + * This predicate does not expand `@` to `*`s. + */ + predicate additionalSummaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(string row | + summaryModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = input and + row.splitAt(";", 7) = output and + row.splitAt(";", 8) = kind + ) and + provenance = "manual" and + model = "" + } } -/** Holds if a sink model exists for the given parameters. */ -predicate sinkModel( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, string model -) { - exists(string row | - sinkModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = input and - row.splitAt(";", 7) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, - madId) and - model = "MaD:" + madId.toString() - ) -} +private module MaD = SharedMaD::ModelsAsData; -/** - * Holds if a summary model exists for the given parameters. - * - * This predicate does not expand `@` to `*`s. - */ -private predicate summaryModel0( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, string model -) { - exists(string row | - summaryModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = input and - row.splitAt(";", 7) = output and - row.splitAt(";", 8) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() - ) -} +import MaD /** * Holds if `input` is `input0`, but with all occurrences of `@` replaced @@ -256,7 +240,7 @@ predicate summaryModel( string input, string output, string kind, string provenance, string model ) { exists(string input0, string output0 | - summaryModel0(namespace, type, subtypes, name, signature, ext, input0, output0, kind, + MaD::summaryModel(namespace, type, subtypes, name, signature, ext, input0, output0, kind, provenance, model) and expandInputAndOutput(input0, input, output0, output, [0 .. Private::getMaxElementContentIndirectionIndex() - 1]) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 5b5d3f329df..a36bfc06297 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -88,7 +88,7 @@ */ import csharp -import ExternalFlowExtensions +private import ExternalFlowExtensions::Extensions as Extensions private import DataFlowDispatch private import DataFlowPrivate private import DataFlowPublic @@ -103,7 +103,9 @@ private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax private import codeql.mad.ModelValidation as SharedModelVal private import codeql.mad.static.MaD as SharedMaD -private module MaD = SharedMaD::ModelsAsData; +private module MadInput implements SharedMaD::InputSig { } + +private module MaD = SharedMaD::ModelsAsData; import MaD @@ -169,7 +171,7 @@ module ModelValidation { predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } - predicate neutralKind(string kind) { neutralModel(_, _, _, _, kind, _) } + predicate neutralKind(string kind) { Extensions::neutralModel(_, _, _, _, kind, _) } } private module KindVal = SharedModelVal::KindValidation; @@ -186,7 +188,7 @@ module ModelValidation { summaryModel(namespace, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or - neutralModel(namespace, type, name, signature, _, provenance) and + Extensions::neutralModel(namespace, type, name, signature, _, provenance) and ext = "" and pred = "neutral" | @@ -229,7 +231,7 @@ private predicate elementSpec( or summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) or - neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true + Extensions::neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true } private predicate elementSpec( @@ -501,19 +503,17 @@ private predicate interpretSummary( UnboundCallable c, string input, string output, string kind, string provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and c = interpretElement(namespace, type, subtypes, name, signature, ext) ) } predicate interpretNeutral(UnboundCallable c, string kind, string provenance) { exists(string namespace, string type, string name, string signature | - neutralModel(namespace, type, name, signature, kind, provenance) and + Extensions::neutralModel(namespace, type, name, signature, kind, provenance) and c = interpretElement(namespace, type, true, name, signature, "") ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 842c28ac75b..56278b9ef95 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -213,11 +213,9 @@ module SourceSinkInterpretationInput implements Element e, string output, string kind, Public::Provenance provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } @@ -226,11 +224,9 @@ module SourceSinkInterpretationInput implements Element e, string input, string kind, Public::Provenance provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 42b3f472a59..dfa8f5bb3a2 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -96,7 +96,9 @@ private import internal.FlowSummaryImpl::Private::External private import codeql.mad.ModelValidation as SharedModelVal private import codeql.mad.static.MaD as SharedMaD -private module MaD = SharedMaD::ModelsAsData; +private module MadInput implements SharedMaD::InputSig { } + +private module MaD = SharedMaD::ModelsAsData; import MaD diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 786f76fc679..108799aee16 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -102,7 +102,47 @@ private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.mad.static.MaD as SharedMaD -private module MaD = SharedMaD::ModelsAsData; +private module MadInput implements SharedMaD::InputSig { + /** Holds if a source model exists for the given parameters. */ + predicate additionalSourceModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, + madId) and + model = "MaD:" + madId.toString() + ) + } + + /** Holds if a sink model exists for the given parameters. */ + predicate additionalSinkModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + } + + /** Holds if a summary model exists for the given parameters. */ + predicate additionalSummaryModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + } +} + +private module MaD = SharedMaD::ModelsAsData; import MaD @@ -152,34 +192,6 @@ abstract private class ActiveExperimentalModelsInternal extends string { deprecated class ActiveExperimentalModels = ActiveExperimentalModelsInternal; -/** Holds if a source model exists for the given parameters. */ -predicate sourceModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, - madId) - or - any(ActiveExperimentalModelsInternal q) - .sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) - ) -} - -/** Holds if a sink model exists for the given parameters. */ -predicate sinkModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, - madId) - or - any(ActiveExperimentalModelsInternal q) - .sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) - ) -} - /** Holds if a barrier model exists for the given parameters. */ predicate barrierModel( string package, string type, boolean subtypes, string name, string signature, string ext, @@ -198,21 +210,6 @@ predicate barrierGuardModel( acceptingvalue, kind, provenance, madId) } -/** Holds if a summary model exists for the given parameters. */ -predicate summaryModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - or - any(ActiveExperimentalModelsInternal q) - .summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - ) -} - /** * Holds if the given extension tuple `madId` should pretty-print as `model`. * diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index c712e1ae5fb..4f5de01e3e3 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -228,11 +228,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseSource, string originalOutput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseSource, string originalOutput | sourceModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and baseSource = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseSource and output = originalOutput @@ -247,11 +246,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseSink, string originalInput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseSink, string originalInput | sinkModel(namespace, type, subtypes, name, signature, ext, originalInput, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and baseSink = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseSink and originalInput = input @@ -384,12 +382,10 @@ module Private { ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string originalInput, string originalOutput, Callable baseCallable, - QlBuiltins::ExtensionId madId + string originalInput, string originalOutput, Callable baseCallable | summaryModel(namespace, type, subtypes, name, signature, ext, originalInput, originalOutput, - kind, provenance, madId) and - model = "MaD:" + madId.toString() and + kind, provenance, model) and baseCallable = interpretElement(namespace, type, subtypes, name, signature, ext, isExact) and ( c.asCallable() = baseCallable and input = originalInput and output = originalOutput diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll index 6a8598cf6d9..c466bd5487d 100644 --- a/shared/mad/codeql/mad/static/MaD.qll +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -51,7 +51,39 @@ signature module ExtensionsSig { ); } -module ModelsAsData { +signature module InputSig { + /** + * Holds if a source model exists for the given parameters. + */ + default predicate additionalSourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + none() + } + + /** + * Holds if a sink model exists for the given parameters. + */ + default predicate additionalSinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + none() + } + + /** + * Holds if a summary model exists for the given parameters. + */ + default predicate additionalSummaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + none() + } +} + +module ModelsAsData { /** * Holds if the given extension tuple `madId` should pretty-print as `model`. * @@ -122,10 +154,61 @@ module ModelsAsData { ) } + /** + * Holds if a source model exists for the given parameters. + */ + predicate sourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSourceModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, model) + } + + /** + * Holds if a sink model exists for the given parameters. + */ + predicate sinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSinkModel(namespace, type, subtypes, name, signature, ext, input, kind, + provenance, model) + } + + /** + * Holds if a summary model exists for the given parameters. + */ + predicate summaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSummaryModel(namespace, type, subtypes, name, signature, ext, input, output, + kind, provenance, model) + } + private predicate relevantNamespace(string namespace) { - Extensions::sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - Extensions::sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - Extensions::summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) + sourceModel(namespace, _, _, _, _, _, _, _, _, _) or + sinkModel(namespace, _, _, _, _, _, _, _, _, _) or + summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) } private predicate namespaceLink(string shortns, string longns) { @@ -157,8 +240,7 @@ module ModelsAsData { strictcount(string subns, string type, boolean subtypes, string name, string signature, string ext, string output, string provenance | canonicalNamespaceLink(namespace, subns) and - Extensions::sourceModel(subns, type, subtypes, name, signature, ext, output, kind, - provenance, _) + sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, _) ) or part = "sink" and @@ -166,8 +248,7 @@ module ModelsAsData { strictcount(string subns, string type, boolean subtypes, string name, string signature, string ext, string input, string provenance | canonicalNamespaceLink(namespace, subns) and - Extensions::sinkModel(subns, type, subtypes, name, signature, ext, input, kind, - provenance, _) + sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, _) ) or part = "summary" and @@ -175,8 +256,8 @@ module ModelsAsData { strictcount(string subns, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string provenance | canonicalNamespaceLink(namespace, subns) and - Extensions::summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, - provenance, _) + summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, + _) ) ) } From e2624385571632c9bdcd600adeb7d58961cac821 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 10:14:41 +0100 Subject: [PATCH 131/194] C++: Use shared model coverage code. --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 58 +------------------ shared/mad/codeql/mad/static/MaD.qll | 5 +- 2 files changed, 6 insertions(+), 57 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index cf211b4397d..08e4a073ddb 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -213,6 +213,8 @@ private module MadInput implements SharedMaD::InputSig { provenance = "manual" and model = "" } + + string namespaceSegmentSeparator() { result = "::" } } private module MaD = SharedMaD::ModelsAsData; @@ -247,62 +249,6 @@ predicate summaryModel( ) } -private predicate relevantNamespace(string namespace) { - sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) -} - -private predicate namespaceLink(string shortns, string longns) { - relevantNamespace(shortns) and - relevantNamespace(longns) and - longns.prefix(longns.indexOf("::")) = shortns -} - -private predicate canonicalNamespace(string namespace) { - relevantNamespace(namespace) and not namespaceLink(_, namespace) -} - -private predicate canonicalNamespaceLink(string namespace, string subns) { - canonicalNamespace(namespace) and - (subns = namespace or namespaceLink(namespace, subns)) -} - -/** - * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the - * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of - * `namespace` which have MaD framework coverage (including `namespace` - * itself). - */ -predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { - namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and - ( - part = "source" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance, string model | - canonicalNamespaceLink(namespace, subns) and - sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, model) - ) - or - part = "sink" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance, string model | - canonicalNamespaceLink(namespace, subns) and - sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, model) - ) - or - part = "summary" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} - /** Provides a query predicate to check the CSV data for validation errors. */ module CsvValidation { private string getInvalidModelInput() { diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll index c466bd5487d..76d4fa484a6 100644 --- a/shared/mad/codeql/mad/static/MaD.qll +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -81,6 +81,9 @@ signature module InputSig { ) { none() } + + /** Get the separator used between namespace segments. */ + default string namespaceSegmentSeparator() { result = "." } } module ModelsAsData { @@ -214,7 +217,7 @@ module ModelsAsData { private predicate namespaceLink(string shortns, string longns) { relevantNamespace(shortns) and relevantNamespace(longns) and - longns.prefix(longns.indexOf(".")) = shortns + longns.prefix(longns.indexOf(Input::namespaceSegmentSeparator())) = shortns } private predicate canonicalNamespace(string namespace) { From b8def1097758305ff0e4caa6dbd75dad751e1e6b Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 12 Dec 2025 08:32:07 +0100 Subject: [PATCH 132/194] C#: Claim support for .slnx in the public documentation. --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 8dcfd1a5dc0..a51d9de265e 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -15,7 +15,7 @@ .NET Core up to 3.1 - .NET 5, .NET 6, .NET 7, .NET 8, .NET 9","``.sln``, ``.csproj``, ``.cs``, ``.cshtml``, ``.xaml``" + .NET 5, .NET 6, .NET 7, .NET 8, .NET 9","``.sln``, ``.slnx``, ``.csproj``, ``.cs``, ``.cshtml``, ``.xaml``" GitHub Actions,"Not applicable",Not applicable,"``.github/workflows/*.yml``, ``.github/workflows/*.yaml``, ``**/action.yml``, ``**/action.yaml``" Go (aka Golang), "Go up to 1.25", "Go 1.11 or more recent", ``.go`` Java,"Java 7 to 25 [6]_","javac (OpenJDK and Oracle JDK), From ea7e15829a081c16bdfa4f120771f51c7592c1f2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 12 Dec 2025 08:37:58 +0100 Subject: [PATCH 133/194] C#: Update integration test expected output. --- .../Assemblies.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected index 0b408640770..2be1117efc0 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected @@ -18,6 +18,7 @@ | [...]/csharp/tools/[...]/Microsoft.NET.StringTools.dll | | [...]/csharp/tools/[...]/Microsoft.VisualBasic.Core.dll | | [...]/csharp/tools/[...]/Microsoft.VisualBasic.dll | +| [...]/csharp/tools/[...]/Microsoft.VisualStudio.SolutionPersistence.dll | | [...]/csharp/tools/[...]/Microsoft.Win32.Primitives.dll | | [...]/csharp/tools/[...]/Microsoft.Win32.Registry.dll | | [...]/csharp/tools/[...]/Mono.Posix.NETStandard.dll | From 44258913525e4859be81845182dbbf5e30de0711 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 12 Dec 2025 08:46:13 +0100 Subject: [PATCH 134/194] Rust: Don't propagate `impl` in return position into function bodies --- .../codeql/rust/internal/TypeInference.qll | 18 ++++++++++++----- .../type-inference/type-inference.expected | 20 +++++++------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b281889ef1d..a6b2592a184 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -267,11 +267,6 @@ private TypeMention getTypeAnnotation(AstNode n) { n = p.getPat() and result = p.getTypeRepr() ) - or - exists(Function f | - result = getReturnTypeMention(f) and - n = f.getFunctionBody() - ) } /** Gets the type of `n`, which has an explicit type annotation. */ @@ -282,6 +277,17 @@ private Type inferAnnotatedType(AstNode n, TypePath path) { result = n.(ShorthandSelfParameterMention).resolveTypeAt(path) } +pragma[nomagic] +private Type inferFunctionBodyType(AstNode n, TypePath path) { + exists(Function f | + n = f.getFunctionBody() and + result = getReturnTypeMention(f).resolveTypeAt(path) and + not exists(ImplTraitReturnType i | i.getFunction() = f | + result = i or result = i.getATypeParameter() + ) + ) +} + /** * Holds if `me` is a call to the `panic!` macro. * @@ -419,6 +425,8 @@ module CertainTypeInference { result = inferAnnotatedType(n, path) and Stages::TypeInferenceStage::ref() or + result = inferFunctionBodyType(n, path) + or result = inferCertainCallExprType(n, path) or result = inferCertainTypeEquality(n, path) diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 14cc4577539..6afbbf6d43f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2754,9 +2754,7 @@ inferCertainType | main.rs:2224:18:2224:21 | SelfParam | | main.rs:2221:5:2221:14 | S1 | | main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2231:41:2233:5 | { ... } | | main.rs:2231:16:2231:39 | impl ... | | main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:41:2237:5 | { ... } | | main.rs:2235:16:2235:39 | impl ... | | main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | | main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | @@ -2766,7 +2764,6 @@ inferCertainType | main.rs:2246:13:2246:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | | main.rs:2247:44:2249:9 | { ... } | | {EXTERNAL LOCATION} | Poll | | main.rs:2247:44:2249:9 | { ... } | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2252:41:2254:5 | { ... } | | main.rs:2252:16:2252:39 | impl ... | | main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | @@ -2788,7 +2785,6 @@ inferCertainType | main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | | main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2289:37:2291:5 | { ... } | | main.rs:2289:16:2289:35 | impl ... + ... | | main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | | main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -2801,7 +2797,6 @@ inferCertainType | main.rs:2305:25:2305:28 | self | | {EXTERNAL LOCATION} | & | | main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | | main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2310:45:2312:5 | { ... } | | main.rs:2310:28:2310:43 | impl ... | | main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | | main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | | main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | @@ -9386,11 +9381,13 @@ inferType | main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | | main.rs:2228:9:2228:10 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2231:41:2233:5 | { ... } | | main.rs:2231:16:2231:39 | impl ... | +| main.rs:2231:41:2233:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2231:41:2233:5 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | | main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2232:9:2232:20 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | | main.rs:2232:17:2232:18 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2235:41:2237:5 | { ... } | | main.rs:2235:16:2235:39 | impl ... | +| main.rs:2235:41:2237:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2235:41:2237:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | | main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | | main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | @@ -9403,9 +9400,8 @@ inferType | main.rs:2248:13:2248:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | | main.rs:2248:13:2248:38 | ...::Ready(...) | T | main.rs:2221:5:2221:14 | S1 | | main.rs:2248:36:2248:37 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2252:41:2254:5 | { ... } | | main.rs:2252:16:2252:39 | impl ... | +| main.rs:2252:41:2254:5 | { ... } | | main.rs:2239:5:2239:14 | S2 | | main.rs:2253:9:2253:10 | S2 | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2253:9:2253:10 | S2 | | main.rs:2252:16:2252:39 | impl ... | | main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | @@ -9443,9 +9439,8 @@ inferType | main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | | main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2289:37:2291:5 | { ... } | | main.rs:2289:16:2289:35 | impl ... + ... | +| main.rs:2289:37:2291:5 | { ... } | | main.rs:2268:5:2269:14 | S1 | | main.rs:2290:9:2290:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2290:9:2290:10 | S1 | | main.rs:2289:16:2289:35 | impl ... + ... | | main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | | main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -9464,9 +9459,8 @@ inferType | main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | | main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | | main.rs:2306:13:2306:21 | t.clone() | | main.rs:2303:10:2303:17 | T | -| main.rs:2310:45:2312:5 | { ... } | | main.rs:2310:28:2310:43 | impl ... | +| main.rs:2310:45:2312:5 | { ... } | | main.rs:2268:5:2269:14 | S1 | | main.rs:2311:9:2311:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2311:9:2311:10 | S1 | | main.rs:2310:28:2310:43 | impl ... | | main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | | main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | | main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | From 5bddc8d2892fc5140d93e02ee90e7cd2bc56162e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 10:35:39 +0100 Subject: [PATCH 135/194] Go: Move Go package-grouping support into shared lib. --- .../internal/ExternalFlowExtensions.qll | 2 + .../internal/ExternalFlowExtensions.qll | 2 + go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 80 ------------- .../go/dataflow/internal/FlowSummaryImpl.qll | 18 +-- .../code/java/dataflow/ExternalFlow.qll | 21 ---- .../internal/ExternalFlowExtensions.qll | 2 + .../dataflow/internal/FlowSummaryImpl.qll | 10 +- shared/mad/codeql/mad/static/MaD.qll | 107 ++++++++++++++---- 8 files changed, 104 insertions(+), 138 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index 16597020620..d128feffc20 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -53,4 +53,6 @@ extensible predicate neutralModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions + + predicate packageGrouping(string group, string package) { none() } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index f845ddf7951..acbb651bcc4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -53,4 +53,6 @@ extensible predicate neutralModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions + + predicate packageGrouping(string group, string package) { none() } } diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index dfa8f5bb3a2..544d73fef26 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -107,86 +107,6 @@ module FlowExtensions = Extensions; /** Gets the prefix for a group of packages. */ private string groupPrefix() { result = "group:" } -/** - * Gets a package represented by `packageOrGroup`. - * - * If `packageOrGroup` is of the form `group:` then `result` is a - * package in the group ``, as determined by `packageGrouping`. - * Otherwise, `result` is `packageOrGroup`. - */ -bindingset[packageOrGroup] -private string getPackage(string packageOrGroup) { - not exists(string group | packageOrGroup = groupPrefix() + group) and result = packageOrGroup - or - exists(string group | - FlowExtensions::packageGrouping(group, result) and - packageOrGroup = groupPrefix() + group - ) -} - -/** - * Holds if a source model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate sourceModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | - package = getPackage(packageOrGroup) and - FlowExtensions::sourceModel(packageOrGroup, type, subtypes, name, signature, ext, output, kind, - provenance, madId) - ) -} - -/** - * Holds if a sink model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate sinkModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::sinkModel(packageOrGroup, type, subtypes, name, signature, ext, input, kind, - provenance, madId) - ) -} - -/** - * Holds if a summary model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate summaryModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::summaryModel(packageOrGroup, type, subtypes, name, signature, ext, input, - output, kind, provenance, madId) - ) -} - -/** - * Holds if a neutral model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate neutralModel( - string package, string type, string name, string signature, string kind, string provenance -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::neutralModel(packageOrGroup, type, name, signature, kind, provenance) - ) -} - bindingset[p] private string cleanPackage(string p) { exists(string noPrefix | diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index 41ded04634b..39af0cef1ad 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -137,11 +137,9 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement e, string output, string kind, Public::Provenance provenance, string model ) { exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string package, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } @@ -154,11 +152,9 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement e, string input, string kind, Public::Provenance provenance, string model ) { exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string package, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } @@ -504,12 +500,10 @@ module Private { string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() and + provenance, model) and c.asFunction() = interpretElement(namespace, type, subtypes, name, signature, ext).asEntity() ) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 108799aee16..1f8ae76ed63 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -192,24 +192,6 @@ abstract private class ActiveExperimentalModelsInternal extends string { deprecated class ActiveExperimentalModels = ActiveExperimentalModelsInternal; -/** Holds if a barrier model exists for the given parameters. */ -predicate barrierModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - Extensions::barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance, - madId) -} - -/** Holds if a barrier guard model exists for the given parameters. */ -predicate barrierGuardModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - Extensions::barrierGuardModel(package, type, subtypes, name, signature, ext, input, - acceptingvalue, kind, provenance, madId) -} - /** * Holds if the given extension tuple `madId` should pretty-print as `model`. * @@ -255,9 +237,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { ) } -/** Holds if a neutral model exists for the given parameters. */ -predicate neutralModel = Extensions::neutralModel/6; - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index c01766c317a..946872ab384 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -98,4 +98,6 @@ extensible predicate experimentalSummaryModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions + + predicate packageGrouping(string group, string package) { none() } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index 4f5de01e3e3..b9d8f58cecb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -264,11 +264,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseBarrier, string originalOutput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseBarrier, string originalOutput | barrierModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, - provenance, madId) and - model = "MaD:" + madId.toString() and + provenance, model) and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseBarrier and output = originalOutput @@ -284,11 +283,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseBarrier, string originalInput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseBarrier, string originalInput | barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalInput, - acceptingvalue, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + acceptingvalue, kind, provenance, model) and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseBarrier and input = originalInput diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll index 76d4fa484a6..fbd12d909ab 100644 --- a/shared/mad/codeql/mad/static/MaD.qll +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -49,6 +49,11 @@ signature module ExtensionsSig { predicate neutralModel( string namespace, string type, string name, string signature, string kind, string provenance ); + + /** + * Holds if the package `package` is part of the group `group`. + */ + predicate packageGrouping(string group, string package); } signature module InputSig { @@ -157,6 +162,27 @@ module ModelsAsData { ) } + /** Gets the prefix for a group of packages/namespaces. */ + private string groupPrefix() { result = "group:" } + + /** + * Gets a package/namespace represented by `namespaceOrGroup`. + * + * If `namespaceOrGroup` is of the form `group:` then `result` is a + * package/namespace in the group ``, as determined by `packageGrouping`. + * Otherwise, `result` is `namespaceOrGroup`. + */ + bindingset[namespaceOrGroup] + private string getNamespace(string namespaceOrGroup) { + not exists(string group | namespaceOrGroup = groupPrefix() + group) and + result = namespaceOrGroup + or + exists(string group | + Extensions::packageGrouping(group, result) and + namespaceOrGroup = groupPrefix() + group + ) + } + /** * Holds if a source model exists for the given parameters. */ @@ -164,14 +190,16 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string output, string kind, string provenance, string model ) { - exists(QlBuiltins::ExtensionId madId | - Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::sourceModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, + kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSourceModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, + kind, provenance, model) ) - or - Input::additionalSourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, model) } /** @@ -181,14 +209,42 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string kind, string provenance, string model ) { - exists(QlBuiltins::ExtensionId madId | - Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::sinkModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSinkModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + kind, provenance, model) + ) + } + + /** Holds if a barrier model exists for the given parameters. */ + predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | + namespace = getNamespace(namespaceOrGroup) and + Extensions::barrierModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, kind, provenance, madId) and model = "MaD:" + madId.toString() ) - or - Input::additionalSinkModel(namespace, type, subtypes, name, signature, ext, input, kind, - provenance, model) + } + + /** Holds if a barrier guard model exists for the given parameters. */ + predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | + namespace = getNamespace(namespaceOrGroup) and + Extensions::barrierGuardModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + acceptingvalue, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) } /** @@ -198,14 +254,27 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance, string model ) { - exists(QlBuiltins::ExtensionId madId | - Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::summaryModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + output, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSummaryModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + output, kind, provenance, model) + ) + } + + /** + * Holds if a neutral model exists for the given parameters. + */ + predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance + ) { + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + Extensions::neutralModel(namespaceOrGroup, type, name, signature, kind, provenance) ) - or - Input::additionalSummaryModel(namespace, type, subtypes, name, signature, ext, input, output, - kind, provenance, model) } private predicate relevantNamespace(string namespace) { From 4b2e8c0b57dda61f7e6c76f93ff1f12539968061 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 11:44:50 +0100 Subject: [PATCH 136/194] C++/C#/Go: Add empty extensible data. --- cpp/ql/lib/ext/empty.model.yml | 8 ++++++++ csharp/ql/lib/ext/empty.model.yml | 10 ++++++++++ go/ql/lib/ext/empty.model.yml | 8 ++++++++ 3 files changed, 26 insertions(+) diff --git a/cpp/ql/lib/ext/empty.model.yml b/cpp/ql/lib/ext/empty.model.yml index 6f160b62d7a..e5202b5ad73 100644 --- a/cpp/ql/lib/ext/empty.model.yml +++ b/cpp/ql/lib/ext/empty.model.yml @@ -9,6 +9,14 @@ extensions: pack: codeql/cpp-all extensible: sinkModel data: [] + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/cpp-all extensible: summaryModel diff --git a/csharp/ql/lib/ext/empty.model.yml b/csharp/ql/lib/ext/empty.model.yml index 6b38b783cbe..09d848ea57d 100644 --- a/csharp/ql/lib/ext/empty.model.yml +++ b/csharp/ql/lib/ext/empty.model.yml @@ -11,6 +11,16 @@ extensions: extensible: sinkModel data: [] + - addsTo: + pack: codeql/csharp-all + extensible: barrierModel + data: [] + + - addsTo: + pack: codeql/csharp-all + extensible: barrierGuardModel + data: [] + - addsTo: pack: codeql/csharp-all extensible: summaryModel diff --git a/go/ql/lib/ext/empty.model.yml b/go/ql/lib/ext/empty.model.yml index 8d661a9f1db..1709a6098eb 100644 --- a/go/ql/lib/ext/empty.model.yml +++ b/go/ql/lib/ext/empty.model.yml @@ -9,6 +9,14 @@ extensions: pack: codeql/go-all extensible: sinkModel data: [] + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/go-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/go-all extensible: summaryModel From c4a8e9df219586abf84d0299ea4da17cb06bcbbf Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 12 Dec 2025 09:52:58 +0100 Subject: [PATCH 137/194] Shared: Prefer source/sink models with manual provenance over generated --- .../dataflow/internal/FlowSummaryImpl.qll | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 4ab2eb1650c..a8260440938 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -662,6 +662,30 @@ module Make< unsupportedCallable(callable, _, _, _) } + private predicate isRelevantSource( + SourceElement e, string output, string kind, Provenance provenance, string model + ) { + e.isSource(output, kind, provenance, model) and + ( + provenance.isManual() + or + provenance.isGenerated() and + not exists(Provenance p | p.isManual() and e.isSource(_, kind, p, _)) + ) + } + + private predicate isRelevantSink( + SinkElement e, string input, string kind, Provenance provenance, string model + ) { + e.isSink(input, kind, provenance, model) and + ( + provenance.isManual() + or + provenance.isGenerated() and + not exists(Provenance p | p.isManual() and e.isSink(_, kind, p, _)) + ) + } + private predicate summarySpec(string spec) { exists(SummarizedCallable c | c.propagatesFlow(spec, _, _, _) @@ -669,9 +693,9 @@ module Make< c.propagatesFlow(_, spec, _, _) ) or - any(SourceElement s).isSource(spec, _, _, _) + isRelevantSource(_, spec, _, _, _) or - any(SinkElement s).isSink(spec, _, _, _) + isRelevantSink(_, spec, _, _, _) } import AccessPathSyntax::AccessPath @@ -1034,7 +1058,7 @@ module Make< SourceElement source, SummaryComponentStack s, string kind, string model ) { exists(string outSpec | - source.isSource(outSpec, kind, _, model) and + isRelevantSource(source, outSpec, kind, _, model) and External::interpretSpec(outSpec, s) ) } @@ -1057,7 +1081,7 @@ module Make< SinkElement sink, SummaryComponentStack s, string kind, string model ) { exists(string inSpec | - sink.isSink(inSpec, kind, _, model) and + isRelevantSink(sink, inSpec, kind, _, model) and External::interpretSpec(inSpec, s) ) } From 0b81d44ec71f1bc1de9d8f01fdddf36762786f2d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 12 Dec 2025 09:55:23 +0100 Subject: [PATCH 138/194] Rust: Apply same filtering of generated summaries as in C# and Java --- .../code/java/dataflow/internal/DataFlowDispatch.qll | 2 +- .../lib/codeql/rust/dataflow/internal/DataFlowImpl.qll | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll index dc58529ed26..a27f14cede0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll @@ -60,7 +60,7 @@ private module DispatchImpl { not ( // Only use summarized callables with generated summaries in case // the static call target is not in the source code. - // Note that if applyGeneratedModel holds it implies that there doesn't + // Note that if `applyGeneratedModel` holds it implies that there doesn't // exist a manual model. exists(Callable staticTarget | staticTarget = call.getCallee().getSourceDeclaration() | staticTarget.fromSource() and not staticTarget.isStub() diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 393095e80d9..fc84c8f0bc6 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -445,7 +445,15 @@ module RustDataFlow implements InputSig { or exists(SummarizedCallable sc, Function staticTarget | staticTarget = getStaticTargetExt(c) and - sc = result.asSummarizedCallable() + sc = result.asSummarizedCallable() and + // Only use summarized callables with generated summaries in case + // the static call target is not in the source code. + // Note that if `applyGeneratedModel` holds it implies that there doesn't + // exist a manual model. + not ( + staticTarget.fromSource() and + sc.applyGeneratedModel() + ) | sc = staticTarget or From 0b00589f95991682757779c7eb117d4f11fb0ee4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 12 Dec 2025 09:56:06 +0100 Subject: [PATCH 139/194] Rust: Update expected test output --- .../dataflow/sources/file/InlineFlow.expected | 160 ++++++--------- .../sources/file/TaintSources.expected | 5 - .../CWE-312/CleartextLogging.expected | 186 ++++++++---------- .../CWE-825/AccessInvalidPointer.expected | 9 - 4 files changed, 149 insertions(+), 211 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index bf756d999cc..fea4ea7fbde 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -10,57 +10,43 @@ models | 9 | Source: ::file_name; ReturnValue; file | | 10 | Source: ::path; ReturnValue; file | | 11 | Source: std::fs::read; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 12 | Source: std::fs::read; ReturnValue; file | -| 13 | Source: std::fs::read_link; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 14 | Source: std::fs::read_to_string; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 15 | Source: std::fs::read_to_string; ReturnValue; file | -| 16 | Source: tokio::fs::read::read; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 17 | Source: tokio::fs::read_link::read_link; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 18 | Source: tokio::fs::read_to_string::read_to_string; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 19 | Summary: <_ as async_std::io::read::ReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 20 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 21 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint | -| 22 | Summary: <_ as std::io::Read>::chain; Argument[0]; ReturnValue; taint | -| 23 | Summary: <_ as std::io::Read>::chain; Argument[self]; ReturnValue; taint | -| 24 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 25 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | -| 26 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 27 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | -| 28 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | -| 29 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 30 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint | -| 31 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | -| 32 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 33 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 36 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | -| 37 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 38 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 39 | Summary: ::as_path; Argument[self]; ReturnValue; value | +| 12 | Source: std::fs::read_link; ReturnValue.Field[core::result::Result::Ok(0)]; file | +| 13 | Source: std::fs::read_to_string; ReturnValue.Field[core::result::Result::Ok(0)]; file | +| 14 | Source: tokio::fs::read::read; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 15 | Source: tokio::fs::read_link::read_link; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 16 | Source: tokio::fs::read_to_string::read_to_string; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 17 | Summary: <_ as async_std::io::read::ReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 18 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | +| 19 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint | +| 20 | Summary: <_ as std::io::Read>::chain; Argument[0]; ReturnValue; taint | +| 21 | Summary: <_ as std::io::Read>::chain; Argument[self]; ReturnValue; taint | +| 22 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 23 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | +| 24 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 25 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | +| 26 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | +| 27 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 28 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint | +| 29 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | +| 30 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 31 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 32 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 33 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | +| 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 36 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 37 | Summary: ::as_path; Argument[self]; ReturnValue; value | edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | -| test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:43 | ...::read [Ok] | provenance | Src:MaD:11 | -| test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) | provenance | Src:MaD:12 MaD:12 | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | -| test.rs:12:31:12:43 | ...::read [Ok] | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | MaD:12 | -| test.rs:12:31:12:55 | ...::read(...) | test.rs:12:13:12:18 | buffer | provenance | | | test.rs:12:31:12:55 | ...::read(...) [Ok] | test.rs:12:31:12:56 | TryExpr | provenance | | | test.rs:12:31:12:56 | TryExpr | test.rs:12:13:12:18 | buffer | provenance | | | test.rs:17:13:17:18 | buffer | test.rs:18:14:18:19 | buffer | provenance | | -| test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:38 | ...::read [Ok] | provenance | Src:MaD:11 | -| test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:50 | ...::read(...) | provenance | Src:MaD:12 MaD:12 | | test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | Src:MaD:11 | -| test.rs:17:31:17:38 | ...::read [Ok] | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | MaD:12 | -| test.rs:17:31:17:50 | ...::read(...) | test.rs:17:13:17:18 | buffer | provenance | | | test.rs:17:31:17:50 | ...::read(...) [Ok] | test.rs:17:31:17:51 | TryExpr | provenance | | | test.rs:17:31:17:51 | TryExpr | test.rs:17:13:17:18 | buffer | provenance | | | test.rs:22:13:22:18 | buffer | test.rs:23:14:23:19 | buffer | provenance | | -| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:39 | ...::read_to_string [Ok] | provenance | Src:MaD:14 | -| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) | provenance | Src:MaD:15 MaD:15 | -| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:14 | -| test.rs:22:22:22:39 | ...::read_to_string [Ok] | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | MaD:15 | -| test.rs:22:22:22:51 | ...::read_to_string(...) | test.rs:22:13:22:18 | buffer | provenance | | +| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:13 | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | test.rs:22:22:22:52 | TryExpr | provenance | | | test.rs:22:22:22:52 | TryExpr | test.rs:22:13:22:18 | buffer | provenance | | | test.rs:29:13:29:16 | path | test.rs:30:14:30:17 | path | provenance | | @@ -68,43 +54,41 @@ edges | test.rs:29:13:29:16 | path | test.rs:41:14:41:17 | path | provenance | | | test.rs:29:20:29:27 | e.path() | test.rs:29:13:29:16 | path | provenance | | | test.rs:29:22:29:25 | path | test.rs:29:20:29:27 | e.path() | provenance | Src:MaD:4 MaD:4 | -| test.rs:30:14:30:17 | path | test.rs:30:14:30:25 | path.clone() | provenance | MaD:20 | -| test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:20 | -| test.rs:31:14:31:25 | path.clone() | test.rs:31:14:31:35 | ... .as_path() | provenance | MaD:39 | +| test.rs:30:14:30:17 | path | test.rs:30:14:30:25 | path.clone() | provenance | MaD:18 | +| test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:18 | +| test.rs:31:14:31:25 | path.clone() | test.rs:31:14:31:35 | ... .as_path() | provenance | MaD:37 | | test.rs:43:13:43:21 | file_name | test.rs:44:14:44:22 | file_name | provenance | | | test.rs:43:13:43:21 | file_name | test.rs:49:14:49:22 | file_name | provenance | | | test.rs:43:25:43:37 | e.file_name() | test.rs:43:13:43:21 | file_name | provenance | | | test.rs:43:27:43:35 | file_name | test.rs:43:25:43:37 | e.file_name() | provenance | Src:MaD:3 MaD:3 | -| test.rs:44:14:44:22 | file_name | test.rs:44:14:44:30 | file_name.clone() | provenance | MaD:20 | +| test.rs:44:14:44:22 | file_name | test.rs:44:14:44:30 | file_name.clone() | provenance | MaD:18 | | test.rs:65:13:65:18 | target | test.rs:66:14:66:19 | target | provenance | | -| test.rs:65:22:65:34 | ...::read_link | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:13 | +| test.rs:65:22:65:34 | ...::read_link | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:12 | | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | test.rs:65:22:65:50 | TryExpr | provenance | | | test.rs:65:22:65:50 | TryExpr | test.rs:65:13:65:18 | target | provenance | | | test.rs:74:13:74:18 | buffer | test.rs:75:14:75:19 | buffer | provenance | | -| test.rs:74:31:74:45 | ...::read | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:16 | +| test.rs:74:31:74:45 | ...::read | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | test.rs:74:31:74:63 | await ... [Ok] | provenance | | | test.rs:74:31:74:63 | await ... [Ok] | test.rs:74:31:74:64 | TryExpr | provenance | | | test.rs:74:31:74:64 | TryExpr | test.rs:74:13:74:18 | buffer | provenance | | | test.rs:79:13:79:18 | buffer | test.rs:80:14:80:19 | buffer | provenance | | -| test.rs:79:31:79:45 | ...::read | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:16 | +| test.rs:79:31:79:45 | ...::read | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | test.rs:79:31:79:63 | await ... [Ok] | provenance | | | test.rs:79:31:79:63 | await ... [Ok] | test.rs:79:31:79:64 | TryExpr | provenance | | | test.rs:79:31:79:64 | TryExpr | test.rs:79:13:79:18 | buffer | provenance | | | test.rs:84:13:84:18 | buffer | test.rs:85:14:85:19 | buffer | provenance | | -| test.rs:84:22:84:46 | ...::read_to_string | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:18 | +| test.rs:84:22:84:46 | ...::read_to_string | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:16 | | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | test.rs:84:22:84:64 | await ... [Ok] | provenance | | | test.rs:84:22:84:64 | await ... [Ok] | test.rs:84:22:84:65 | TryExpr | provenance | | | test.rs:84:22:84:65 | TryExpr | test.rs:84:13:84:18 | buffer | provenance | | | test.rs:90:13:90:16 | path | test.rs:92:14:92:17 | path | provenance | | | test.rs:90:20:90:31 | entry.path() | test.rs:90:13:90:16 | path | provenance | | | test.rs:90:26:90:29 | path | test.rs:90:20:90:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | -| test.rs:90:26:90:29 | path | test.rs:90:20:90:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | | test.rs:91:13:91:21 | file_name | test.rs:93:14:93:22 | file_name | provenance | | | test.rs:91:25:91:41 | entry.file_name() | test.rs:91:13:91:21 | file_name | provenance | | | test.rs:91:31:91:39 | file_name | test.rs:91:25:91:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | -| test.rs:91:31:91:39 | file_name | test.rs:91:25:91:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | | test.rs:97:13:97:18 | target | test.rs:98:14:98:19 | target | provenance | | -| test.rs:97:22:97:41 | ...::read_link | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:17 | +| test.rs:97:22:97:41 | ...::read_link | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:15 | | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | test.rs:97:22:97:62 | await ... [Ok] | provenance | | | test.rs:97:22:97:62 | await ... [Ok] | test.rs:97:22:97:63 | TryExpr | provenance | | | test.rs:97:22:97:63 | TryExpr | test.rs:97:13:97:18 | target | provenance | | @@ -116,45 +100,45 @@ edges | test.rs:107:20:107:38 | ...::open | test.rs:107:20:107:50 | ...::open(...) [Ok] | provenance | Src:MaD:5 | | test.rs:107:20:107:50 | ...::open(...) [Ok] | test.rs:107:20:107:51 | TryExpr | provenance | | | test.rs:107:20:107:51 | TryExpr | test.rs:107:9:107:16 | mut file | provenance | | -| test.rs:111:22:111:25 | file | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:111:22:111:25 | file | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | test.rs:111:37:111:42 | [post] buffer | provenance | | | test.rs:111:37:111:42 | [post] buffer | test.rs:112:15:112:20 | buffer | provenance | | | test.rs:112:15:112:20 | buffer | test.rs:112:14:112:20 | &buffer | provenance | | -| test.rs:117:22:117:25 | file | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | provenance | MaD:26 | +| test.rs:117:22:117:25 | file | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | provenance | MaD:24 | | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | test.rs:117:44:117:49 | [post] buffer | provenance | | | test.rs:117:44:117:49 | [post] buffer | test.rs:118:15:118:20 | buffer | provenance | | | test.rs:118:15:118:20 | buffer | test.rs:118:14:118:20 | &buffer | provenance | | -| test.rs:123:22:123:25 | file | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:123:22:123:25 | file | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | test.rs:123:47:123:52 | [post] buffer | provenance | | | test.rs:123:47:123:52 | [post] buffer | test.rs:124:15:124:20 | buffer | provenance | | | test.rs:124:15:124:20 | buffer | test.rs:124:14:124:20 | &buffer | provenance | | -| test.rs:129:9:129:12 | file | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | provenance | MaD:25 | +| test.rs:129:9:129:12 | file | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | provenance | MaD:23 | | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | test.rs:129:30:129:35 | [post] buffer | provenance | | | test.rs:129:30:129:35 | [post] buffer | test.rs:130:15:130:20 | buffer | provenance | | | test.rs:130:15:130:20 | buffer | test.rs:130:14:130:20 | &buffer | provenance | | -| test.rs:133:17:133:20 | file | test.rs:133:17:133:28 | file.bytes() | provenance | MaD:21 | +| test.rs:133:17:133:20 | file | test.rs:133:17:133:28 | file.bytes() | provenance | MaD:19 | | test.rs:133:17:133:28 | file.bytes() | test.rs:134:14:134:17 | byte | provenance | | | test.rs:140:13:140:18 | mut f1 | test.rs:142:22:142:23 | f1 | provenance | | -| test.rs:140:22:140:63 | ... .open(...) [Ok] | test.rs:140:22:140:72 | ... .unwrap() | provenance | MaD:38 | +| test.rs:140:22:140:63 | ... .open(...) [Ok] | test.rs:140:22:140:72 | ... .unwrap() | provenance | MaD:36 | | test.rs:140:22:140:72 | ... .unwrap() | test.rs:140:13:140:18 | mut f1 | provenance | | | test.rs:140:50:140:53 | open | test.rs:140:22:140:63 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:142:22:142:23 | f1 | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:142:22:142:23 | f1 | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | test.rs:142:35:142:40 | [post] buffer | provenance | | | test.rs:142:35:142:40 | [post] buffer | test.rs:143:15:143:20 | buffer | provenance | | | test.rs:143:15:143:20 | buffer | test.rs:143:14:143:20 | &buffer | provenance | | | test.rs:147:13:147:18 | mut f2 | test.rs:149:22:149:23 | f2 | provenance | | -| test.rs:147:22:147:80 | ... .open(...) [Ok] | test.rs:147:22:147:89 | ... .unwrap() | provenance | MaD:38 | +| test.rs:147:22:147:80 | ... .open(...) [Ok] | test.rs:147:22:147:89 | ... .unwrap() | provenance | MaD:36 | | test.rs:147:22:147:89 | ... .unwrap() | test.rs:147:13:147:18 | mut f2 | provenance | | | test.rs:147:67:147:70 | open | test.rs:147:22:147:80 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:149:22:149:23 | f2 | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:149:22:149:23 | f2 | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | test.rs:149:35:149:40 | [post] buffer | provenance | | | test.rs:149:35:149:40 | [post] buffer | test.rs:150:15:150:20 | buffer | provenance | | | test.rs:150:15:150:20 | buffer | test.rs:150:14:150:20 | &buffer | provenance | | | test.rs:154:13:154:18 | mut f3 | test.rs:156:22:156:23 | f3 | provenance | | -| test.rs:154:22:154:114 | ... .open(...) [Ok] | test.rs:154:22:154:123 | ... .unwrap() | provenance | MaD:38 | +| test.rs:154:22:154:114 | ... .open(...) [Ok] | test.rs:154:22:154:123 | ... .unwrap() | provenance | MaD:36 | | test.rs:154:22:154:123 | ... .unwrap() | test.rs:154:13:154:18 | mut f3 | provenance | | | test.rs:154:101:154:104 | open | test.rs:154:22:154:114 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:156:22:156:23 | f3 | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:156:22:156:23 | f3 | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | test.rs:156:35:156:40 | [post] buffer | provenance | | | test.rs:156:35:156:40 | [post] buffer | test.rs:157:15:157:20 | buffer | provenance | | | test.rs:157:15:157:20 | buffer | test.rs:157:14:157:20 | &buffer | provenance | | @@ -167,10 +151,10 @@ edges | test.rs:165:21:165:59 | ...::open(...) [Ok] | test.rs:165:21:165:60 | TryExpr | provenance | | | test.rs:165:21:165:60 | TryExpr | test.rs:165:13:165:17 | file2 | provenance | | | test.rs:166:13:166:22 | mut reader | test.rs:167:9:167:14 | reader | provenance | | -| test.rs:166:26:166:30 | file1 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:23 | +| test.rs:166:26:166:30 | file1 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:21 | | test.rs:166:26:166:43 | file1.chain(...) | test.rs:166:13:166:22 | mut reader | provenance | | -| test.rs:166:38:166:42 | file2 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:22 | -| test.rs:167:9:167:14 | reader | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:166:38:166:42 | file2 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:20 | +| test.rs:167:9:167:14 | reader | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | test.rs:167:36:167:41 | [post] buffer | provenance | | | test.rs:167:36:167:41 | [post] buffer | test.rs:168:15:168:20 | buffer | provenance | | | test.rs:168:15:168:20 | buffer | test.rs:168:14:168:20 | &buffer | provenance | | @@ -179,9 +163,9 @@ edges | test.rs:173:21:173:51 | ...::open(...) [Ok] | test.rs:173:21:173:52 | TryExpr | provenance | | | test.rs:173:21:173:52 | TryExpr | test.rs:173:13:173:17 | file1 | provenance | | | test.rs:174:13:174:22 | mut reader | test.rs:175:9:175:14 | reader | provenance | | -| test.rs:174:26:174:30 | file1 | test.rs:174:26:174:40 | file1.take(...) | provenance | MaD:28 | +| test.rs:174:26:174:30 | file1 | test.rs:174:26:174:40 | file1.take(...) | provenance | MaD:26 | | test.rs:174:26:174:40 | file1.take(...) | test.rs:174:13:174:22 | mut reader | provenance | | -| test.rs:175:9:175:14 | reader | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:175:9:175:14 | reader | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | test.rs:175:36:175:41 | [post] buffer | provenance | | | test.rs:175:36:175:41 | [post] buffer | test.rs:176:15:176:20 | buffer | provenance | | | test.rs:176:15:176:20 | buffer | test.rs:176:14:176:20 | &buffer | provenance | | @@ -198,43 +182,43 @@ edges | test.rs:185:20:185:52 | ...::open(...) [future, Ok] | test.rs:185:20:185:58 | await ... [Ok] | provenance | | | test.rs:185:20:185:58 | await ... [Ok] | test.rs:185:20:185:59 | TryExpr | provenance | | | test.rs:185:20:185:59 | TryExpr | test.rs:185:9:185:16 | mut file | provenance | | -| test.rs:189:22:189:25 | file | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | provenance | MaD:29 | +| test.rs:189:22:189:25 | file | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | provenance | MaD:27 | | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | test.rs:189:37:189:42 | [post] buffer | provenance | | | test.rs:189:37:189:42 | [post] buffer | test.rs:190:15:190:20 | buffer | provenance | | | test.rs:190:15:190:20 | buffer | test.rs:190:14:190:20 | &buffer | provenance | | -| test.rs:195:22:195:25 | file | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | provenance | MaD:35 | +| test.rs:195:22:195:25 | file | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | provenance | MaD:33 | | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | test.rs:195:44:195:49 | [post] buffer | provenance | | | test.rs:195:44:195:49 | [post] buffer | test.rs:196:15:196:20 | buffer | provenance | | | test.rs:196:15:196:20 | buffer | test.rs:196:14:196:20 | &buffer | provenance | | -| test.rs:201:22:201:25 | file | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | provenance | MaD:36 | +| test.rs:201:22:201:25 | file | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | provenance | MaD:34 | | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | test.rs:201:47:201:52 | [post] buffer | provenance | | | test.rs:201:47:201:52 | [post] buffer | test.rs:202:15:202:20 | buffer | provenance | | | test.rs:202:15:202:20 | buffer | test.rs:202:14:202:20 | &buffer | provenance | | -| test.rs:207:9:207:12 | file | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | provenance | MaD:31 | +| test.rs:207:9:207:12 | file | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | provenance | MaD:29 | | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | test.rs:207:30:207:35 | [post] buffer | provenance | | | test.rs:207:30:207:35 | [post] buffer | test.rs:208:15:208:20 | buffer | provenance | | | test.rs:208:15:208:20 | buffer | test.rs:208:14:208:20 | &buffer | provenance | | | test.rs:212:13:212:14 | v1 | test.rs:216:14:216:15 | v1 | provenance | | -| test.rs:212:18:212:21 | file | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | provenance | MaD:37 | +| test.rs:212:18:212:21 | file | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | provenance | MaD:35 | | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | test.rs:212:18:212:37 | await ... [Ok] | provenance | | | test.rs:212:18:212:37 | await ... [Ok] | test.rs:212:18:212:38 | TryExpr | provenance | | | test.rs:212:18:212:38 | TryExpr | test.rs:212:13:212:14 | v1 | provenance | | | test.rs:213:13:213:14 | v2 | test.rs:217:14:217:15 | v2 | provenance | | -| test.rs:213:18:213:21 | file | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | provenance | MaD:33 | +| test.rs:213:18:213:21 | file | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | provenance | MaD:31 | | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | test.rs:213:18:213:38 | await ... [Ok] | provenance | | | test.rs:213:18:213:38 | await ... [Ok] | test.rs:213:18:213:39 | TryExpr | provenance | | | test.rs:213:18:213:39 | TryExpr | test.rs:213:13:213:14 | v2 | provenance | | | test.rs:214:13:214:14 | v3 | test.rs:218:14:218:15 | v3 | provenance | | -| test.rs:214:18:214:21 | file | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | provenance | MaD:32 | +| test.rs:214:18:214:21 | file | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | provenance | MaD:30 | | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | test.rs:214:18:214:38 | await ... [Ok] | provenance | | | test.rs:214:18:214:38 | await ... [Ok] | test.rs:214:18:214:39 | TryExpr | provenance | | | test.rs:214:18:214:39 | TryExpr | test.rs:214:13:214:14 | v3 | provenance | | | test.rs:215:13:215:14 | v4 | test.rs:219:14:219:15 | v4 | provenance | | -| test.rs:215:18:215:21 | file | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | provenance | MaD:34 | +| test.rs:215:18:215:21 | file | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | provenance | MaD:32 | | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | test.rs:215:18:215:41 | await ... [Ok] | provenance | | | test.rs:215:18:215:41 | await ... [Ok] | test.rs:215:18:215:42 | TryExpr | provenance | | | test.rs:215:18:215:42 | TryExpr | test.rs:215:13:215:14 | v4 | provenance | | -| test.rs:224:9:224:12 | file | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | provenance | MaD:30 | +| test.rs:224:9:224:12 | file | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | provenance | MaD:28 | | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | test.rs:224:28:224:33 | [post] buffer | provenance | | | test.rs:224:28:224:33 | [post] buffer | test.rs:225:15:225:20 | buffer | provenance | | | test.rs:225:15:225:20 | buffer | test.rs:225:14:225:20 | &buffer | provenance | | @@ -243,7 +227,7 @@ edges | test.rs:231:22:231:71 | await ... [Ok] | test.rs:231:22:231:72 | TryExpr | provenance | | | test.rs:231:22:231:72 | TryExpr | test.rs:231:13:231:18 | mut f1 | provenance | | | test.rs:231:52:231:55 | open | test.rs:231:22:231:65 | ... .open(...) [future, Ok] | provenance | Src:MaD:8 | -| test.rs:233:22:233:23 | f1 | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | provenance | MaD:29 | +| test.rs:233:22:233:23 | f1 | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | provenance | MaD:27 | | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | test.rs:233:35:233:40 | [post] buffer | provenance | | | test.rs:233:35:233:40 | [post] buffer | test.rs:234:15:234:20 | buffer | provenance | | | test.rs:234:15:234:20 | buffer | test.rs:234:14:234:20 | &buffer | provenance | | @@ -252,7 +236,7 @@ edges | test.rs:262:20:262:56 | ...::open(...) [future, Ok] | test.rs:262:20:262:62 | await ... [Ok] | provenance | | | test.rs:262:20:262:62 | await ... [Ok] | test.rs:262:20:262:63 | TryExpr | provenance | | | test.rs:262:20:262:63 | TryExpr | test.rs:262:9:262:16 | mut file | provenance | | -| test.rs:266:22:266:25 | file | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:266:22:266:25 | file | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | provenance | MaD:17 | | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | test.rs:266:37:266:42 | [post] buffer | provenance | | | test.rs:266:37:266:42 | [post] buffer | test.rs:267:15:267:20 | buffer | provenance | | | test.rs:267:15:267:20 | buffer | test.rs:267:14:267:20 | &buffer | provenance | | @@ -261,32 +245,23 @@ edges | test.rs:273:22:273:75 | await ... [Ok] | test.rs:273:22:273:76 | TryExpr | provenance | | | test.rs:273:22:273:76 | TryExpr | test.rs:273:13:273:18 | mut f1 | provenance | | | test.rs:273:56:273:59 | open | test.rs:273:22:273:69 | ... .open(...) [future, Ok] | provenance | Src:MaD:2 | -| test.rs:275:22:275:23 | f1 | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:275:22:275:23 | f1 | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | provenance | MaD:17 | | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | test.rs:275:35:275:40 | [post] buffer | provenance | | | test.rs:275:35:275:40 | [post] buffer | test.rs:276:15:276:20 | buffer | provenance | | | test.rs:276:15:276:20 | buffer | test.rs:276:14:276:20 | &buffer | provenance | | nodes | test.rs:12:13:12:18 | buffer | semmle.label | buffer | | test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | -| test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | -| test.rs:12:31:12:43 | ...::read [Ok] | semmle.label | ...::read [Ok] | -| test.rs:12:31:12:55 | ...::read(...) | semmle.label | ...::read(...) | | test.rs:12:31:12:55 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:12:31:12:56 | TryExpr | semmle.label | TryExpr | | test.rs:13:14:13:19 | buffer | semmle.label | buffer | | test.rs:17:13:17:18 | buffer | semmle.label | buffer | | test.rs:17:31:17:38 | ...::read | semmle.label | ...::read | -| test.rs:17:31:17:38 | ...::read | semmle.label | ...::read | -| test.rs:17:31:17:38 | ...::read [Ok] | semmle.label | ...::read [Ok] | -| test.rs:17:31:17:50 | ...::read(...) | semmle.label | ...::read(...) | | test.rs:17:31:17:50 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:17:31:17:51 | TryExpr | semmle.label | TryExpr | | test.rs:18:14:18:19 | buffer | semmle.label | buffer | | test.rs:22:13:22:18 | buffer | semmle.label | buffer | | test.rs:22:22:22:39 | ...::read_to_string | semmle.label | ...::read_to_string | -| test.rs:22:22:22:39 | ...::read_to_string | semmle.label | ...::read_to_string | -| test.rs:22:22:22:39 | ...::read_to_string [Ok] | semmle.label | ...::read_to_string [Ok] | -| test.rs:22:22:22:51 | ...::read_to_string(...) | semmle.label | ...::read_to_string(...) | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | semmle.label | ...::read_to_string(...) [Ok] | | test.rs:22:22:22:52 | TryExpr | semmle.label | TryExpr | | test.rs:23:14:23:19 | buffer | semmle.label | buffer | @@ -331,11 +306,9 @@ nodes | test.rs:90:13:90:16 | path | semmle.label | path | | test.rs:90:20:90:31 | entry.path() | semmle.label | entry.path() | | test.rs:90:26:90:29 | path | semmle.label | path | -| test.rs:90:26:90:29 | path | semmle.label | path | | test.rs:91:13:91:21 | file_name | semmle.label | file_name | | test.rs:91:25:91:41 | entry.file_name() | semmle.label | entry.file_name() | | test.rs:91:31:91:39 | file_name | semmle.label | file_name | -| test.rs:91:31:91:39 | file_name | semmle.label | file_name | | test.rs:92:14:92:17 | path | semmle.label | path | | test.rs:93:14:93:22 | file_name | semmle.label | file_name | | test.rs:97:13:97:18 | target | semmle.label | target | @@ -515,10 +488,7 @@ subpaths testFailures #select | test.rs:13:14:13:19 | buffer | test.rs:12:31:12:43 | ...::read | test.rs:13:14:13:19 | buffer | $@ | test.rs:12:31:12:43 | ...::read | ...::read | -| test.rs:13:14:13:19 | buffer | test.rs:12:31:12:43 | ...::read | test.rs:13:14:13:19 | buffer | $@ | test.rs:12:31:12:43 | ...::read | ...::read | | test.rs:18:14:18:19 | buffer | test.rs:17:31:17:38 | ...::read | test.rs:18:14:18:19 | buffer | $@ | test.rs:17:31:17:38 | ...::read | ...::read | -| test.rs:18:14:18:19 | buffer | test.rs:17:31:17:38 | ...::read | test.rs:18:14:18:19 | buffer | $@ | test.rs:17:31:17:38 | ...::read | ...::read | -| test.rs:23:14:23:19 | buffer | test.rs:22:22:22:39 | ...::read_to_string | test.rs:23:14:23:19 | buffer | $@ | test.rs:22:22:22:39 | ...::read_to_string | ...::read_to_string | | test.rs:23:14:23:19 | buffer | test.rs:22:22:22:39 | ...::read_to_string | test.rs:23:14:23:19 | buffer | $@ | test.rs:22:22:22:39 | ...::read_to_string | ...::read_to_string | | test.rs:30:14:30:25 | path.clone() | test.rs:29:22:29:25 | path | test.rs:30:14:30:25 | path.clone() | $@ | test.rs:29:22:29:25 | path | path | | test.rs:31:14:31:35 | ... .as_path() | test.rs:29:22:29:25 | path | test.rs:31:14:31:35 | ... .as_path() | $@ | test.rs:29:22:29:25 | path | path | @@ -530,8 +500,6 @@ testFailures | test.rs:80:14:80:19 | buffer | test.rs:79:31:79:45 | ...::read | test.rs:80:14:80:19 | buffer | $@ | test.rs:79:31:79:45 | ...::read | ...::read | | test.rs:85:14:85:19 | buffer | test.rs:84:22:84:46 | ...::read_to_string | test.rs:85:14:85:19 | buffer | $@ | test.rs:84:22:84:46 | ...::read_to_string | ...::read_to_string | | test.rs:92:14:92:17 | path | test.rs:90:26:90:29 | path | test.rs:92:14:92:17 | path | $@ | test.rs:90:26:90:29 | path | path | -| test.rs:92:14:92:17 | path | test.rs:90:26:90:29 | path | test.rs:92:14:92:17 | path | $@ | test.rs:90:26:90:29 | path | path | -| test.rs:93:14:93:22 | file_name | test.rs:91:31:91:39 | file_name | test.rs:93:14:93:22 | file_name | $@ | test.rs:91:31:91:39 | file_name | file_name | | test.rs:93:14:93:22 | file_name | test.rs:91:31:91:39 | file_name | test.rs:93:14:93:22 | file_name | $@ | test.rs:91:31:91:39 | file_name | file_name | | test.rs:98:14:98:19 | target | test.rs:97:22:97:41 | ...::read_link | test.rs:98:14:98:19 | target | $@ | test.rs:97:22:97:41 | ...::read_link | ...::read_link | | test.rs:112:14:112:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:112:14:112:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | diff --git a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected index f7687e025d7..0fb17232a39 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected @@ -1,8 +1,5 @@ | test.rs:12:31:12:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:12:31:12:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:17:31:17:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:17:31:17:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:22:22:22:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:22:22:22:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:26:18:26:29 | ...::read_dir | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:29:22:29:25 | path | Flow source 'FileSource' of type file (DEFAULT). | @@ -15,8 +12,6 @@ | test.rs:79:31:79:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:84:22:84:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:90:26:90:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:90:26:90:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:91:31:91:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:91:31:91:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:97:22:97:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:107:20:107:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index ba7a5c3e50b..4f4cc63cb26 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -49,118 +49,117 @@ | test_logging.rs:223:13:223:28 | ...::assert_failed | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:13:223:28 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:223:52:223:59 | password | password | | test_logging.rs:226:13:226:28 | ...::assert_failed | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:13:226:28 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:226:52:226:59 | password | password | | test_logging.rs:229:23:229:28 | expect | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:23:229:28 | expect | This operation writes $@ to a log file. | test_logging.rs:229:54:229:61 | password | password | -| test_logging.rs:229:23:229:28 | expect | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:23:229:28 | expect | This operation writes $@ to a log file. | test_logging.rs:229:54:229:61 | password | password | | test_logging.rs:242:10:242:14 | write | test_logging.rs:242:42:242:49 | password | test_logging.rs:242:10:242:14 | write | This operation writes $@ to a log file. | test_logging.rs:242:42:242:49 | password | password | | test_logging.rs:245:10:245:18 | write_all | test_logging.rs:245:46:245:53 | password | test_logging.rs:245:10:245:18 | write_all | This operation writes $@ to a log file. | test_logging.rs:245:46:245:53 | password | password | | test_logging.rs:248:9:248:13 | write | test_logging.rs:248:41:248:48 | password | test_logging.rs:248:9:248:13 | write | This operation writes $@ to a log file. | test_logging.rs:248:41:248:48 | password | password | | test_logging.rs:251:9:251:13 | write | test_logging.rs:251:41:251:48 | password | test_logging.rs:251:9:251:13 | write | This operation writes $@ to a log file. | test_logging.rs:251:41:251:48 | password | password | edges -| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:42:28:42:35 | password | test_logging.rs:42:12:42:35 | MacroExpr | provenance | | -| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | -| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:44:27:44:34 | password | test_logging.rs:44:11:44:34 | MacroExpr | provenance | | -| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:45:28:45:35 | password | test_logging.rs:45:12:45:35 | MacroExpr | provenance | | -| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:46:27:46:34 | password | test_logging.rs:46:11:46:34 | MacroExpr | provenance | | -| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:47:40:47:47 | password | test_logging.rs:47:24:47:47 | MacroExpr | provenance | | -| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:52:28:52:35 | password | test_logging.rs:52:12:52:35 | MacroExpr | provenance | | -| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:54:41:54:48 | password | test_logging.rs:54:12:54:48 | MacroExpr | provenance | | -| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:56:39:56:46 | password | test_logging.rs:56:12:56:46 | MacroExpr | provenance | | -| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:57:24:57:31 | password | test_logging.rs:57:12:57:33 | MacroExpr | provenance | | -| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:35 | MacroExpr | provenance | | -| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:60:46:60:53 | password | test_logging.rs:60:30:60:53 | MacroExpr | provenance | | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:61:20:61:28 | &password | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:61:20:61:28 | &password [&ref] | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password | provenance | Config | | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password [&ref] | provenance | | -| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:65:40:65:47 | password | test_logging.rs:65:24:65:47 | MacroExpr | provenance | | -| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:67:58:67:65 | password | test_logging.rs:67:42:67:65 | MacroExpr | provenance | | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:68:18:68:26 | &password | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:68:18:68:26 | &password [&ref] | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password | provenance | Config | | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password [&ref] | provenance | | -| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:72:39:72:46 | password | test_logging.rs:72:23:72:46 | MacroExpr | provenance | | -| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:74:57:74:64 | password | test_logging.rs:74:41:74:64 | MacroExpr | provenance | | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:75:20:75:28 | &password | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:75:20:75:28 | &password [&ref] | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password | provenance | Config | | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password [&ref] | provenance | | -| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:76:39:76:46 | password | test_logging.rs:76:23:76:46 | MacroExpr | provenance | | -| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:82:36:82:43 | password | test_logging.rs:82:20:82:43 | MacroExpr | provenance | | -| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:84:54:84:61 | password | test_logging.rs:84:38:84:61 | MacroExpr | provenance | | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:85:20:85:28 | &password | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:85:20:85:28 | &password [&ref] | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password | provenance | Config | | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password [&ref] | provenance | | -| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:86:36:86:43 | password | test_logging.rs:86:20:86:43 | MacroExpr | provenance | | | test_logging.rs:93:9:93:10 | m1 | test_logging.rs:94:11:94:28 | MacroExpr | provenance | | | test_logging.rs:93:14:93:22 | &password | test_logging.rs:93:9:93:10 | m1 | provenance | | | test_logging.rs:93:15:93:22 | password | test_logging.rs:93:14:93:22 | &password | provenance | Config | -| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:96:9:96:10 | m2 | test_logging.rs:97:11:97:18 | MacroExpr | provenance | | | test_logging.rs:96:14:96:49 | ... + ... | test_logging.rs:96:9:96:10 | m2 | provenance | | -| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:18 | | test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:17 | -| test_logging.rs:96:41:96:49 | &password [&ref] | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:17 | +| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | +| test_logging.rs:96:41:96:49 | &password [&ref] | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | | test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password | provenance | Config | | test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password [&ref] | provenance | | -| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:99:9:99:10 | m3 | test_logging.rs:100:11:100:18 | MacroExpr | provenance | | | test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:22:99:45 | { ... } | provenance | | | test_logging.rs:99:22:99:45 | ...::must_use(...) | test_logging.rs:99:9:99:10 | m3 | provenance | | -| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:99:38:99:45 | password | test_logging.rs:99:22:99:45 | MacroExpr | provenance | | -| test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | -| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:12:118:41 | MacroExpr | provenance | | | test_logging.rs:129:9:129:10 | t1 [tuple.1] | test_logging.rs:131:28:131:29 | t1 [tuple.1] | provenance | | | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | test_logging.rs:129:9:129:10 | t1 [tuple.1] | provenance | | | test_logging.rs:129:25:129:32 | password | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | provenance | | -| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | | test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | -| test_logging.rs:141:11:141:37 | MacroExpr | test_logging.rs:141:5:141:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:141:11:141:37 | MacroExpr | test_logging.rs:141:5:141:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:141:27:141:37 | s1.password | test_logging.rs:141:11:141:37 | MacroExpr | provenance | | -| test_logging.rs:151:11:151:37 | MacroExpr | test_logging.rs:151:5:151:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:151:11:151:37 | MacroExpr | test_logging.rs:151:5:151:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:151:27:151:37 | s2.password | test_logging.rs:151:11:151:37 | MacroExpr | provenance | | | test_logging.rs:176:33:176:79 | &... | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:1 Sink:MaD:1 | | test_logging.rs:176:33:176:79 | &... [&ref] | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:1 Sink:MaD:1 | @@ -168,8 +167,8 @@ edges | test_logging.rs:176:34:176:79 | MacroExpr | test_logging.rs:176:33:176:79 | &... [&ref] | provenance | | | test_logging.rs:176:42:176:78 | ...::format(...) | test_logging.rs:176:42:176:78 | { ... } | provenance | | | test_logging.rs:176:42:176:78 | ...::must_use(...) | test_logging.rs:176:34:176:79 | MacroExpr | provenance | | -| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:176:70:176:78 | password2 | test_logging.rs:176:42:176:78 | MacroExpr | provenance | | | test_logging.rs:180:35:180:81 | &... | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | | test_logging.rs:180:35:180:81 | &... [&ref] | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | @@ -177,93 +176,84 @@ edges | test_logging.rs:180:36:180:81 | MacroExpr | test_logging.rs:180:35:180:81 | &... [&ref] | provenance | | | test_logging.rs:180:44:180:80 | ...::format(...) | test_logging.rs:180:44:180:80 | { ... } | provenance | | | test_logging.rs:180:44:180:80 | ...::must_use(...) | test_logging.rs:180:36:180:81 | MacroExpr | provenance | | -| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:180:72:180:80 | password2 | test_logging.rs:180:44:180:80 | MacroExpr | provenance | | | test_logging.rs:183:9:183:19 | err_result2 [Err] | test_logging.rs:184:13:184:23 | err_result2 [Err] | provenance | | | test_logging.rs:183:47:183:68 | Err(...) [Err] | test_logging.rs:183:9:183:19 | err_result2 [Err] | provenance | | -| test_logging.rs:183:51:183:59 | password2 | test_logging.rs:183:51:183:67 | password2.clone() | provenance | MaD:16 | +| test_logging.rs:183:51:183:59 | password2 | test_logging.rs:183:51:183:67 | password2.clone() | provenance | MaD:15 | | test_logging.rs:183:51:183:67 | password2.clone() | test_logging.rs:183:47:183:68 | Err(...) [Err] | provenance | | | test_logging.rs:184:13:184:23 | err_result2 [Err] | test_logging.rs:184:25:184:34 | log_expect | provenance | MaD:4 Sink:MaD:4 | | test_logging.rs:187:9:187:19 | err_result3 [Err] | test_logging.rs:188:13:188:23 | err_result3 [Err] | provenance | | | test_logging.rs:187:47:187:60 | Err(...) [Err] | test_logging.rs:187:9:187:19 | err_result3 [Err] | provenance | | | test_logging.rs:187:51:187:59 | password2 | test_logging.rs:187:47:187:60 | Err(...) [Err] | provenance | | | test_logging.rs:188:13:188:23 | err_result3 [Err] | test_logging.rs:188:25:188:34 | log_unwrap | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:192:12:192:37 | MacroExpr | test_logging.rs:192:5:192:10 | ...::_print | provenance | MaD:15 Sink:MaD:15 | +| test_logging.rs:192:12:192:37 | MacroExpr | test_logging.rs:192:5:192:10 | ...::_print | provenance | MaD:14 Sink:MaD:14 | | test_logging.rs:192:30:192:37 | password | test_logging.rs:192:12:192:37 | MacroExpr | provenance | | -| test_logging.rs:193:14:193:37 | MacroExpr | test_logging.rs:193:5:193:12 | ...::_print | provenance | MaD:15 Sink:MaD:15 | +| test_logging.rs:193:14:193:37 | MacroExpr | test_logging.rs:193:5:193:12 | ...::_print | provenance | MaD:14 Sink:MaD:14 | | test_logging.rs:193:30:193:37 | password | test_logging.rs:193:14:193:37 | MacroExpr | provenance | | -| test_logging.rs:194:13:194:38 | MacroExpr | test_logging.rs:194:5:194:11 | ...::_eprint | provenance | MaD:14 Sink:MaD:14 | +| test_logging.rs:194:13:194:38 | MacroExpr | test_logging.rs:194:5:194:11 | ...::_eprint | provenance | MaD:13 Sink:MaD:13 | | test_logging.rs:194:31:194:38 | password | test_logging.rs:194:13:194:38 | MacroExpr | provenance | | -| test_logging.rs:195:15:195:38 | MacroExpr | test_logging.rs:195:5:195:13 | ...::_eprint | provenance | MaD:14 Sink:MaD:14 | +| test_logging.rs:195:15:195:38 | MacroExpr | test_logging.rs:195:5:195:13 | ...::_eprint | provenance | MaD:13 Sink:MaD:13 | | test_logging.rs:195:31:195:38 | password | test_logging.rs:195:15:195:38 | MacroExpr | provenance | | -| test_logging.rs:199:20:199:43 | MacroExpr | test_logging.rs:199:13:199:18 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:199:20:199:43 | MacroExpr | test_logging.rs:199:13:199:18 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:199:36:199:43 | password | test_logging.rs:199:20:199:43 | MacroExpr | provenance | | -| test_logging.rs:202:19:202:42 | MacroExpr | test_logging.rs:202:13:202:17 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:202:19:202:42 | MacroExpr | test_logging.rs:202:13:202:17 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:202:35:202:42 | password | test_logging.rs:202:19:202:42 | MacroExpr | provenance | | -| test_logging.rs:205:28:205:51 | MacroExpr | test_logging.rs:205:13:205:26 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:205:28:205:51 | MacroExpr | test_logging.rs:205:13:205:26 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:205:44:205:51 | password | test_logging.rs:205:28:205:51 | MacroExpr | provenance | | -| test_logging.rs:208:26:208:49 | MacroExpr | test_logging.rs:208:13:208:24 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:208:26:208:49 | MacroExpr | test_logging.rs:208:13:208:24 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:208:42:208:49 | password | test_logging.rs:208:26:208:49 | MacroExpr | provenance | | -| test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:19 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:19 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:211:44:211:51 | password | test_logging.rs:211:28:211:51 | MacroExpr | provenance | | -| test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:214:30:214:53 | MacroExpr | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:214:46:214:53 | password | test_logging.rs:214:30:214:53 | MacroExpr | provenance | | -| test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:217:30:217:53 | MacroExpr | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:217:46:217:53 | password | test_logging.rs:217:30:217:53 | MacroExpr | provenance | | -| test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:25 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:25 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:220:50:220:57 | password | test_logging.rs:220:34:220:57 | MacroExpr | provenance | | -| test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:223:36:223:59 | MacroExpr | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:36:223:59 | MacroExpr | provenance | | -| test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:226:36:226:59 | MacroExpr | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:36:226:59 | MacroExpr | provenance | | -| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:20 | -| test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | test_logging.rs:229:23:229:28 | expect | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:19 | | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | test_logging.rs:229:23:229:28 | expect | provenance | MaD:2 Sink:MaD:2 | | test_logging.rs:229:38:229:61 | ...::format(...) | test_logging.rs:229:38:229:61 | { ... } | provenance | | | test_logging.rs:229:38:229:61 | ...::must_use(...) | test_logging.rs:229:30:229:62 | MacroExpr | provenance | | -| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:38:229:61 | MacroExpr | provenance | | -| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | test_logging.rs:242:10:242:14 | write | provenance | MaD:7 Sink:MaD:7 | | test_logging.rs:242:24:242:49 | ...::format(...) | test_logging.rs:242:24:242:49 | { ... } | provenance | | | test_logging.rs:242:24:242:49 | ...::must_use(...) | test_logging.rs:242:16:242:50 | MacroExpr | provenance | | -| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:242:42:242:49 | password | test_logging.rs:242:24:242:49 | MacroExpr | provenance | | -| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | test_logging.rs:245:10:245:18 | write_all | provenance | MaD:8 Sink:MaD:8 | | test_logging.rs:245:28:245:53 | ...::format(...) | test_logging.rs:245:28:245:53 | { ... } | provenance | | | test_logging.rs:245:28:245:53 | ...::must_use(...) | test_logging.rs:245:20:245:54 | MacroExpr | provenance | | -| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:245:46:245:53 | password | test_logging.rs:245:28:245:53 | MacroExpr | provenance | | -| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | test_logging.rs:248:9:248:13 | write | provenance | MaD:7 Sink:MaD:7 | | test_logging.rs:248:23:248:48 | ...::format(...) | test_logging.rs:248:23:248:48 | { ... } | provenance | | | test_logging.rs:248:23:248:48 | ...::must_use(...) | test_logging.rs:248:15:248:49 | MacroExpr | provenance | | -| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:248:41:248:48 | password | test_logging.rs:248:23:248:48 | MacroExpr | provenance | | -| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | test_logging.rs:251:9:251:13 | write | provenance | MaD:6 Sink:MaD:6 | | test_logging.rs:251:23:251:48 | ...::format(...) | test_logging.rs:251:23:251:48 | { ... } | provenance | | | test_logging.rs:251:23:251:48 | ...::must_use(...) | test_logging.rs:251:15:251:49 | MacroExpr | provenance | | -| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:251:41:251:48 | password | test_logging.rs:251:23:251:48 | MacroExpr | provenance | | models | 1 | Sink: ::log_expect; Argument[0]; log-injection | @@ -275,19 +265,18 @@ models | 7 | Sink: ::write; Argument[0]; log-injection | | 8 | Sink: ::write_all; Argument[0]; log-injection | | 9 | Sink: core::panicking::assert_failed; Argument[3].Field[core::option::Option::Some(0)]; log-injection | -| 10 | Sink: core::panicking::assert_failed; Argument[3]; log-injection | -| 11 | Sink: core::panicking::panic_fmt; Argument[0]; log-injection | -| 12 | Sink: log::__private_api::log; Argument[1]; log-injection | -| 13 | Sink: log::__private_api::log; Argument[3]; log-injection | -| 14 | Sink: std::io::stdio::_eprint; Argument[0]; log-injection | -| 15 | Sink: std::io::stdio::_print; Argument[0]; log-injection | -| 16 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 17 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 18 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 19 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 20 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 21 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 22 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 10 | Sink: core::panicking::panic_fmt; Argument[0]; log-injection | +| 11 | Sink: log::__private_api::log; Argument[1]; log-injection | +| 12 | Sink: log::__private_api::log; Argument[3]; log-injection | +| 13 | Sink: std::io::stdio::_eprint; Argument[0]; log-injection | +| 14 | Sink: std::io::stdio::_print; Argument[0]; log-injection | +| 15 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | +| 16 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 17 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 18 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | +| 19 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 20 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 21 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | test_logging.rs:42:5:42:10 | ...::log | semmle.label | ...::log | | test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | @@ -474,12 +463,10 @@ nodes | test_logging.rs:211:28:211:51 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:211:44:211:51 | password | semmle.label | password | | test_logging.rs:214:13:214:22 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:214:30:214:53 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:214:46:214:53 | password | semmle.label | password | | test_logging.rs:217:13:217:22 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:217:30:217:53 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:217:46:217:53 | password | semmle.label | password | @@ -487,17 +474,14 @@ nodes | test_logging.rs:220:34:220:57 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:220:50:220:57 | password | semmle.label | password | | test_logging.rs:223:13:223:28 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:223:36:223:59 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:223:52:223:59 | password | semmle.label | password | | test_logging.rs:226:13:226:28 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:226:36:226:59 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:226:52:226:59 | password | semmle.label | password | | test_logging.rs:229:23:229:28 | expect | semmle.label | expect | -| test_logging.rs:229:23:229:28 | expect | semmle.label | expect | | test_logging.rs:229:30:229:62 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | semmle.label | ... .as_str() [&ref] | | test_logging.rs:229:38:229:61 | ...::format(...) | semmle.label | ...::format(...) | diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected index 6afe11ad012..d3b5456063f 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected @@ -10,7 +10,6 @@ | deallocation.rs:95:5:95:31 | ...::write::<...> | deallocation.rs:70:3:70:21 | ...::dealloc | deallocation.rs:95:5:95:31 | ...::write::<...> | This operation dereferences a pointer that may be $@. | deallocation.rs:70:3:70:21 | ...::dealloc | invalid | | deallocation.rs:115:13:115:18 | my_ptr | deallocation.rs:112:3:112:12 | ...::free | deallocation.rs:115:13:115:18 | my_ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:112:3:112:12 | ...::free | invalid | | deallocation.rs:130:14:130:15 | p1 | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:130:14:130:15 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:123:23:123:40 | ...::dangling | invalid | -| deallocation.rs:130:14:130:15 | p1 | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:130:14:130:15 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:123:23:123:40 | ...::dangling | invalid | | deallocation.rs:131:14:131:15 | p2 | deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:131:14:131:15 | p2 | This operation dereferences a pointer that may be $@. | deallocation.rs:124:21:124:42 | ...::dangling_mut | invalid | | deallocation.rs:132:14:132:15 | p3 | deallocation.rs:125:23:125:36 | ...::null | deallocation.rs:132:14:132:15 | p3 | This operation dereferences a pointer that may be $@. | deallocation.rs:125:23:125:36 | ...::null | invalid | | deallocation.rs:163:13:163:15 | ptr | deallocation.rs:159:9:159:26 | ...::null_mut | deallocation.rs:163:13:163:15 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:159:9:159:26 | ...::null_mut | invalid | @@ -27,8 +26,6 @@ | deallocation.rs:210:7:210:9 | ptr | deallocation.rs:207:9:207:26 | ...::null_mut | deallocation.rs:210:7:210:9 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:207:9:207:26 | ...::null_mut | invalid | | deallocation.rs:226:13:226:21 | const_ptr | deallocation.rs:219:15:219:32 | ...::null_mut | deallocation.rs:226:13:226:21 | const_ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:219:15:219:32 | ...::null_mut | invalid | | deallocation.rs:274:15:274:16 | p1 | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:274:15:274:16 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:270:3:270:25 | ...::drop_in_place | invalid | -| deallocation.rs:274:15:274:16 | p1 | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:274:15:274:16 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:270:3:270:25 | ...::drop_in_place | invalid | -| deallocation.rs:342:18:342:20 | ptr | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:342:18:342:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:336:3:336:25 | ...::drop_in_place | invalid | | deallocation.rs:342:18:342:20 | ptr | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:342:18:342:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:336:3:336:25 | ...::drop_in_place | invalid | edges | deallocation.rs:20:3:20:21 | ...::dealloc | deallocation.rs:20:23:20:24 | [post] m1 | provenance | Src:MaD:3 MaD:3 | @@ -49,7 +46,6 @@ edges | deallocation.rs:112:14:112:40 | [post] my_ptr as ... | deallocation.rs:115:13:115:18 | my_ptr | provenance | | | deallocation.rs:123:6:123:7 | p1 | deallocation.rs:130:14:130:15 | p1 | provenance | | | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | -| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | | deallocation.rs:123:23:123:42 | ...::dangling(...) | deallocation.rs:123:6:123:7 | p1 | provenance | | | deallocation.rs:124:6:124:7 | p2 | deallocation.rs:131:14:131:15 | p2 | provenance | | | deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:124:21:124:44 | ...::dangling_mut(...) | provenance | Src:MaD:5 MaD:5 | @@ -83,10 +79,8 @@ edges | deallocation.rs:219:15:219:32 | ...::null_mut | deallocation.rs:219:15:219:34 | ...::null_mut(...) | provenance | Src:MaD:8 MaD:8 | | deallocation.rs:219:15:219:34 | ...::null_mut(...) | deallocation.rs:219:3:219:11 | const_ptr | provenance | | | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:270:27:270:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:270:27:270:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | | deallocation.rs:270:27:270:28 | [post] p1 | deallocation.rs:274:15:274:16 | p1 | provenance | | | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:336:27:336:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:336:27:336:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | | deallocation.rs:336:27:336:29 | [post] ptr | deallocation.rs:342:18:342:20 | ptr | provenance | | models | 1 | Sink: core::ptr::read; Argument[0]; pointer-access | @@ -120,7 +114,6 @@ nodes | deallocation.rs:115:13:115:18 | my_ptr | semmle.label | my_ptr | | deallocation.rs:123:6:123:7 | p1 | semmle.label | p1 | | deallocation.rs:123:23:123:40 | ...::dangling | semmle.label | ...::dangling | -| deallocation.rs:123:23:123:40 | ...::dangling | semmle.label | ...::dangling | | deallocation.rs:123:23:123:42 | ...::dangling(...) | semmle.label | ...::dangling(...) | | deallocation.rs:124:6:124:7 | p2 | semmle.label | p2 | | deallocation.rs:124:21:124:42 | ...::dangling_mut | semmle.label | ...::dangling_mut | @@ -160,11 +153,9 @@ nodes | deallocation.rs:219:15:219:34 | ...::null_mut(...) | semmle.label | ...::null_mut(...) | | deallocation.rs:226:13:226:21 | const_ptr | semmle.label | const_ptr | | deallocation.rs:270:3:270:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | -| deallocation.rs:270:3:270:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | | deallocation.rs:270:27:270:28 | [post] p1 | semmle.label | [post] p1 | | deallocation.rs:274:15:274:16 | p1 | semmle.label | p1 | | deallocation.rs:336:3:336:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | -| deallocation.rs:336:3:336:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | | deallocation.rs:336:27:336:29 | [post] ptr | semmle.label | [post] ptr | | deallocation.rs:342:18:342:20 | ptr | semmle.label | ptr | subpaths From 8564b4ea66affe10235ddf800c5d5eb534d0f3b6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 12 Dec 2025 11:24:39 +0100 Subject: [PATCH 140/194] Go: Use shared modelCoverage. --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 88 ++++--------------- shared/mad/codeql/mad/static/MaD.qll | 35 +++++--- 2 files changed, 37 insertions(+), 86 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 544d73fef26..5d63fb1a14e 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -96,7 +96,21 @@ private import internal.FlowSummaryImpl::Private::External private import codeql.mad.ModelValidation as SharedModelVal private import codeql.mad.static.MaD as SharedMaD -private module MadInput implements SharedMaD::InputSig { } +private module MadInput implements SharedMaD::InputSig { + string namespaceSegmentSeparator() { result = "/" } + + bindingset[p] + string cleanNamespace(string p) { + exists(string noPrefix | + p = fixedVersionPrefix() + noPrefix + or + not p = fixedVersionPrefix() + any(string s) and + noPrefix = p + | + result = noPrefix.regexpReplaceAll(majorVersionSuffixRegex(), "") + ) + } +} private module MaD = SharedMaD::ModelsAsData; @@ -107,78 +121,6 @@ module FlowExtensions = Extensions; /** Gets the prefix for a group of packages. */ private string groupPrefix() { result = "group:" } -bindingset[p] -private string cleanPackage(string p) { - exists(string noPrefix | - p = fixedVersionPrefix() + noPrefix - or - not p = fixedVersionPrefix() + any(string s) and - noPrefix = p - | - result = noPrefix.regexpReplaceAll(majorVersionSuffixRegex(), "") - ) -} - -private predicate relevantPackage(string package) { - exists(string p | package = cleanPackage(p) | - sourceModel(p, _, _, _, _, _, _, _, _, _) or - sinkModel(p, _, _, _, _, _, _, _, _, _) or - summaryModel(p, _, _, _, _, _, _, _, _, _, _) - ) -} - -private predicate packageLink(string shortpkg, string longpkg) { - relevantPackage(shortpkg) and - relevantPackage(longpkg) and - longpkg.prefix(longpkg.indexOf("/")) = shortpkg -} - -private predicate canonicalPackage(string package) { - relevantPackage(package) and not packageLink(_, package) -} - -private predicate canonicalPkgLink(string package, string subpkg) { - canonicalPackage(package) and - (subpkg = package or packageLink(package, subpkg)) -} - -/** - * Holds if MaD framework coverage of `package` is `n` api endpoints of the - * kind `(kind, part)`, and `pkgs` is the number of subpackages of `package` - * which have MaD framework coverage (including `package` itself). - */ -predicate modelCoverage(string package, int pkgs, string kind, string part, int n) { - pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and - ( - part = "source" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - sourceModel(x, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - sinkModel(x, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - summaryModel(x, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/MaD.qll index fbd12d909ab..dc1b9b77130 100644 --- a/shared/mad/codeql/mad/static/MaD.qll +++ b/shared/mad/codeql/mad/static/MaD.qll @@ -87,8 +87,12 @@ signature module InputSig { none() } - /** Get the separator used between namespace segments. */ + /** Gets the separator used between namespace segments. */ default string namespaceSegmentSeparator() { result = "." } + + /** Gets a cleaned-up version of the namespace for presentation in model coverage. */ + bindingset[ns] + default string cleanNamespace(string ns) { result = ns } } module ModelsAsData { @@ -278,9 +282,11 @@ module ModelsAsData { } private predicate relevantNamespace(string namespace) { - sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) + exists(string ns | namespace = Input::cleanNamespace(ns) | + sourceModel(ns, _, _, _, _, _, _, _, _, _) or + sinkModel(ns, _, _, _, _, _, _, _, _, _) or + summaryModel(ns, _, _, _, _, _, _, _, _, _, _) + ) } private predicate namespaceLink(string shortns, string longns) { @@ -309,25 +315,28 @@ module ModelsAsData { ( part = "source" and n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string output, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, _) ) or part = "sink" and n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance | - canonicalNamespaceLink(namespace, subns) and + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string input, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, _) ) or part = "summary" and n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string input, string output, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, _) ) From b499661c05bdf7742ac7f5437e7d655d022d6843 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 12 Dec 2025 11:00:33 +0000 Subject: [PATCH 141/194] C#: Slightly refactor 'CollectionFlow' tests to add a taint-flow test. --- .../internal/TaintTrackingPrivate.qll | 13 +- .../collections/CollectionDataFlow.expected | 840 ++++++++++ ...ollectionFlow.ql => CollectionDataFlow.ql} | 13 +- .../dataflow/collections/CollectionFlow.cs | 6 + .../collections/CollectionFlowCommon.qll | 12 + .../collections/CollectionTaintFlow.expected | 1374 +++++++++++++++++ .../collections/CollectionTaintFlow.ql | 12 + 7 files changed, 2257 insertions(+), 13 deletions(-) create mode 100644 csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected rename csharp/ql/test/library-tests/dataflow/collections/{CollectionFlow.ql => CollectionDataFlow.ql} (50%) create mode 100644 csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll create mode 100644 csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected create mode 100644 csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll index 3146720efe8..b24a104d388 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll @@ -24,6 +24,13 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { ) } +/** + * Gets the (unbound) property `System.Collections.Generic.KeyValuePair.Value`. + */ +private Property keyValuePairValue() { + result.hasFullyQualifiedName("System.Collections.Generic", "KeyValuePair`2", "Value") +} + /** * Holds if default `TaintTracking::Configuration`s should allow implicit reads * of `c` at sinks and inputs to additional taint steps. @@ -31,7 +38,11 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { bindingset[node] predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { exists(node) and - c.isElement() + ( + c.isElement() + or + c.isProperty(keyValuePairValue()) + ) } private class LocalTaintExprStepConfiguration extends ControlFlowReachabilityConfiguration { diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected new file mode 100644 index 00000000000..373e8938b91 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected @@ -0,0 +1,840 @@ +models +| 1 | Summary: System.Collections.Generic; Dictionary; false; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 2 | Summary: System.Collections.Generic; Dictionary; false; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 3 | Summary: System.Collections.Generic; ICollection; true; Add; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 4 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 5 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 6 | Summary: System.Collections.Generic; IDictionary; true; get_Item; (TKey); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue; value; manual | +| 7 | Summary: System.Collections.Generic; IDictionary; true; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 8 | Summary: System.Collections.Generic; IDictionary; true; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 9 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 10 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 11 | Summary: System.Collections.Generic; IList; true; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 12 | Summary: System.Collections.Generic; IList; true; set_Item; (System.Int32,T); ; Argument[1]; Argument[this].Element; value; manual | +| 13 | Summary: System.Collections.Generic; KeyValuePair; false; KeyValuePair; (TKey,TValue); ; Argument[0]; Argument[this].Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 14 | Summary: System.Collections.Generic; List+Enumerator; false; get_Current; (); ; Argument[this].Property[System.Collections.Generic.List`1+Enumerator.Current]; ReturnValue; value; dfc-generated | +| 15 | Summary: System.Collections.Generic; List; false; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current]; value; manual | +| 16 | Summary: System.Collections; IEnumerable; true; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.IEnumerator.Current]; value; manual | +| 17 | Summary: System.Linq; Enumerable; false; First; (System.Collections.Generic.IEnumerable); ; Argument[0].Element; ReturnValue; value; manual | +| 18 | Summary: System.Linq; Enumerable; false; Select; (System.Collections.Generic.IEnumerable,System.Func); ; Argument[0].Element; Argument[1].Parameter[0]; value; manual | +| 19 | Summary: System; ReadOnlySpan; false; ReadOnlySpan; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 20 | Summary: System; ReadOnlySpan; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 21 | Summary: System; Span; false; CopyTo; (System.Span); ; Argument[this].Element; Argument[0].Element; value; manual | +| 22 | Summary: System; Span; false; Fill; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 23 | Summary: System; Span; false; Span; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 24 | Summary: System; Span; false; Span; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 25 | Summary: System; Span; false; ToArray; (); ; Argument[this].Element; ReturnValue.Element; value; manual | +| 26 | Summary: System; Span; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +edges +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:16:56:16:61 | access to array element | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:7 | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:22:73:22:89 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | provenance | MaD:11 | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | provenance | MaD:6 | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | provenance | MaD:17 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | provenance | | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:2 | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | provenance | MaD:17 | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:7 | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | provenance | MaD:17 | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | provenance | MaD:17 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:95 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | CollectionFlow.cs:47:27:47:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:13:46:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:19 | access to array element | provenance | | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:50:14:50:23 | call to method First | provenance | | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | CollectionFlow.cs:65:53:65:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:13:64:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | CollectionFlow.cs:66:14:66:20 | access to array element | provenance | | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:68:14:68:24 | call to method First | provenance | | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | CollectionFlow.cs:83:54:83:54 | access to local variable a : A | provenance | | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:13:82:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | CollectionFlow.cs:84:14:84:21 | access to array element | provenance | | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:86:14:86:23 | call to method Last | provenance | | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | CollectionFlow.cs:93:18:93:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:13:91:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:19 | access to array element | provenance | | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:96:14:96:23 | call to method First | provenance | | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | CollectionFlow.cs:113:19:113:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:13:111:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:20 | access to array element | provenance | | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:116:14:116:22 | call to method Last | provenance | | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | CollectionFlow.cs:123:19:123:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:13:121:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | provenance | MaD:12 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | CollectionFlow.cs:141:36:141:36 | access to local variable a : A | provenance | | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:13:140:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | CollectionFlow.cs:159:18:159:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:13:157:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | CollectionFlow.cs:178:19:178:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:13:176:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | provenance | MaD:10 | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | CollectionFlow.cs:200:52:200:52 | access to local variable a : A | provenance | | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:13:199:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:5 | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | CollectionFlow.cs:221:53:221:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:13:220:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:10 | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | CollectionFlow.cs:243:49:243:49 | access to local variable a : A | provenance | | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:13:242:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:4 | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:244:14:244:30 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:7 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:17 | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | CollectionFlow.cs:262:48:262:48 | access to local variable a : A | provenance | | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:13:261:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:9 | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:263:14:263:30 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:7 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:17 | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | CollectionFlow.cs:281:27:281:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:13:280:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | provenance | | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | CollectionFlow.cs:296:27:296:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:13:295:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | provenance | MaD:16 | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:35 | access to property Current | provenance | | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | CollectionFlow.cs:314:18:314:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:13:312:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:15 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:15 | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:14 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:14 | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | CollectionFlow.cs:333:43:333:43 | access to local variable a : A | provenance | | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:13:331:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | provenance | MaD:3 | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | provenance | MaD:13 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | provenance | MaD:18 | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | | +| CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:55:353:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | provenance | | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | provenance | | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | CollectionFlow.cs:359:23:359:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:13:357:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:19 | access to array element | provenance | | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:362:14:362:23 | call to method First | provenance | | +| CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:55:375:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | provenance | | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | CollectionFlow.cs:381:23:381:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:13:379:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:40:49:40:52 | args : null [element] : A | provenance | | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | CollectionFlow.cs:441:20:441:20 | access to local variable a : A | provenance | | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:13:439:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | CollectionFlow.cs:461:22:461:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:13:460:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:21 | access to array element | provenance | | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | CollectionFlow.cs:468:22:468:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:13:467:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | provenance | | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:17 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | CollectionFlow.cs:481:21:481:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:13:480:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:21 | access to array element | provenance | | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | CollectionFlow.cs:521:40:521:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:13:520:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | CollectionFlow.cs:528:40:528:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:13:527:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | provenance | MaD:25 | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | CollectionFlow.cs:536:21:536:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:13:535:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | provenance | MaD:22 | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:22 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | provenance | MaD:24 | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | provenance | MaD:21 | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | CollectionFlow.cs:550:60:550:60 | access to local variable a : A | provenance | | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:13:549:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | provenance | MaD:19 | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:20 | +nodes +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:14:52:14:56 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:61 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:18:63:18:69 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:81 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:22:73:22:89 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | semmle.label | call to method First> : KeyValuePair [property Value] : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : A | semmle.label | access to property Value : A | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | semmle.label | access to property Values : ICollection [element] : A | +| CollectionFlow.cs:34:69:34:87 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:36:67:36:83 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | semmle.label | call to method First> : KeyValuePair [property Key] : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : A | semmle.label | access to property Key : A | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | semmle.label | args : A[] [element] : A | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | semmle.label | args : null [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | semmle.label | access to parameter args : A[] [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | semmle.label | access to parameter args : null [element] : A | +| CollectionFlow.cs:40:63:40:69 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | semmle.label | args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | semmle.label | access to parameter args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:95 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:48:14:48:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:50:14:50:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:66:14:66:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:68:14:68:24 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:84:14:84:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:86:14:86:23 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:94:14:94:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:96:14:96:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:114:14:114:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:116:14:116:22 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:124:14:124:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:126:14:126:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | semmle.label | object creation of type List : List [element] : A | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:142:14:142:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:144:14:144:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:160:14:160:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:162:14:162:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | semmle.label | [post] access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:179:14:179:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:201:14:201:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:222:14:222:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:244:14:244:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:263:14:263:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:283:18:283:18 | access to local variable x | semmle.label | access to local variable x | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | semmle.label | call to method GetEnumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | semmle.label | [post] access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | semmle.label | object creation of type KeyValuePair : KeyValuePair [property Key] : A | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | semmle.label | access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | semmle.label | kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | semmle.label | access to parameter kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:24 | access to property Key | semmle.label | access to property Key | +| CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | semmle.label | array [Return] : A[] [element] : A | +| CollectionFlow.cs:353:32:353:38 | element : A | semmle.label | element : A | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | semmle.label | [post] access to parameter array : A[] [element] : A | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:360:14:360:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:14:362:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | semmle.label | list [Return] : List [element] : A | +| CollectionFlow.cs:375:34:375:40 | element : A | semmle.label | element : A | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | semmle.label | [post] access to parameter list : List [element] : A | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:382:14:382:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:384:14:384:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | semmle.label | [...] : IEnumerable [element] : A | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | semmle.label | [post] access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | semmle.label | access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:442:14:442:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:462:14:462:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | semmle.label | [...] : List [element] : A | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:469:14:469:17 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | semmle.label | access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | semmle.label | .. access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:483:14:483:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:522:14:522:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | semmle.label | call to method ToArray : T[] [element] : A | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:530:14:530:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:537:14:537:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:551:14:551:20 | access to indexer | semmle.label | access to indexer | +subpaths +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:50:14:50:23 | call to method First | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:68:14:68:24 | call to method First | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:86:14:86:23 | call to method Last | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:96:14:96:23 | call to method First | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:116:14:116:22 | call to method Last | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:362:14:362:23 | call to method First | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +#select +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46: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 | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:48:14:48:19 | access to array element | $@ | CollectionFlow.cs:48:14:48:19 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:50:14:50:23 | call to method First | $@ | CollectionFlow.cs:50:14:50:23 | call to method First | call to method First | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64: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 | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:66:14:66:20 | access to array element | $@ | CollectionFlow.cs:66:14:66:20 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:68:14:68:24 | call to method First | $@ | CollectionFlow.cs:68:14:68:24 | call to method First | call to method First | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:84:14:84:21 | access to array element | $@ | CollectionFlow.cs:84:14:84:21 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:86:14:86:23 | call to method Last | $@ | CollectionFlow.cs:86:14:86:23 | call to method Last | call to method Last | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91: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 | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:94:14:94:19 | access to array element | $@ | CollectionFlow.cs:94:14:94:19 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:96:14:96:23 | call to method First | $@ | CollectionFlow.cs:96:14:96:23 | call to method First | call to method First | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:114:14:114:20 | access to array element | $@ | CollectionFlow.cs:114:14:114:20 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:116:14:116:22 | call to method Last | $@ | CollectionFlow.cs:116:14:116:22 | call to method Last | call to method Last | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:244:14:244:30 | call to method First | $@ | CollectionFlow.cs:244:14:244:30 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:263:14:263:30 | call to method First | $@ | CollectionFlow.cs:263:14:263:30 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | $@ | CollectionFlow.cs:283:18:283:18 | access to local variable x | access to local variable x | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:299:18:299:35 | access to property Current | $@ | CollectionFlow.cs:299:18:299:35 | access to property Current | access to property Current | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357: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 | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:360:14:360:19 | access to array element | $@ | CollectionFlow.cs:360:14:360:19 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:362:14:362:23 | call to method First | $@ | CollectionFlow.cs:362:14:362:23 | call to method First | call to method First | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:462:14:462:21 | access to array element | $@ | CollectionFlow.cs:462:14:462:21 | access to array element | access to array element | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:469:14:469:17 | access to indexer | $@ | CollectionFlow.cs:469:14:469:17 | access to indexer | access to indexer | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:483:14:483:21 | access to array element | $@ | CollectionFlow.cs:483:14:483:21 | access to array element | access to array element | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:537:14:537:22 | access to indexer | $@ | CollectionFlow.cs:537:14:537:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql similarity index 50% rename from csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql rename to csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql index 67553b5cbc9..d167fcdb638 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql @@ -2,20 +2,9 @@ * @kind path-problem */ -import csharp +import CollectionFlowCommon import utils.test.ProvenancePathGraph::ShowProvenance -module ArrayFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ObjectCreation } - - predicate isSink(DataFlow::Node sink) { - exists(MethodCall mc | - mc.getTarget().hasUndecoratedName("Sink") and - mc.getAnArgument() = sink.asExpr() - ) - } -} - module ArrayFlow = DataFlow::Global; from ArrayFlow::PathNode source, ArrayFlow::PathNode sink diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs index c0a7900461f..e5d03c7deea 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs @@ -550,4 +550,10 @@ public class CollectionFlow ReadOnlySpan span = new ReadOnlySpan(new[] { a }); Sink(span[0]); // flow } + + public void ImplicitMapValueRead(Dictionary dict) { + var a = new A(); + dict[0] = a; + Sink(dict); // no taint flow + } } diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll new file mode 100644 index 00000000000..bfbd22773e1 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll @@ -0,0 +1,12 @@ +import csharp + +module ArrayFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ObjectCreation } + + predicate isSink(DataFlow::Node sink) { + exists(MethodCall mc | + mc.getTarget().hasUndecoratedName("Sink") and + mc.getAnArgument() = sink.asExpr() + ) + } +} diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected new file mode 100644 index 00000000000..2d4bbfe607c --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected @@ -0,0 +1,1374 @@ +models +| 1 | Summary: System.Collections.Generic; Dictionary; false; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 2 | Summary: System.Collections.Generic; Dictionary; false; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 3 | Summary: System.Collections.Generic; ICollection; true; Add; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 4 | Summary: System.Collections.Generic; ICollection; true; Clear; (); ; Argument[this].WithoutElement; Argument[this]; value; manual | +| 5 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 6 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 7 | Summary: System.Collections.Generic; IDictionary; true; get_Item; (TKey); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue; value; manual | +| 8 | Summary: System.Collections.Generic; IDictionary; true; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 9 | Summary: System.Collections.Generic; IDictionary; true; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 10 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 11 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 12 | Summary: System.Collections.Generic; IList; true; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 13 | Summary: System.Collections.Generic; IList; true; set_Item; (System.Int32,T); ; Argument[1]; Argument[this].Element; value; manual | +| 14 | Summary: System.Collections.Generic; KeyValuePair; false; KeyValuePair; (TKey,TValue); ; Argument[0]; Argument[this].Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 15 | Summary: System.Collections.Generic; KeyValuePair; false; get_Key; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 16 | Summary: System.Collections.Generic; KeyValuePair; false; get_Value; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 17 | Summary: System.Collections.Generic; List+Enumerator; false; get_Current; (); ; Argument[this].Property[System.Collections.Generic.List`1+Enumerator.Current]; ReturnValue; value; dfc-generated | +| 18 | Summary: System.Collections.Generic; List; false; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current]; value; manual | +| 19 | Summary: System.Collections; IEnumerable; true; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.IEnumerator.Current]; value; manual | +| 20 | Summary: System.Collections; IList; true; Clear; (); ; Argument[this].WithoutElement; Argument[this]; value; manual | +| 21 | Summary: System.Linq; Enumerable; false; First; (System.Collections.Generic.IEnumerable); ; Argument[0].Element; ReturnValue; value; manual | +| 22 | Summary: System.Linq; Enumerable; false; Select; (System.Collections.Generic.IEnumerable,System.Func); ; Argument[0].Element; Argument[1].Parameter[0]; value; manual | +| 23 | Summary: System; ReadOnlySpan; false; ReadOnlySpan; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 24 | Summary: System; ReadOnlySpan; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 25 | Summary: System; Span; false; CopyTo; (System.Span); ; Argument[this].Element; Argument[0].Element; value; manual | +| 26 | Summary: System; Span; false; Fill; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 27 | Summary: System; Span; false; Span; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 28 | Summary: System; Span; false; Span; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 29 | Summary: System; Span; false; ToArray; (); ; Argument[this].Element; ReturnValue.Element; value; manual | +| 30 | Summary: System; Span; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +edges +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:16:56:16:61 | access to array element | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List | CollectionFlow.cs:18:63:18:66 | access to parameter list : List | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:22:73:22:89 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:55 | access to parameter list : List | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | provenance | MaD:12 | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | provenance | MaD:12 | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | provenance | | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | provenance | MaD:7 | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | provenance | | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | provenance | MaD:21 | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | provenance | MaD:21 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | CollectionFlow.cs:32:68:32:85 | access to property Value : T | provenance | MaD:16 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | provenance | | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:2 | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:9 | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | provenance | MaD:21 | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | provenance | MaD:21 | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | provenance | | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | provenance | MaD:21 | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | provenance | MaD:21 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | CollectionFlow.cs:38:66:38:81 | access to property Key : T | provenance | MaD:15 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:95 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | CollectionFlow.cs:47:27:47:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:13:46:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:19 | access to array element | provenance | | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:50:14:50:23 | call to method First | provenance | | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | CollectionFlow.cs:65:53:65:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:13:64:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | CollectionFlow.cs:66:14:66:20 | access to array element | provenance | | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:68:14:68:24 | call to method First | provenance | | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | CollectionFlow.cs:83:54:83:54 | access to local variable a : A | provenance | | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:13:82:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | CollectionFlow.cs:84:14:84:21 | access to array element | provenance | | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:86:14:86:23 | call to method Last | provenance | | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | CollectionFlow.cs:93:18:93:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:13:91:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:19 | access to array element | provenance | | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:96:14:96:23 | call to method First | provenance | | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | CollectionFlow.cs:113:19:113:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:13:111:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:20 | access to array element | provenance | | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:116:14:116:22 | call to method Last | provenance | | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | CollectionFlow.cs:123:19:123:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:13:121:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:124:14:124:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:125:22:125:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:126:24:126:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:13:122:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | provenance | MaD:13 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:133:14:133:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:133:14:133:20 | access to indexer | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:134:22:134:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:135:24:135:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:13:131:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:133:14:133:17 | access to local variable list : List | CollectionFlow.cs:133:14:133:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:134:22:134:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | CollectionFlow.cs:141:36:141:36 | access to local variable a : A | provenance | | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:13:140:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:142:14:142:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:143:22:143:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:144:24:144:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:13:141:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:150:14:150:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:150:14:150:20 | access to indexer | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:151:22:151:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:152:24:152:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:13:149:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:150:14:150:17 | access to local variable list : List | CollectionFlow.cs:150:14:150:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:151:22:151:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | CollectionFlow.cs:159:18:159:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:13:157:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:160:14:160:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:161:22:161:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:162:24:162:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:13:158:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:169:14:169:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:169:14:169:20 | access to indexer | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:170:22:170:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:171:24:171:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:13:167:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:169:14:169:17 | access to local variable list : List | CollectionFlow.cs:169:14:169:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:170:22:170:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | CollectionFlow.cs:178:19:178:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:13:176:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | provenance | MaD:11 | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:190:14:190:20 | access to indexer | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | CollectionFlow.cs:200:52:200:52 | access to local variable a : A | provenance | | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:13:199:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:6 | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:211:14:211:20 | access to indexer | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | CollectionFlow.cs:221:53:221:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:13:220:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:11 | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:233:14:233:20 | access to indexer | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | CollectionFlow.cs:243:49:243:49 | access to local variable a : A | provenance | | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:13:242:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:5 | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:244:14:244:30 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:8 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | CollectionFlow.cs:262:48:262:48 | access to local variable a : A | provenance | | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:13:261:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:10 | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:263:14:263:30 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:8 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | CollectionFlow.cs:281:27:281:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:13:280:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | provenance | | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | CollectionFlow.cs:296:27:296:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:13:295:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | provenance | MaD:19 | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:35 | access to property Current | provenance | | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | CollectionFlow.cs:314:18:314:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:13:312:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:313:13:313:16 | access to local variable list : List | CollectionFlow.cs:315:26:315:29 | access to local variable list : List | provenance | | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:313:13:313:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:322:13:322:16 | access to local variable list : List | CollectionFlow.cs:324:26:324:29 | access to local variable list : List | provenance | | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:322:13:322:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | CollectionFlow.cs:333:43:333:43 | access to local variable a : A | provenance | | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:13:331:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | provenance | | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | provenance | MaD:3 | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | provenance | MaD:3 | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | provenance | MaD:14 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | provenance | MaD:22 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | provenance | | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | MaD:15 | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | | +| CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | provenance | | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | provenance | MaD:3 | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | provenance | | +| CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | CollectionFlow.cs:348:18:348:26 | access to property Value | provenance | MaD:16 | +| CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:55:353:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | provenance | | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | provenance | | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | CollectionFlow.cs:359:23:359:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:13:357:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:19 | access to array element | provenance | | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:362:14:362:23 | call to method First | provenance | | +| CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:55:375:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | provenance | | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | CollectionFlow.cs:381:23:381:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:13:379:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:382:14:382:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:383:22:383:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:384:24:384:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:13:380:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:391:14:391:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:391:14:391:20 | access to indexer | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:392:22:392:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:393:24:393:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:13:389:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:391:14:391:17 | access to local variable list : List | CollectionFlow.cs:391:14:391:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:392:22:392:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:40:49:40:52 | args : null [element] : A | provenance | | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:423:13:423:16 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | access to local variable list : List | provenance | | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:13:423:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:426:14:426:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:426:14:426:20 | access to indexer | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:427:22:427:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:428:24:428:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | provenance | MaD:4 | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | provenance | MaD:20 | +| CollectionFlow.cs:426:14:426:17 | access to local variable list : List | CollectionFlow.cs:426:14:426:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:427:22:427:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | CollectionFlow.cs:441:20:441:20 | access to local variable a : A | provenance | | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:13:439:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | provenance | | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | CollectionFlow.cs:449:14:449:21 | access to array element | provenance | | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | provenance | | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | CollectionFlow.cs:461:22:461:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:13:460:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:21 | access to array element | provenance | | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | CollectionFlow.cs:468:22:468:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:13:467:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | provenance | | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:17 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | CollectionFlow.cs:481:21:481:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:13:480:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:21 | access to array element | provenance | | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | CollectionFlow.cs:521:40:521:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:13:520:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | provenance | MaD:27 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | CollectionFlow.cs:528:40:528:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:13:527:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | provenance | MaD:27 | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | provenance | | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | provenance | MaD:29 | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | provenance | MaD:29 | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | CollectionFlow.cs:536:21:536:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:13:535:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | provenance | MaD:26 | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | provenance | | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | provenance | MaD:28 | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | provenance | MaD:25 | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | provenance | MaD:25 | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | provenance | | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | CollectionFlow.cs:550:60:550:60 | access to local variable a : A | provenance | | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:13:549:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | +nodes +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:14:52:14:56 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:61 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:18:49:18:52 | list : List | semmle.label | list : List | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List | semmle.label | access to parameter list : List | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:18:63:18:69 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:81 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:22:73:22:89 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:28:43:28:46 | list : List | semmle.label | list : List | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List | semmle.label | access to parameter list : List | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : Object | semmle.label | access to indexer : Object | +| CollectionFlow.cs:28:52:28:58 | access to indexer : T | semmle.label | access to indexer : T | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : T | semmle.label | access to indexer : T | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | semmle.label | access to parameter dict : Dictionary | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | semmle.label | call to method First> : KeyValuePair | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | semmle.label | call to method First> : KeyValuePair [property Value] : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : A | semmle.label | access to property Value : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : T | semmle.label | access to property Value : T | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | semmle.label | access to property Values : ICollection [element] : A | +| CollectionFlow.cs:34:69:34:87 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:36:67:36:83 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | semmle.label | access to parameter dict : Dictionary | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | semmle.label | call to method First> : KeyValuePair | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | semmle.label | call to method First> : KeyValuePair [property Key] : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : A | semmle.label | access to property Key : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : T | semmle.label | access to property Key : T | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | semmle.label | args : A[] [element] : A | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | semmle.label | args : null [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | semmle.label | access to parameter args : A[] [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | semmle.label | access to parameter args : null [element] : A | +| CollectionFlow.cs:40:63:40:69 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | semmle.label | args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | semmle.label | access to parameter args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:95 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:48:14:48:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:50:14:50:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:66:14:66:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:68:14:68:24 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:84:14:84:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:86:14:86:23 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:94:14:94:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:96:14:96:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:114:14:114:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:116:14:116:22 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:124:14:124:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:126:14:126:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:133:14:133:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:133:14:133:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:134:22:134:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:135:14:135:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | semmle.label | object creation of type List : List [element] : A | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:142:14:142:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:144:14:144:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:150:14:150:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:150:14:150:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:151:22:151:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:152:14:152:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:160:14:160:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:162:14:162:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:169:14:169:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:169:14:169:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:170:22:170:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:171:14:171:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | semmle.label | [post] access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:179:14:179:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:190:14:190:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:201:14:201:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:211:14:211:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:222:14:222:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:233:14:233:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:244:14:244:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:263:14:263:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:283:18:283:18 | access to local variable x | semmle.label | access to local variable x | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | semmle.label | call to method GetEnumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:313:13:313:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:322:13:322:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | semmle.label | object creation of type List> : List> | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | semmle.label | [post] access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | semmle.label | [post] access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | semmle.label | object creation of type KeyValuePair : KeyValuePair | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | semmle.label | object creation of type KeyValuePair : KeyValuePair [property Key] : A | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | semmle.label | access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | semmle.label | access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | semmle.label | kvp : KeyValuePair | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | semmle.label | kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | semmle.label | access to parameter kvp : KeyValuePair | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | semmle.label | access to parameter kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:24 | access to property Key | semmle.label | access to property Key | +| CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | semmle.label | object creation of type List> : List> | +| CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | semmle.label | [post] access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | semmle.label | object creation of type KeyValuePair : KeyValuePair | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | semmle.label | access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | semmle.label | kvp : KeyValuePair | +| CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | semmle.label | access to parameter kvp : KeyValuePair | +| CollectionFlow.cs:348:18:348:26 | access to property Value | semmle.label | access to property Value | +| CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | semmle.label | array [Return] : A[] [element] : A | +| CollectionFlow.cs:353:32:353:38 | element : A | semmle.label | element : A | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | semmle.label | [post] access to parameter array : A[] [element] : A | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:360:14:360:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:14:362:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | semmle.label | list [Return] : List [element] : A | +| CollectionFlow.cs:375:34:375:40 | element : A | semmle.label | element : A | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | semmle.label | [post] access to parameter list : List [element] : A | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:382:14:382:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:384:14:384:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:391:14:391:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:391:14:391:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:392:22:392:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:393:14:393:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | semmle.label | [...] : IEnumerable [element] : A | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:423:13:423:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | semmle.label | [post] access to local variable list : List | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:426:14:426:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:426:14:426:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:427:22:427:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:428:14:428:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | semmle.label | access to local variable array : MyInlineArray | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | semmle.label | object creation of type MyInlineArray : MyInlineArray | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | semmle.label | [post] access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | semmle.label | access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:442:14:442:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | semmle.label | access to local variable array : MyInlineArray | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | semmle.label | object creation of type MyInlineArray : MyInlineArray | +| CollectionFlow.cs:449:14:449:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:462:14:462:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | semmle.label | [...] : List [element] : A | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:469:14:469:17 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | semmle.label | access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | semmle.label | .. access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:483:14:483:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:522:14:522:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | semmle.label | access to local variable arr : T[] [element] : Object | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | semmle.label | call to method ToArray : T[] [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | semmle.label | call to method ToArray : T[] [element] : Object | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | semmle.label | access to local variable arr : T[] [element] : Object | +| CollectionFlow.cs:530:14:530:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:537:14:537:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | semmle.label | access to local variable source : Span | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | semmle.label | access to local variable source : Span | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | semmle.label | [post] access to parameter target : Span [element] : Object | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | semmle.label | access to parameter target : Span [element] : Object | +| CollectionFlow.cs:544:14:544:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | semmle.label | access to local variable span : ReadOnlySpan | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | semmle.label | access to local variable span : ReadOnlySpan | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:551:14:551:20 | access to indexer | semmle.label | access to indexer | +subpaths +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:50:14:50:23 | call to method First | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:68:14:68:24 | call to method First | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:86:14:86:23 | call to method Last | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:96:14:96:23 | call to method First | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:116:14:116:22 | call to method Last | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:362:14:362:23 | call to method First | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | +#select +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46: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 | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:48:14:48:19 | access to array element | $@ | CollectionFlow.cs:48:14:48:19 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:50:14:50:23 | call to method First | $@ | CollectionFlow.cs:50:14:50:23 | call to method First | call to method First | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64: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 | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:66:14:66:20 | access to array element | $@ | CollectionFlow.cs:66:14:66:20 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:68:14:68:24 | call to method First | $@ | CollectionFlow.cs:68:14:68:24 | call to method First | call to method First | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:84:14:84:21 | access to array element | $@ | CollectionFlow.cs:84:14:84:21 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:86:14:86:23 | call to method Last | $@ | CollectionFlow.cs:86:14:86:23 | call to method Last | call to method Last | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91: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 | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:94:14:94:19 | access to array element | $@ | CollectionFlow.cs:94:14:94:19 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:96:14:96:23 | call to method First | $@ | CollectionFlow.cs:96:14:96:23 | call to method First | call to method First | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:114:14:114:20 | access to array element | $@ | CollectionFlow.cs:114:14:114:20 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:116:14:116:22 | call to method Last | $@ | CollectionFlow.cs:116:14:116:22 | call to method Last | call to method Last | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:133:14:133:20 | access to indexer | $@ | CollectionFlow.cs:133:14:133:20 | access to indexer | access to indexer | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | $@ | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:150:14:150:20 | access to indexer | $@ | CollectionFlow.cs:150:14:150:20 | access to indexer | access to indexer | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | $@ | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:169:14:169:20 | access to indexer | $@ | CollectionFlow.cs:169:14:169:20 | access to indexer | access to indexer | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | $@ | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:190:14:190:20 | access to indexer | $@ | CollectionFlow.cs:190:14:190:20 | access to indexer | access to indexer | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:211:14:211:20 | access to indexer | $@ | CollectionFlow.cs:211:14:211:20 | access to indexer | access to indexer | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:233:14:233:20 | access to indexer | $@ | CollectionFlow.cs:233:14:233:20 | access to indexer | access to indexer | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:244:14:244:30 | call to method First | $@ | CollectionFlow.cs:244:14:244:30 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:263:14:263:30 | call to method First | $@ | CollectionFlow.cs:263:14:263:30 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | $@ | CollectionFlow.cs:283:18:283:18 | access to local variable x | access to local variable x | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:299:18:299:35 | access to property Current | $@ | CollectionFlow.cs:299:18:299:35 | access to property Current | access to property Current | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:326:18:326:35 | access to property Current | $@ | CollectionFlow.cs:326:18:326:35 | access to property Current | access to property Current | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:348:18:348:26 | access to property Value | $@ | CollectionFlow.cs:348:18:348:26 | access to property Value | access to property Value | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:348:18:348:26 | access to property Value | $@ | CollectionFlow.cs:348:18:348:26 | access to property Value | access to property Value | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357: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 | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:360:14:360:19 | access to array element | $@ | CollectionFlow.cs:360:14:360:19 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:362:14:362:23 | call to method First | $@ | CollectionFlow.cs:362:14:362:23 | call to method First | call to method First | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:391:14:391:20 | access to indexer | $@ | CollectionFlow.cs:391:14:391:20 | access to indexer | access to indexer | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | $@ | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:426:14:426:20 | access to indexer | $@ | CollectionFlow.cs:426:14:426:20 | access to indexer | access to indexer | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | $@ | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:449:14:449:21 | access to array element | $@ | CollectionFlow.cs:449:14:449:21 | access to array element | access to array element | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:462:14:462:21 | access to array element | $@ | CollectionFlow.cs:462:14:462:21 | access to array element | access to array element | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:469:14:469:17 | access to indexer | $@ | CollectionFlow.cs:469:14:469:17 | access to indexer | access to indexer | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:483:14:483:21 | access to array element | $@ | CollectionFlow.cs:483:14:483:21 | access to array element | access to array element | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:537:14:537:22 | access to indexer | $@ | CollectionFlow.cs:537:14:537:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql new file mode 100644 index 00000000000..7292e0dd0d6 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql @@ -0,0 +1,12 @@ +/** + * @kind path-problem + */ + +import CollectionFlowCommon +import utils.test.ProvenancePathGraph::ShowProvenance + +module ArrayFlow = TaintTracking::Global; + +from ArrayFlow::PathNode source, ArrayFlow::PathNode sink +where ArrayFlow::flowPath(source, sink) +select source, source, sink, "$@", sink, sink.toString() From f30ebab52850c2984e7cd281ec475beb7c453eaa Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 12 Dec 2025 11:08:15 +0000 Subject: [PATCH 142/194] C#: Add implicit reads of System.Collections.Generic.KeyValuePair`2.Value at taint sinks. --- .../dataflow/collections/CollectionFlow.cs | 2 +- .../dataflow/collections/CollectionTaintFlow.expected | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs index e5d03c7deea..c95ab58bdb8 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs @@ -554,6 +554,6 @@ public class CollectionFlow public void ImplicitMapValueRead(Dictionary dict) { var a = new A(); dict[0] = a; - Sink(dict); // no taint flow + Sink(dict); // taint flow } } diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected index 2d4bbfe607c..c54b7f84e6a 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected @@ -631,6 +631,10 @@ edges | CollectionFlow.cs:550:60:550:60 | access to local variable a : A | CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | provenance | | | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | +| CollectionFlow.cs:555:13:555:13 | access to local variable a : A | CollectionFlow.cs:556:19:556:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:555:13:555:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:557:14:557:17 | access to parameter dict | provenance | | +| CollectionFlow.cs:556:19:556:19 | access to local variable a : A | CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | provenance | MaD:11 | nodes | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | @@ -1170,6 +1174,11 @@ nodes | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | semmle.label | access to local variable span : ReadOnlySpan | | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | | CollectionFlow.cs:551:14:551:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:555:13:555:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | semmle.label | [post] access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:556:19:556:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:557:14:557:17 | access to parameter dict | semmle.label | access to parameter dict | subpaths | CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:50:14:50:23 | call to method First | | CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:68:14:68:24 | call to method First | @@ -1372,3 +1381,4 @@ subpaths | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:557:14:557:17 | access to parameter dict | $@ | CollectionFlow.cs:557:14:557:17 | access to parameter dict | access to parameter dict | From 2720f5796590f4eaf8c855ea1fef542e7eb6077c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 12 Dec 2025 11:20:02 +0000 Subject: [PATCH 143/194] C#: Add change note. --- .../lib/change-notes/2025-12-03-implicit-map-value-reads.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md diff --git a/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md b/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md new file mode 100644 index 00000000000..2b7f47fe98d --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added implicit reads of `System.Collections.Generic.KeyValuePair.Value` at taint-tracking sinks and at inputs to additional taint steps. As a result, taint-tracking queries will now produce more results when a container is tainted. \ No newline at end of file From 7f8d0771df5fc116a9d65de9dd6824c91f9f2760 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 12 Dec 2025 13:50:58 +0100 Subject: [PATCH 144/194] MaD: Rename file. --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 2 +- .../code/cpp/dataflow/internal/ExternalFlowExtensions.qll | 2 +- .../lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll | 2 +- .../code/csharp/dataflow/internal/ExternalFlowExtensions.qll | 2 +- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 2 +- .../lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll | 2 +- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 2 +- .../code/java/dataflow/internal/ExternalFlowExtensions.qll | 2 +- shared/mad/codeql/mad/static/{MaD.qll => ModelsAsData.qll} | 0 9 files changed, 8 insertions(+), 8 deletions(-) rename shared/mad/codeql/mad/static/{MaD.qll => ModelsAsData.qll} (100%) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 08e4a073ddb..7232326f1b3 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -104,7 +104,7 @@ private import internal.FlowSummaryImpl::Private::External private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.util.Unit -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD /** * A unit class for adding additional source model rows. diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index d128feffc20..67c594e3b67 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,7 +2,7 @@ * This module provides extensible predicates for defining MaD models. */ -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD /** * Holds if an external source model exists for the given parameters. diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index a36bfc06297..75d14034e00 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -101,7 +101,7 @@ private import semmle.code.csharp.dispatch.OverridableCallable private import semmle.code.csharp.frameworks.System private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax private import codeql.mad.ModelValidation as SharedModelVal -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD private module MadInput implements SharedMaD::InputSig { } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index acbb651bcc4..af0fdadd67f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,7 +2,7 @@ * This module provides extensible predicates for defining MaD models. */ -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD /** * Holds if a source model exists for the given parameters. diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 5d63fb1a14e..de1e3da6281 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -94,7 +94,7 @@ private import internal.FlowSummaryImpl::Public as Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External private import codeql.mad.ModelValidation as SharedModelVal -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD private module MadInput implements SharedMaD::InputSig { string namespaceSegmentSeparator() { result = "/" } diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index 588951944e1..c0ef008e33d 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -2,7 +2,7 @@ * This module provides extensible predicates for defining MaD models. */ -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD /** * Holds if a source model exists for the given parameters. diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 1f8ae76ed63..4a0fc3f8546 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -100,7 +100,7 @@ private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD private module MadInput implements SharedMaD::InputSig { /** Holds if a source model exists for the given parameters. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 946872ab384..6d6bf236e53 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -4,7 +4,7 @@ overlay[local?] module; -private import codeql.mad.static.MaD as SharedMaD +private import codeql.mad.static.ModelsAsData as SharedMaD /** * Holds if a source model exists for the given parameters. diff --git a/shared/mad/codeql/mad/static/MaD.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll similarity index 100% rename from shared/mad/codeql/mad/static/MaD.qll rename to shared/mad/codeql/mad/static/ModelsAsData.qll From 64a48e4e7b7564d04e3a42795961b8fc802e48aa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 12 Dec 2025 13:57:02 +0100 Subject: [PATCH 145/194] MaD: Use "namespace" instead "package" in shared code. --- .../cpp/dataflow/internal/ExternalFlowExtensions.qll | 2 +- .../dataflow/internal/ExternalFlowExtensions.qll | 2 +- .../go/dataflow/internal/ExternalFlowExtensions.qll | 2 ++ .../dataflow/internal/ExternalFlowExtensions.qll | 2 +- shared/mad/codeql/mad/static/ModelsAsData.qll | 12 ++++++------ 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index 67c594e3b67..1a572c221d9 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -54,5 +54,5 @@ extensible predicate neutralModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions - predicate packageGrouping(string group, string package) { none() } + predicate namespaceGrouping(string group, string namespace) { none() } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index af0fdadd67f..3461f0a5186 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -54,5 +54,5 @@ extensible predicate neutralModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions - predicate packageGrouping(string group, string package) { none() } + predicate namespaceGrouping(string group, string namespace) { none() } } diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index c0ef008e33d..2e962299f3e 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -58,4 +58,6 @@ extensible predicate packageGrouping(string group, string package); module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions + + predicate namespaceGrouping = packageGrouping/2; } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 6d6bf236e53..be474ad4535 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -99,5 +99,5 @@ extensible predicate experimentalSummaryModel( module Extensions implements SharedMaD::ExtensionsSig { import ExternalFlowExtensions - predicate packageGrouping(string group, string package) { none() } + predicate namespaceGrouping(string group, string namespace) { none() } } diff --git a/shared/mad/codeql/mad/static/ModelsAsData.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll index dc1b9b77130..84daaa9b6c8 100644 --- a/shared/mad/codeql/mad/static/ModelsAsData.qll +++ b/shared/mad/codeql/mad/static/ModelsAsData.qll @@ -51,9 +51,9 @@ signature module ExtensionsSig { ); /** - * Holds if the package `package` is part of the group `group`. + * Holds if the namespace `namespace` is part of the group `group`. */ - predicate packageGrouping(string group, string package); + predicate namespaceGrouping(string group, string namespace); } signature module InputSig { @@ -166,14 +166,14 @@ module ModelsAsData { ) } - /** Gets the prefix for a group of packages/namespaces. */ + /** Gets the prefix for a group of namespaces. */ private string groupPrefix() { result = "group:" } /** - * Gets a package/namespace represented by `namespaceOrGroup`. + * Gets a namespace represented by `namespaceOrGroup`. * * If `namespaceOrGroup` is of the form `group:` then `result` is a - * package/namespace in the group ``, as determined by `packageGrouping`. + * namespace in the group ``, as determined by `namespaceGrouping`. * Otherwise, `result` is `namespaceOrGroup`. */ bindingset[namespaceOrGroup] @@ -182,7 +182,7 @@ module ModelsAsData { result = namespaceOrGroup or exists(string group | - Extensions::packageGrouping(group, result) and + Extensions::namespaceGrouping(group, result) and namespaceOrGroup = groupPrefix() + group ) } From 1e43d06c6d2887d775e196178487dcdd06cc2d8f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 12 Dec 2025 14:22:51 +0100 Subject: [PATCH 146/194] C#: Migrate CSharp.sln to CSharp.slnx (as is). --- csharp/CSharp.sln | 118 --------------------------------------------- csharp/CSharp.slnx | 21 ++++++++ 2 files changed, 21 insertions(+), 118 deletions(-) delete mode 100644 csharp/CSharp.sln create mode 100644 csharp/CSharp.slnx diff --git a/csharp/CSharp.sln b/csharp/CSharp.sln deleted file mode 100644 index f4cde4624d4..00000000000 --- a/csharp/CSharp.sln +++ /dev/null @@ -1,118 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2036 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Util", "extractor\Semmle.Util\Semmle.Util.csproj", "{CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp", "extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj", "{C4D62DA0-B64B-440B-86DC-AB52318CB8BF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.DependencyFetching", "extractor\Semmle.Extraction.CSharp.DependencyFetching\Semmle.Extraction.CSharp.DependencyFetching.csproj", "{541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Standalone", "extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj", "{D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.StubGenerator", "extractor\Semmle.Extraction.CSharp.StubGenerator\Semmle.Extraction.CSharp.StubGenerator.csproj", "{B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Util", "extractor\Semmle.Extraction.CSharp.Util\Semmle.Extraction.CSharp.Util.csproj", "{998A0D4C-8BFC-4513-A28D-4816AFB89882}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Driver", "extractor\Semmle.Extraction.CSharp.Driver\Semmle.Extraction.CSharp.Driver.csproj", "{C36453BF-0C82-448A-B15D-26947503A2D3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.Tests", "extractor\Semmle.Extraction.Tests\Semmle.Extraction.Tests.csproj", "{CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Util.Tests", "extractor\Semmle.Util.Tests\Semmle.Util.Tests.csproj", "{55A620F0-23F6-440D-A5BA-0567613B3C0F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Shared", "autobuilder\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj", "{133F2B5B-FD25-4BD9-B34C-062CC6BB4178}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp", "autobuilder\Semmle.Autobuild.CSharp\Semmle.Autobuild.CSharp.csproj", "{F3C07863-3759-4A0B-B777-8A0E0FDB1A41}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp.Tests", "autobuilder\Semmle.Autobuild.CSharp.Tests\Semmle.Autobuild.CSharp.Tests.csproj", "{34256E8F-866A-46C1-800E-3DF69FD1DCB7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Extraction.CSharp.DependencyStubGenerator", "extractor\Semmle.Extraction.CSharp.DependencyStubGenerator\Semmle.Extraction.CSharp.DependencyStubGenerator.csproj", "{0EDA21A3-ADD8-4C10-B494-58B12B526B76}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp", "autobuilder\Semmle.Autobuild.Cpp\Semmle.Autobuild.Cpp.csproj", "{125C4FB7-34DA-442A-9095-3EA1514270CD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp.Tests", "autobuilder\Semmle.Autobuild.Cpp.Tests\Semmle.Autobuild.Cpp.Tests.csproj", "{72F369B7-0707-401A-802F-D526F272F9EE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Release|Any CPU.Build.0 = Release|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Release|Any CPU.Build.0 = Release|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Release|Any CPU.Build.0 = Release|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Release|Any CPU.Build.0 = Release|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Release|Any CPU.Build.0 = Release|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Release|Any CPU.Build.0 = Release|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Release|Any CPU.Build.0 = Release|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Release|Any CPU.Build.0 = Release|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Debug|Any CPU.Build.0 = Debug|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Release|Any CPU.ActiveCfg = Release|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Release|Any CPU.Build.0 = Release|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Release|Any CPU.Build.0 = Release|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.Build.0 = Release|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.Build.0 = Release|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.Build.0 = Debug|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.ActiveCfg = Release|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.Build.0 = Release|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.Build.0 = Release|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.Build.0 = Release|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E2B2BAC0-D55C-45DB-8CB3-8CEBA86FB547} - EndGlobalSection -EndGlobal diff --git a/csharp/CSharp.slnx b/csharp/CSharp.slnx new file mode 100644 index 00000000000..cc856c4acab --- /dev/null +++ b/csharp/CSharp.slnx @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + From 7f1a9b57f14b88a3cc129542ee0078a05f1a3144 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 12 Dec 2025 14:23:23 +0100 Subject: [PATCH 147/194] C#: Update the default solution to point to the .slnx file instead. --- csharp/.vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/.vscode/settings.json b/csharp/.vscode/settings.json index f41ad2872ff..559f9b16b98 100644 --- a/csharp/.vscode/settings.json +++ b/csharp/.vscode/settings.json @@ -10,5 +10,5 @@ "omnisharp.enableRoslynAnalyzers": true, "csharpFormatUsings.splitGroups": false, "csharpFormatUsings.sortOrder": "Xunit System Microsoft Semmle.Util Semmle", - "dotnet.defaultSolution": "CSharp.sln" -} \ No newline at end of file + "dotnet.defaultSolution": "CSharp.slnx" +} From e417938860b47a10ceff8f909a3fbfdc8d3ffe94 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 12 Dec 2025 14:25:15 +0100 Subject: [PATCH 148/194] C#: Exclude all test projects from the Release build configuration. --- csharp/CSharp.slnx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/csharp/CSharp.slnx b/csharp/CSharp.slnx index cc856c4acab..0291d720489 100644 --- a/csharp/CSharp.slnx +++ b/csharp/CSharp.slnx @@ -1,7 +1,11 @@ - + + + - + + + From f7bbddec24117ced6f4c69f2051a9a0e0683cff6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 00:27:40 +0000 Subject: [PATCH 149/194] Add changed framework coverage reports --- csharp/documentation/library-coverage/coverage.csv | 1 + csharp/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 4713679cd23..d71bc79b3c0 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -40,6 +40,7 @@ Microsoft.VisualBasic,,,6,,,,,,,,,,,,,,,,,,,1,5 Microsoft.Win32,,4,2,,,,,,,,,,,,,,,,,,4,,2 Mono.Linker,,,278,,,,,,,,,,,,,,,,,,,127,151 MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,,, +NHibernate,3,,,,,,,,,,,,3,,,,,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7, SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5 diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 061662f9714..8128c27dccd 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -9,6 +9,6 @@ C# framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting` `ServiceStack `_,"``ServiceStack.*``, ``ServiceStack``",,7,194, System,"``System.*``, ``System``",47,12241,54,5 - Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Data.SqlClient``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2257,159,4 - Totals,,107,14505,407,9 + Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Data.SqlClient``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``NHibernate``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2257,162,4 + Totals,,107,14505,410,9 From fc49360e812558a6f5a8a674bbf135caddb4b8e4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 15 Dec 2025 11:18:54 +0100 Subject: [PATCH 150/194] Rust: Add models for `core::cmp::Ord::{min,max,clamp}` --- .../rust/frameworks/stdlib/core.model.yml | 4 + .../PathResolutionConsistency.expected | 4 +- .../dataflow/global/inline-flow.expected | 792 +++++++++--------- .../library-tests/dataflow/global/main.rs | 28 +- .../dataflow/global/viableCallable.expected | 218 ++--- .../dataflow/modeled/inline-flow.expected | 153 +++- .../library-tests/dataflow/modeled/main.rs | 19 + .../dataflow/models/models.expected | 2 +- .../dataflow/models/models.ext.yml | 1 - 9 files changed, 666 insertions(+), 555 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 0cdc4cc0af2..6e5303467bb 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -116,6 +116,10 @@ extensions: - ["::parse", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::trim", "Argument[self]", "ReturnValue.Reference", "taint", "manual"] - ["::to_string", "Argument[self]", "ReturnValue", "taint", "manual"] + # Ord + - ["<_ as core::cmp::Ord>::min", "Argument[self,0]", "ReturnValue", "value", "manual"] + - ["<_ as core::cmp::Ord>::max", "Argument[self,0]", "ReturnValue", "value", "manual"] + - ["<_ as core::cmp::Ord>::clamp", "Argument[self,0,1]", "ReturnValue", "value", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel diff --git a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected index 10c2285e621..603574572d8 100644 --- a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,3 @@ multipleResolvedTargets -| main.rs:236:11:236:15 | * ... | -| main.rs:272:13:272:29 | * ... | +| main.rs:252:11:252:15 | * ... | +| main.rs:288:13:288:29 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected index 608188c4dbb..343a33146d2 100644 --- a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected @@ -49,176 +49,176 @@ edges | main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | provenance | | | main.rs:86:26:86:26 | a | main.rs:86:13:86:27 | pass_through(...) | provenance | | | main.rs:104:22:104:27 | ...: i64 | main.rs:105:14:105:14 | n | provenance | | -| main.rs:108:30:110:5 | { ... } | main.rs:138:13:138:25 | mn.get_data() | provenance | | -| main.rs:109:35:109:43 | source(...) | main.rs:108:30:110:5 | { ... } | provenance | | -| main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | provenance | | -| main.rs:118:28:118:33 | ...: i64 | main.rs:119:14:119:14 | n | provenance | | -| main.rs:122:36:124:5 | { ... } | main.rs:132:13:132:30 | x.get_data_trait() | provenance | | -| main.rs:122:36:124:5 | { ... } | main.rs:142:13:142:31 | mn.get_data_trait() | provenance | | -| main.rs:123:35:123:44 | source(...) | main.rs:122:36:124:5 | { ... } | provenance | | -| main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | provenance | | -| main.rs:132:9:132:9 | a | main.rs:133:10:133:10 | a | provenance | | -| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:132:9:132:9 | a | provenance | | -| main.rs:138:9:138:9 | a | main.rs:139:10:139:10 | a | provenance | | -| main.rs:138:13:138:25 | mn.get_data() | main.rs:138:9:138:9 | a | provenance | | -| main.rs:142:9:142:9 | a | main.rs:143:10:143:10 | a | provenance | | -| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:142:9:142:9 | a | provenance | | -| main.rs:149:9:149:9 | a | main.rs:150:21:150:21 | a | provenance | | -| main.rs:149:13:149:22 | source(...) | main.rs:149:9:149:9 | a | provenance | | -| main.rs:150:21:150:21 | a | main.rs:118:28:118:33 | ...: i64 | provenance | | -| main.rs:155:9:155:9 | a | main.rs:156:16:156:16 | a | provenance | | -| main.rs:155:13:155:21 | source(...) | main.rs:155:9:155:9 | a | provenance | | -| main.rs:156:16:156:16 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | -| main.rs:159:9:159:9 | a | main.rs:160:22:160:22 | a | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | a | provenance | | -| main.rs:160:22:160:22 | a | main.rs:118:28:118:33 | ...: i64 | provenance | | -| main.rs:166:9:166:9 | a | main.rs:167:34:167:34 | a | provenance | | -| main.rs:166:13:166:22 | source(...) | main.rs:166:9:166:9 | a | provenance | | -| main.rs:167:9:167:9 | b | main.rs:168:10:168:10 | b | provenance | | -| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:167:9:167:9 | b | provenance | | -| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | provenance | | -| main.rs:167:34:167:34 | a | main.rs:167:13:167:35 | x.data_through_trait(...) | provenance | | -| main.rs:173:9:173:9 | a | main.rs:174:29:174:29 | a | provenance | | -| main.rs:173:13:173:21 | source(...) | main.rs:173:9:173:9 | a | provenance | | -| main.rs:174:9:174:9 | b | main.rs:175:10:175:10 | b | provenance | | -| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:174:9:174:9 | b | provenance | | -| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | provenance | | -| main.rs:174:29:174:29 | a | main.rs:174:13:174:30 | mn.data_through(...) | provenance | | -| main.rs:178:9:178:9 | a | main.rs:179:35:179:35 | a | provenance | | -| main.rs:178:13:178:22 | source(...) | main.rs:178:9:178:9 | a | provenance | | -| main.rs:179:9:179:9 | b | main.rs:180:10:180:10 | b | provenance | | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:179:9:179:9 | b | provenance | | -| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | provenance | | -| main.rs:179:35:179:35 | a | main.rs:179:13:179:36 | mn.data_through_trait(...) | provenance | | -| main.rs:187:9:187:9 | a | main.rs:188:25:188:25 | a | provenance | | -| main.rs:187:13:187:21 | source(...) | main.rs:187:9:187:9 | a | provenance | | -| main.rs:188:25:188:25 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | -| main.rs:193:9:193:9 | a | main.rs:194:38:194:38 | a | provenance | | -| main.rs:193:13:193:22 | source(...) | main.rs:193:9:193:9 | a | provenance | | -| main.rs:194:9:194:9 | b | main.rs:195:10:195:10 | b | provenance | | -| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:194:9:194:9 | b | provenance | | -| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | provenance | | -| main.rs:194:38:194:38 | a | main.rs:194:13:194:39 | ...::data_through(...) | provenance | | -| main.rs:206:12:206:17 | ...: i64 | main.rs:207:24:207:24 | n | provenance | | -| main.rs:207:9:207:26 | MyInt {...} [MyInt] | main.rs:206:28:208:5 | { ... } [MyInt] | provenance | | -| main.rs:207:24:207:24 | n | main.rs:207:9:207:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:212:9:212:9 | n [MyInt] | main.rs:213:9:213:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:212:13:212:34 | ...::new(...) [MyInt] | main.rs:212:9:212:9 | n [MyInt] | provenance | | -| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | provenance | | -| main.rs:212:24:212:33 | source(...) | main.rs:212:13:212:34 | ...::new(...) [MyInt] | provenance | | -| main.rs:213:9:213:26 | MyInt {...} [MyInt] | main.rs:213:24:213:24 | m | provenance | | -| main.rs:213:24:213:24 | m | main.rs:214:10:214:10 | m | provenance | | -| main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:222:24:222:27 | self [MyInt] | provenance | | -| main.rs:222:9:222:35 | MyInt {...} [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | provenance | | -| main.rs:222:24:222:27 | self [MyInt] | main.rs:222:24:222:33 | self.value | provenance | | -| main.rs:222:24:222:33 | self.value | main.rs:222:9:222:35 | MyInt {...} [MyInt] | provenance | | -| main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:228:22:228:24 | rhs [MyInt] | provenance | | -| main.rs:228:9:228:12 | [post] self [&ref, MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | provenance | | -| main.rs:228:22:228:24 | rhs [MyInt] | main.rs:228:22:228:30 | rhs.value | provenance | | -| main.rs:228:22:228:30 | rhs.value | main.rs:228:9:228:12 | [post] self [&ref, MyInt] | provenance | | -| main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:236:12:236:15 | self [&ref, MyInt] | provenance | | -| main.rs:236:9:236:22 | &... [&ref] | main.rs:235:38:237:5 | { ... } [&ref] | provenance | | -| main.rs:236:10:236:22 | ... .value | main.rs:236:9:236:22 | &... [&ref] | provenance | | -| main.rs:236:11:236:15 | * ... [MyInt] | main.rs:236:10:236:22 | ... .value | provenance | | -| main.rs:236:12:236:15 | self [&ref, MyInt] | main.rs:236:11:236:15 | * ... [MyInt] | provenance | MaD:1 | -| main.rs:242:9:242:9 | a [MyInt] | main.rs:244:13:244:13 | a [MyInt] | provenance | | -| main.rs:242:13:242:38 | MyInt {...} [MyInt] | main.rs:242:9:242:9 | a [MyInt] | provenance | | -| main.rs:242:28:242:36 | source(...) | main.rs:242:13:242:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:244:9:244:9 | c [MyInt] | main.rs:245:10:245:10 | c [MyInt] | provenance | | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] | provenance | | -| main.rs:244:13:244:17 | ... + ... [MyInt] | main.rs:244:9:244:9 | c [MyInt] | provenance | | -| main.rs:245:10:245:10 | c [MyInt] | main.rs:245:10:245:16 | c.value | provenance | | -| main.rs:252:9:252:9 | a [MyInt] | main.rs:254:13:254:13 | a [MyInt] | provenance | | -| main.rs:252:13:252:38 | MyInt {...} [MyInt] | main.rs:252:9:252:9 | a [MyInt] | provenance | | -| main.rs:252:28:252:36 | source(...) | main.rs:252:13:252:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:254:9:254:9 | d [MyInt] | main.rs:255:10:255:10 | d [MyInt] | provenance | | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] | provenance | | -| main.rs:254:13:254:20 | a.add(...) [MyInt] | main.rs:254:9:254:9 | d [MyInt] | provenance | | -| main.rs:255:10:255:10 | d [MyInt] | main.rs:255:10:255:16 | d.value | provenance | | -| main.rs:259:9:259:9 | b [MyInt] | main.rs:261:35:261:35 | b [MyInt] | provenance | | -| main.rs:259:13:259:39 | MyInt {...} [MyInt] | main.rs:259:9:259:9 | b [MyInt] | provenance | | -| main.rs:259:28:259:37 | source(...) | main.rs:259:13:259:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | main.rs:261:32:261:32 | [post] a [MyInt] | provenance | | -| main.rs:261:32:261:32 | [post] a [MyInt] | main.rs:262:10:262:10 | a [MyInt] | provenance | | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | provenance | | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | provenance | | -| main.rs:262:10:262:10 | a [MyInt] | main.rs:262:10:262:16 | a.value | provenance | | -| main.rs:265:9:265:9 | b [MyInt] | main.rs:266:10:266:10 | b [MyInt] | provenance | | -| main.rs:265:13:265:39 | MyInt {...} [MyInt] | main.rs:265:9:265:9 | b [MyInt] | provenance | | -| main.rs:265:28:265:37 | source(...) | main.rs:265:13:265:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | provenance | | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:267:10:267:10 | a [MyInt] | provenance | | -| main.rs:267:10:267:10 | a [MyInt] | main.rs:267:10:267:16 | a.value | provenance | | -| main.rs:270:9:270:9 | a [MyInt] | main.rs:272:28:272:28 | a [MyInt] | provenance | | -| main.rs:270:13:270:39 | MyInt {...} [MyInt] | main.rs:270:9:270:9 | a [MyInt] | provenance | | -| main.rs:270:28:270:37 | source(...) | main.rs:270:13:270:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:272:9:272:9 | c | main.rs:273:10:273:10 | c | provenance | | -| main.rs:272:13:272:29 | * ... | main.rs:272:9:272:9 | c | provenance | | -| main.rs:272:14:272:29 | ...::deref(...) [&ref] | main.rs:272:13:272:29 | * ... | provenance | MaD:1 | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | provenance | | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:272:14:272:29 | ...::deref(...) [&ref] | provenance | MaD:1 | -| main.rs:272:28:272:28 | a [MyInt] | main.rs:272:27:272:28 | &a [&ref, MyInt] | provenance | | -| main.rs:275:9:275:9 | a [MyInt] | main.rs:276:14:276:14 | a [MyInt] | provenance | | -| main.rs:275:13:275:39 | MyInt {...} [MyInt] | main.rs:275:9:275:9 | a [MyInt] | provenance | | +| main.rs:108:30:114:5 | { ... } | main.rs:154:13:154:25 | mn.get_data() | provenance | | +| main.rs:112:13:112:21 | source(...) | main.rs:108:30:114:5 | { ... } | provenance | | +| main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | provenance | | +| main.rs:126:28:126:33 | ...: i64 | main.rs:127:14:127:14 | n | provenance | | +| main.rs:130:36:136:5 | { ... } | main.rs:148:13:148:30 | x.get_data_trait() | provenance | | +| main.rs:130:36:136:5 | { ... } | main.rs:158:13:158:31 | mn.get_data_trait() | provenance | | +| main.rs:134:13:134:22 | source(...) | main.rs:130:36:136:5 | { ... } | provenance | | +| main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | provenance | | +| main.rs:148:9:148:9 | a | main.rs:149:10:149:10 | a | provenance | | +| main.rs:148:13:148:30 | x.get_data_trait() | main.rs:148:9:148:9 | a | provenance | | +| main.rs:154:9:154:9 | a | main.rs:155:10:155:10 | a | provenance | | +| main.rs:154:13:154:25 | mn.get_data() | main.rs:154:9:154:9 | a | provenance | | +| main.rs:158:9:158:9 | a | main.rs:159:10:159:10 | a | provenance | | +| main.rs:158:13:158:31 | mn.get_data_trait() | main.rs:158:9:158:9 | a | provenance | | +| main.rs:165:9:165:9 | a | main.rs:166:21:166:21 | a | provenance | | +| main.rs:165:13:165:22 | source(...) | main.rs:165:9:165:9 | a | provenance | | +| main.rs:166:21:166:21 | a | main.rs:126:28:126:33 | ...: i64 | provenance | | +| main.rs:171:9:171:9 | a | main.rs:172:16:172:16 | a | provenance | | +| main.rs:171:13:171:21 | source(...) | main.rs:171:9:171:9 | a | provenance | | +| main.rs:172:16:172:16 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | +| main.rs:175:9:175:9 | a | main.rs:176:22:176:22 | a | provenance | | +| main.rs:175:13:175:22 | source(...) | main.rs:175:9:175:9 | a | provenance | | +| main.rs:176:22:176:22 | a | main.rs:126:28:126:33 | ...: i64 | provenance | | +| main.rs:182:9:182:9 | a | main.rs:183:34:183:34 | a | provenance | | +| main.rs:182:13:182:22 | source(...) | main.rs:182:9:182:9 | a | provenance | | +| main.rs:183:9:183:9 | b | main.rs:184:10:184:10 | b | provenance | | +| main.rs:183:13:183:35 | x.data_through_trait(...) | main.rs:183:9:183:9 | b | provenance | | +| main.rs:183:34:183:34 | a | main.rs:138:33:138:38 | ...: i64 | provenance | | +| main.rs:183:34:183:34 | a | main.rs:183:13:183:35 | x.data_through_trait(...) | provenance | | +| main.rs:189:9:189:9 | a | main.rs:190:29:190:29 | a | provenance | | +| main.rs:189:13:189:21 | source(...) | main.rs:189:9:189:9 | a | provenance | | +| main.rs:190:9:190:9 | b | main.rs:191:10:191:10 | b | provenance | | +| main.rs:190:13:190:30 | mn.data_through(...) | main.rs:190:9:190:9 | b | provenance | | +| main.rs:190:29:190:29 | a | main.rs:116:27:116:32 | ...: i64 | provenance | | +| main.rs:190:29:190:29 | a | main.rs:190:13:190:30 | mn.data_through(...) | provenance | | +| main.rs:194:9:194:9 | a | main.rs:195:35:195:35 | a | provenance | | +| main.rs:194:13:194:22 | source(...) | main.rs:194:9:194:9 | a | provenance | | +| main.rs:195:9:195:9 | b | main.rs:196:10:196:10 | b | provenance | | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | main.rs:195:9:195:9 | b | provenance | | +| main.rs:195:35:195:35 | a | main.rs:138:33:138:38 | ...: i64 | provenance | | +| main.rs:195:35:195:35 | a | main.rs:195:13:195:36 | mn.data_through_trait(...) | provenance | | +| main.rs:203:9:203:9 | a | main.rs:204:25:204:25 | a | provenance | | +| main.rs:203:13:203:21 | source(...) | main.rs:203:9:203:9 | a | provenance | | +| main.rs:204:25:204:25 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | +| main.rs:209:9:209:9 | a | main.rs:210:38:210:38 | a | provenance | | +| main.rs:209:13:209:22 | source(...) | main.rs:209:9:209:9 | a | provenance | | +| main.rs:210:9:210:9 | b | main.rs:211:10:211:10 | b | provenance | | +| main.rs:210:13:210:39 | ...::data_through(...) | main.rs:210:9:210:9 | b | provenance | | +| main.rs:210:38:210:38 | a | main.rs:116:27:116:32 | ...: i64 | provenance | | +| main.rs:210:38:210:38 | a | main.rs:210:13:210:39 | ...::data_through(...) | provenance | | +| main.rs:222:12:222:17 | ...: i64 | main.rs:223:24:223:24 | n | provenance | | +| main.rs:223:9:223:26 | MyInt {...} [MyInt] | main.rs:222:28:224:5 | { ... } [MyInt] | provenance | | +| main.rs:223:24:223:24 | n | main.rs:223:9:223:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:228:9:228:9 | n [MyInt] | main.rs:229:9:229:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:228:13:228:34 | ...::new(...) [MyInt] | main.rs:228:9:228:9 | n [MyInt] | provenance | | +| main.rs:228:24:228:33 | source(...) | main.rs:222:12:222:17 | ...: i64 | provenance | | +| main.rs:228:24:228:33 | source(...) | main.rs:228:13:228:34 | ...::new(...) [MyInt] | provenance | | +| main.rs:229:9:229:26 | MyInt {...} [MyInt] | main.rs:229:24:229:24 | m | provenance | | +| main.rs:229:24:229:24 | m | main.rs:230:10:230:10 | m | provenance | | +| main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:238:24:238:27 | self [MyInt] | provenance | | +| main.rs:238:9:238:35 | MyInt {...} [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | provenance | | +| main.rs:238:24:238:27 | self [MyInt] | main.rs:238:24:238:33 | self.value | provenance | | +| main.rs:238:24:238:33 | self.value | main.rs:238:9:238:35 | MyInt {...} [MyInt] | provenance | | +| main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:244:22:244:24 | rhs [MyInt] | provenance | | +| main.rs:244:9:244:12 | [post] self [&ref, MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | provenance | | +| main.rs:244:22:244:24 | rhs [MyInt] | main.rs:244:22:244:30 | rhs.value | provenance | | +| main.rs:244:22:244:30 | rhs.value | main.rs:244:9:244:12 | [post] self [&ref, MyInt] | provenance | | +| main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:252:12:252:15 | self [&ref, MyInt] | provenance | | +| main.rs:252:9:252:22 | &... [&ref] | main.rs:251:38:253:5 | { ... } [&ref] | provenance | | +| main.rs:252:10:252:22 | ... .value | main.rs:252:9:252:22 | &... [&ref] | provenance | | +| main.rs:252:11:252:15 | * ... [MyInt] | main.rs:252:10:252:22 | ... .value | provenance | | +| main.rs:252:12:252:15 | self [&ref, MyInt] | main.rs:252:11:252:15 | * ... [MyInt] | provenance | MaD:1 | +| main.rs:258:9:258:9 | a [MyInt] | main.rs:260:13:260:13 | a [MyInt] | provenance | | +| main.rs:258:13:258:38 | MyInt {...} [MyInt] | main.rs:258:9:258:9 | a [MyInt] | provenance | | +| main.rs:258:28:258:36 | source(...) | main.rs:258:13:258:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:260:9:260:9 | c [MyInt] | main.rs:261:10:261:10 | c [MyInt] | provenance | | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | provenance | | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:260:13:260:17 | ... + ... [MyInt] | provenance | | +| main.rs:260:13:260:17 | ... + ... [MyInt] | main.rs:260:9:260:9 | c [MyInt] | provenance | | +| main.rs:261:10:261:10 | c [MyInt] | main.rs:261:10:261:16 | c.value | provenance | | +| main.rs:268:9:268:9 | a [MyInt] | main.rs:270:13:270:13 | a [MyInt] | provenance | | +| main.rs:268:13:268:38 | MyInt {...} [MyInt] | main.rs:268:9:268:9 | a [MyInt] | provenance | | +| main.rs:268:28:268:36 | source(...) | main.rs:268:13:268:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:270:9:270:9 | d [MyInt] | main.rs:271:10:271:10 | d [MyInt] | provenance | | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | provenance | | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:270:13:270:20 | a.add(...) [MyInt] | provenance | | +| main.rs:270:13:270:20 | a.add(...) [MyInt] | main.rs:270:9:270:9 | d [MyInt] | provenance | | +| main.rs:271:10:271:10 | d [MyInt] | main.rs:271:10:271:16 | d.value | provenance | | +| main.rs:275:9:275:9 | b [MyInt] | main.rs:277:35:277:35 | b [MyInt] | provenance | | +| main.rs:275:13:275:39 | MyInt {...} [MyInt] | main.rs:275:9:275:9 | b [MyInt] | provenance | | | main.rs:275:28:275:37 | source(...) | main.rs:275:13:275:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:276:9:276:9 | c | main.rs:277:10:277:10 | c | provenance | | -| main.rs:276:13:276:14 | * ... | main.rs:276:9:276:9 | c | provenance | | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | provenance | | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:276:13:276:14 | * ... | provenance | MaD:1 | -| main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | provenance | | -| main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | provenance | | -| main.rs:299:9:299:9 | a [MyInt] | main.rs:301:50:301:50 | a [MyInt] | provenance | | -| main.rs:299:13:299:38 | MyInt {...} [MyInt] | main.rs:299:9:299:9 | a [MyInt] | provenance | | -| main.rs:299:28:299:36 | source(...) | main.rs:299:13:299:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:301:9:301:26 | MyInt {...} [MyInt] | main.rs:301:24:301:24 | c | provenance | | -| main.rs:301:24:301:24 | c | main.rs:302:10:302:10 | c | provenance | | -| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | main.rs:301:9:301:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | provenance | | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | provenance | | -| main.rs:305:9:305:9 | b [MyInt] | main.rs:306:55:306:55 | b [MyInt] | provenance | | -| main.rs:305:13:305:39 | MyInt {...} [MyInt] | main.rs:305:9:305:9 | b [MyInt] | provenance | | -| main.rs:305:28:305:37 | source(...) | main.rs:305:13:305:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:306:9:306:26 | MyInt {...} [MyInt] | main.rs:306:24:306:24 | c | provenance | | -| main.rs:306:24:306:24 | c | main.rs:307:10:307:10 | c | provenance | | -| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | main.rs:306:9:306:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | provenance | | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | provenance | | -| main.rs:315:32:319:1 | { ... } | main.rs:322:13:322:26 | async_source(...) | provenance | | -| main.rs:315:32:319:1 | { ... } | main.rs:334:41:334:54 | async_source(...) | provenance | | -| main.rs:316:9:316:9 | a | main.rs:315:32:319:1 | { ... } | provenance | | -| main.rs:316:9:316:9 | a | main.rs:317:10:317:10 | a | provenance | | -| main.rs:316:13:316:21 | source(...) | main.rs:316:9:316:9 | a | provenance | | -| main.rs:322:9:322:9 | a | main.rs:323:10:323:10 | a | provenance | | -| main.rs:322:13:322:26 | async_source(...) | main.rs:322:9:322:9 | a | provenance | | -| main.rs:326:13:326:13 | c | main.rs:327:14:327:14 | c | provenance | | -| main.rs:326:17:326:25 | source(...) | main.rs:326:13:326:13 | c | provenance | | -| main.rs:334:9:334:9 | a | main.rs:335:10:335:10 | a | provenance | | -| main.rs:334:13:334:55 | ...::block_on(...) | main.rs:334:9:334:9 | a | provenance | | -| main.rs:334:41:334:54 | async_source(...) | main.rs:334:13:334:55 | ...::block_on(...) | provenance | MaD:3 | -| main.rs:346:44:348:9 | { ... } | main.rs:383:18:383:38 | t.get_double_number() | provenance | | -| main.rs:346:44:348:9 | { ... } | main.rs:387:18:387:50 | ...::get_double_number(...) | provenance | | -| main.rs:347:13:347:29 | self.get_number() | main.rs:347:13:347:33 | ... * ... | provenance | MaD:2 | -| main.rs:347:13:347:33 | ... * ... | main.rs:346:44:348:9 | { ... } | provenance | | -| main.rs:350:33:352:9 | { ... } | main.rs:391:18:391:37 | ...::get_default(...) | provenance | | -| main.rs:351:13:351:21 | source(...) | main.rs:350:33:352:9 | { ... } | provenance | | -| main.rs:358:37:360:9 | { ... } | main.rs:347:13:347:29 | self.get_number() | provenance | | -| main.rs:359:13:359:21 | source(...) | main.rs:358:37:360:9 | { ... } | provenance | | -| main.rs:370:44:372:9 | { ... } | main.rs:395:18:395:38 | i.get_double_number() | provenance | | -| main.rs:371:13:371:22 | source(...) | main.rs:370:44:372:9 | { ... } | provenance | | -| main.rs:374:33:376:9 | { ... } | main.rs:398:18:398:41 | ...::get_default(...) | provenance | | -| main.rs:375:13:375:21 | source(...) | main.rs:374:33:376:9 | { ... } | provenance | | -| main.rs:383:13:383:14 | n1 | main.rs:384:14:384:15 | n1 | provenance | | -| main.rs:383:18:383:38 | t.get_double_number() | main.rs:383:13:383:14 | n1 | provenance | | -| main.rs:387:13:387:14 | n2 | main.rs:388:14:388:15 | n2 | provenance | | -| main.rs:387:18:387:50 | ...::get_double_number(...) | main.rs:387:13:387:14 | n2 | provenance | | -| main.rs:391:13:391:14 | n3 | main.rs:392:14:392:15 | n3 | provenance | | -| main.rs:391:18:391:37 | ...::get_default(...) | main.rs:391:13:391:14 | n3 | provenance | | -| main.rs:395:13:395:14 | n4 | main.rs:396:14:396:15 | n4 | provenance | | -| main.rs:395:18:395:38 | i.get_double_number() | main.rs:395:13:395:14 | n4 | provenance | | -| main.rs:398:13:398:14 | n5 | main.rs:399:14:399:15 | n5 | provenance | | -| main.rs:398:18:398:41 | ...::get_default(...) | main.rs:398:13:398:14 | n5 | provenance | | +| main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | main.rs:277:32:277:32 | [post] a [MyInt] | provenance | | +| main.rs:277:32:277:32 | [post] a [MyInt] | main.rs:278:10:278:10 | a [MyInt] | provenance | | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | provenance | | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | provenance | | +| main.rs:278:10:278:10 | a [MyInt] | main.rs:278:10:278:16 | a.value | provenance | | +| main.rs:281:9:281:9 | b [MyInt] | main.rs:282:10:282:10 | b [MyInt] | provenance | | +| main.rs:281:13:281:39 | MyInt {...} [MyInt] | main.rs:281:9:281:9 | b [MyInt] | provenance | | +| main.rs:281:28:281:37 | source(...) | main.rs:281:13:281:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | provenance | | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:283:10:283:10 | a [MyInt] | provenance | | +| main.rs:283:10:283:10 | a [MyInt] | main.rs:283:10:283:16 | a.value | provenance | | +| main.rs:286:9:286:9 | a [MyInt] | main.rs:288:28:288:28 | a [MyInt] | provenance | | +| main.rs:286:13:286:39 | MyInt {...} [MyInt] | main.rs:286:9:286:9 | a [MyInt] | provenance | | +| main.rs:286:28:286:37 | source(...) | main.rs:286:13:286:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:288:9:288:9 | c | main.rs:289:10:289:10 | c | provenance | | +| main.rs:288:13:288:29 | * ... | main.rs:288:9:288:9 | c | provenance | | +| main.rs:288:14:288:29 | ...::deref(...) [&ref] | main.rs:288:13:288:29 | * ... | provenance | MaD:1 | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | provenance | | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:288:14:288:29 | ...::deref(...) [&ref] | provenance | MaD:1 | +| main.rs:288:28:288:28 | a [MyInt] | main.rs:288:27:288:28 | &a [&ref, MyInt] | provenance | | +| main.rs:291:9:291:9 | a [MyInt] | main.rs:292:14:292:14 | a [MyInt] | provenance | | +| main.rs:291:13:291:39 | MyInt {...} [MyInt] | main.rs:291:9:291:9 | a [MyInt] | provenance | | +| main.rs:291:28:291:37 | source(...) | main.rs:291:13:291:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:292:9:292:9 | c | main.rs:293:10:293:10 | c | provenance | | +| main.rs:292:13:292:14 | * ... | main.rs:292:9:292:9 | c | provenance | | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | provenance | | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:292:13:292:14 | * ... | provenance | MaD:1 | +| main.rs:309:18:309:21 | SelfParam [MyInt] | main.rs:309:48:311:5 | { ... } [MyInt] | provenance | | +| main.rs:313:26:313:37 | ...: MyInt [MyInt] | main.rs:313:49:315:5 | { ... } [MyInt] | provenance | | +| main.rs:319:9:319:9 | a [MyInt] | main.rs:321:50:321:50 | a [MyInt] | provenance | | +| main.rs:319:13:319:38 | MyInt {...} [MyInt] | main.rs:319:9:319:9 | a [MyInt] | provenance | | +| main.rs:319:28:319:36 | source(...) | main.rs:319:13:319:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:321:9:321:26 | MyInt {...} [MyInt] | main.rs:321:24:321:24 | c | provenance | | +| main.rs:321:24:321:24 | c | main.rs:322:10:322:10 | c | provenance | | +| main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | main.rs:321:9:321:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:309:18:309:21 | SelfParam [MyInt] | provenance | | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | provenance | | +| main.rs:325:9:325:9 | b [MyInt] | main.rs:326:55:326:55 | b [MyInt] | provenance | | +| main.rs:325:13:325:39 | MyInt {...} [MyInt] | main.rs:325:9:325:9 | b [MyInt] | provenance | | +| main.rs:325:28:325:37 | source(...) | main.rs:325:13:325:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:326:9:326:26 | MyInt {...} [MyInt] | main.rs:326:24:326:24 | c | provenance | | +| main.rs:326:24:326:24 | c | main.rs:327:10:327:10 | c | provenance | | +| main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | main.rs:326:9:326:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:313:26:313:37 | ...: MyInt [MyInt] | provenance | | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | provenance | | +| main.rs:335:32:339:1 | { ... } | main.rs:342:13:342:26 | async_source(...) | provenance | | +| main.rs:335:32:339:1 | { ... } | main.rs:354:41:354:54 | async_source(...) | provenance | | +| main.rs:336:9:336:9 | a | main.rs:335:32:339:1 | { ... } | provenance | | +| main.rs:336:9:336:9 | a | main.rs:337:10:337:10 | a | provenance | | +| main.rs:336:13:336:21 | source(...) | main.rs:336:9:336:9 | a | provenance | | +| main.rs:342:9:342:9 | a | main.rs:343:10:343:10 | a | provenance | | +| main.rs:342:13:342:26 | async_source(...) | main.rs:342:9:342:9 | a | provenance | | +| main.rs:346:13:346:13 | c | main.rs:347:14:347:14 | c | provenance | | +| main.rs:346:17:346:25 | source(...) | main.rs:346:13:346:13 | c | provenance | | +| main.rs:354:9:354:9 | a | main.rs:355:10:355:10 | a | provenance | | +| main.rs:354:13:354:55 | ...::block_on(...) | main.rs:354:9:354:9 | a | provenance | | +| main.rs:354:41:354:54 | async_source(...) | main.rs:354:13:354:55 | ...::block_on(...) | provenance | MaD:3 | +| main.rs:366:44:368:9 | { ... } | main.rs:403:18:403:38 | t.get_double_number() | provenance | | +| main.rs:366:44:368:9 | { ... } | main.rs:407:18:407:50 | ...::get_double_number(...) | provenance | | +| main.rs:367:13:367:29 | self.get_number() | main.rs:367:13:367:33 | ... * ... | provenance | MaD:2 | +| main.rs:367:13:367:33 | ... * ... | main.rs:366:44:368:9 | { ... } | provenance | | +| main.rs:370:33:372:9 | { ... } | main.rs:411:18:411:37 | ...::get_default(...) | provenance | | +| main.rs:371:13:371:21 | source(...) | main.rs:370:33:372:9 | { ... } | provenance | | +| main.rs:378:37:380:9 | { ... } | main.rs:367:13:367:29 | self.get_number() | provenance | | +| main.rs:379:13:379:21 | source(...) | main.rs:378:37:380:9 | { ... } | provenance | | +| main.rs:390:44:392:9 | { ... } | main.rs:415:18:415:38 | i.get_double_number() | provenance | | +| main.rs:391:13:391:22 | source(...) | main.rs:390:44:392:9 | { ... } | provenance | | +| main.rs:394:33:396:9 | { ... } | main.rs:418:18:418:41 | ...::get_default(...) | provenance | | +| main.rs:395:13:395:21 | source(...) | main.rs:394:33:396:9 | { ... } | provenance | | +| main.rs:403:13:403:14 | n1 | main.rs:404:14:404:15 | n1 | provenance | | +| main.rs:403:18:403:38 | t.get_double_number() | main.rs:403:13:403:14 | n1 | provenance | | +| main.rs:407:13:407:14 | n2 | main.rs:408:14:408:15 | n2 | provenance | | +| main.rs:407:18:407:50 | ...::get_double_number(...) | main.rs:407:13:407:14 | n2 | provenance | | +| main.rs:411:13:411:14 | n3 | main.rs:412:14:412:15 | n3 | provenance | | +| main.rs:411:18:411:37 | ...::get_default(...) | main.rs:411:13:411:14 | n3 | provenance | | +| main.rs:415:13:415:14 | n4 | main.rs:416:14:416:15 | n4 | provenance | | +| main.rs:415:18:415:38 | i.get_double_number() | main.rs:415:13:415:14 | n4 | provenance | | +| main.rs:418:13:418:14 | n5 | main.rs:419:14:419:15 | n5 | provenance | | +| main.rs:418:18:418:41 | ...::get_default(...) | main.rs:418:13:418:14 | n5 | provenance | | nodes | main.rs:12:28:14:1 | { ... } | semmle.label | { ... } | | main.rs:13:5:13:13 | source(...) | semmle.label | source(...) | @@ -271,193 +271,193 @@ nodes | main.rs:87:10:87:10 | b | semmle.label | b | | main.rs:104:22:104:27 | ...: i64 | semmle.label | ...: i64 | | main.rs:105:14:105:14 | n | semmle.label | n | -| main.rs:108:30:110:5 | { ... } | semmle.label | { ... } | -| main.rs:109:35:109:43 | source(...) | semmle.label | source(...) | -| main.rs:112:27:112:32 | ...: i64 | semmle.label | ...: i64 | -| main.rs:112:42:114:5 | { ... } | semmle.label | { ... } | -| main.rs:118:28:118:33 | ...: i64 | semmle.label | ...: i64 | -| main.rs:119:14:119:14 | n | semmle.label | n | -| main.rs:122:36:124:5 | { ... } | semmle.label | { ... } | -| main.rs:123:35:123:44 | source(...) | semmle.label | source(...) | -| main.rs:126:33:126:38 | ...: i64 | semmle.label | ...: i64 | -| main.rs:126:48:128:5 | { ... } | semmle.label | { ... } | -| main.rs:132:9:132:9 | a | semmle.label | a | -| main.rs:132:13:132:30 | x.get_data_trait() | semmle.label | x.get_data_trait() | -| main.rs:133:10:133:10 | a | semmle.label | a | -| main.rs:138:9:138:9 | a | semmle.label | a | -| main.rs:138:13:138:25 | mn.get_data() | semmle.label | mn.get_data() | -| main.rs:139:10:139:10 | a | semmle.label | a | -| main.rs:142:9:142:9 | a | semmle.label | a | -| main.rs:142:13:142:31 | mn.get_data_trait() | semmle.label | mn.get_data_trait() | -| main.rs:143:10:143:10 | a | semmle.label | a | -| main.rs:149:9:149:9 | a | semmle.label | a | -| main.rs:149:13:149:22 | source(...) | semmle.label | source(...) | -| main.rs:150:21:150:21 | a | semmle.label | a | -| main.rs:155:9:155:9 | a | semmle.label | a | -| main.rs:155:13:155:21 | source(...) | semmle.label | source(...) | -| main.rs:156:16:156:16 | a | semmle.label | a | -| main.rs:159:9:159:9 | a | semmle.label | a | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:160:22:160:22 | a | semmle.label | a | -| main.rs:166:9:166:9 | a | semmle.label | a | -| main.rs:166:13:166:22 | source(...) | semmle.label | source(...) | -| main.rs:167:9:167:9 | b | semmle.label | b | -| main.rs:167:13:167:35 | x.data_through_trait(...) | semmle.label | x.data_through_trait(...) | -| main.rs:167:34:167:34 | a | semmle.label | a | -| main.rs:168:10:168:10 | b | semmle.label | b | -| main.rs:173:9:173:9 | a | semmle.label | a | -| main.rs:173:13:173:21 | source(...) | semmle.label | source(...) | -| main.rs:174:9:174:9 | b | semmle.label | b | -| main.rs:174:13:174:30 | mn.data_through(...) | semmle.label | mn.data_through(...) | -| main.rs:174:29:174:29 | a | semmle.label | a | -| main.rs:175:10:175:10 | b | semmle.label | b | -| main.rs:178:9:178:9 | a | semmle.label | a | -| main.rs:178:13:178:22 | source(...) | semmle.label | source(...) | -| main.rs:179:9:179:9 | b | semmle.label | b | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | semmle.label | mn.data_through_trait(...) | -| main.rs:179:35:179:35 | a | semmle.label | a | -| main.rs:180:10:180:10 | b | semmle.label | b | -| main.rs:187:9:187:9 | a | semmle.label | a | -| main.rs:187:13:187:21 | source(...) | semmle.label | source(...) | -| main.rs:188:25:188:25 | a | semmle.label | a | -| main.rs:193:9:193:9 | a | semmle.label | a | -| main.rs:193:13:193:22 | source(...) | semmle.label | source(...) | -| main.rs:194:9:194:9 | b | semmle.label | b | -| main.rs:194:13:194:39 | ...::data_through(...) | semmle.label | ...::data_through(...) | -| main.rs:194:38:194:38 | a | semmle.label | a | -| main.rs:195:10:195:10 | b | semmle.label | b | -| main.rs:206:12:206:17 | ...: i64 | semmle.label | ...: i64 | -| main.rs:206:28:208:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:207:9:207:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:207:24:207:24 | n | semmle.label | n | -| main.rs:212:9:212:9 | n [MyInt] | semmle.label | n [MyInt] | -| main.rs:212:13:212:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] | -| main.rs:212:24:212:33 | source(...) | semmle.label | source(...) | -| main.rs:213:9:213:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:213:24:213:24 | m | semmle.label | m | -| main.rs:214:10:214:10 | m | semmle.label | m | -| main.rs:220:12:220:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | -| main.rs:220:42:223:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:222:9:222:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:222:24:222:27 | self [MyInt] | semmle.label | self [MyInt] | -| main.rs:222:24:222:33 | self.value | semmle.label | self.value | -| main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | semmle.label | SelfParam [Return] [&ref, MyInt] | -| main.rs:227:30:227:39 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | -| main.rs:228:9:228:12 | [post] self [&ref, MyInt] | semmle.label | [post] self [&ref, MyInt] | -| main.rs:228:22:228:24 | rhs [MyInt] | semmle.label | rhs [MyInt] | -| main.rs:228:22:228:30 | rhs.value | semmle.label | rhs.value | -| main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | semmle.label | SelfParam [&ref, MyInt] | -| main.rs:235:38:237:5 | { ... } [&ref] | semmle.label | { ... } [&ref] | -| main.rs:236:9:236:22 | &... [&ref] | semmle.label | &... [&ref] | -| main.rs:236:10:236:22 | ... .value | semmle.label | ... .value | -| main.rs:236:11:236:15 | * ... [MyInt] | semmle.label | * ... [MyInt] | -| main.rs:236:12:236:15 | self [&ref, MyInt] | semmle.label | self [&ref, MyInt] | -| main.rs:242:9:242:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:242:13:242:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:242:28:242:36 | source(...) | semmle.label | source(...) | -| main.rs:244:9:244:9 | c [MyInt] | semmle.label | c [MyInt] | -| main.rs:244:13:244:13 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:244:13:244:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] | -| main.rs:245:10:245:10 | c [MyInt] | semmle.label | c [MyInt] | -| main.rs:245:10:245:16 | c.value | semmle.label | c.value | -| main.rs:252:9:252:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:252:13:252:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:252:28:252:36 | source(...) | semmle.label | source(...) | -| main.rs:254:9:254:9 | d [MyInt] | semmle.label | d [MyInt] | -| main.rs:254:13:254:13 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:254:13:254:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] | -| main.rs:255:10:255:10 | d [MyInt] | semmle.label | d [MyInt] | -| main.rs:255:10:255:16 | d.value | semmle.label | d.value | -| main.rs:259:9:259:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:259:13:259:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:259:28:259:37 | source(...) | semmle.label | source(...) | -| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | semmle.label | [post] &mut a [&ref, MyInt] | -| main.rs:261:32:261:32 | [post] a [MyInt] | semmle.label | [post] a [MyInt] | -| main.rs:261:35:261:35 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:262:10:262:10 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:262:10:262:16 | a.value | semmle.label | a.value | -| main.rs:265:9:265:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:265:13:265:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:265:28:265:37 | source(...) | semmle.label | source(...) | -| main.rs:266:10:266:10 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:267:10:267:10 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:267:10:267:16 | a.value | semmle.label | a.value | -| main.rs:270:9:270:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:270:13:270:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:270:28:270:37 | source(...) | semmle.label | source(...) | -| main.rs:272:9:272:9 | c | semmle.label | c | -| main.rs:272:13:272:29 | * ... | semmle.label | * ... | -| main.rs:272:14:272:29 | ...::deref(...) [&ref] | semmle.label | ...::deref(...) [&ref] | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | semmle.label | &a [&ref, MyInt] | -| main.rs:272:28:272:28 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:273:10:273:10 | c | semmle.label | c | -| main.rs:275:9:275:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:108:30:114:5 | { ... } | semmle.label | { ... } | +| main.rs:112:13:112:21 | source(...) | semmle.label | source(...) | +| main.rs:116:27:116:32 | ...: i64 | semmle.label | ...: i64 | +| main.rs:116:42:122:5 | { ... } | semmle.label | { ... } | +| main.rs:126:28:126:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:127:14:127:14 | n | semmle.label | n | +| main.rs:130:36:136:5 | { ... } | semmle.label | { ... } | +| main.rs:134:13:134:22 | source(...) | semmle.label | source(...) | +| main.rs:138:33:138:38 | ...: i64 | semmle.label | ...: i64 | +| main.rs:138:48:144:5 | { ... } | semmle.label | { ... } | +| main.rs:148:9:148:9 | a | semmle.label | a | +| main.rs:148:13:148:30 | x.get_data_trait() | semmle.label | x.get_data_trait() | +| main.rs:149:10:149:10 | a | semmle.label | a | +| main.rs:154:9:154:9 | a | semmle.label | a | +| main.rs:154:13:154:25 | mn.get_data() | semmle.label | mn.get_data() | +| main.rs:155:10:155:10 | a | semmle.label | a | +| main.rs:158:9:158:9 | a | semmle.label | a | +| main.rs:158:13:158:31 | mn.get_data_trait() | semmle.label | mn.get_data_trait() | +| main.rs:159:10:159:10 | a | semmle.label | a | +| main.rs:165:9:165:9 | a | semmle.label | a | +| main.rs:165:13:165:22 | source(...) | semmle.label | source(...) | +| main.rs:166:21:166:21 | a | semmle.label | a | +| main.rs:171:9:171:9 | a | semmle.label | a | +| main.rs:171:13:171:21 | source(...) | semmle.label | source(...) | +| main.rs:172:16:172:16 | a | semmle.label | a | +| main.rs:175:9:175:9 | a | semmle.label | a | +| main.rs:175:13:175:22 | source(...) | semmle.label | source(...) | +| main.rs:176:22:176:22 | a | semmle.label | a | +| main.rs:182:9:182:9 | a | semmle.label | a | +| main.rs:182:13:182:22 | source(...) | semmle.label | source(...) | +| main.rs:183:9:183:9 | b | semmle.label | b | +| main.rs:183:13:183:35 | x.data_through_trait(...) | semmle.label | x.data_through_trait(...) | +| main.rs:183:34:183:34 | a | semmle.label | a | +| main.rs:184:10:184:10 | b | semmle.label | b | +| main.rs:189:9:189:9 | a | semmle.label | a | +| main.rs:189:13:189:21 | source(...) | semmle.label | source(...) | +| main.rs:190:9:190:9 | b | semmle.label | b | +| main.rs:190:13:190:30 | mn.data_through(...) | semmle.label | mn.data_through(...) | +| main.rs:190:29:190:29 | a | semmle.label | a | +| main.rs:191:10:191:10 | b | semmle.label | b | +| main.rs:194:9:194:9 | a | semmle.label | a | +| main.rs:194:13:194:22 | source(...) | semmle.label | source(...) | +| main.rs:195:9:195:9 | b | semmle.label | b | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | semmle.label | mn.data_through_trait(...) | +| main.rs:195:35:195:35 | a | semmle.label | a | +| main.rs:196:10:196:10 | b | semmle.label | b | +| main.rs:203:9:203:9 | a | semmle.label | a | +| main.rs:203:13:203:21 | source(...) | semmle.label | source(...) | +| main.rs:204:25:204:25 | a | semmle.label | a | +| main.rs:209:9:209:9 | a | semmle.label | a | +| main.rs:209:13:209:22 | source(...) | semmle.label | source(...) | +| main.rs:210:9:210:9 | b | semmle.label | b | +| main.rs:210:13:210:39 | ...::data_through(...) | semmle.label | ...::data_through(...) | +| main.rs:210:38:210:38 | a | semmle.label | a | +| main.rs:211:10:211:10 | b | semmle.label | b | +| main.rs:222:12:222:17 | ...: i64 | semmle.label | ...: i64 | +| main.rs:222:28:224:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:223:9:223:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:223:24:223:24 | n | semmle.label | n | +| main.rs:228:9:228:9 | n [MyInt] | semmle.label | n [MyInt] | +| main.rs:228:13:228:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] | +| main.rs:228:24:228:33 | source(...) | semmle.label | source(...) | +| main.rs:229:9:229:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:229:24:229:24 | m | semmle.label | m | +| main.rs:230:10:230:10 | m | semmle.label | m | +| main.rs:236:12:236:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | +| main.rs:236:42:239:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:238:9:238:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:238:24:238:27 | self [MyInt] | semmle.label | self [MyInt] | +| main.rs:238:24:238:33 | self.value | semmle.label | self.value | +| main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | semmle.label | SelfParam [Return] [&ref, MyInt] | +| main.rs:243:30:243:39 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | +| main.rs:244:9:244:12 | [post] self [&ref, MyInt] | semmle.label | [post] self [&ref, MyInt] | +| main.rs:244:22:244:24 | rhs [MyInt] | semmle.label | rhs [MyInt] | +| main.rs:244:22:244:30 | rhs.value | semmle.label | rhs.value | +| main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | semmle.label | SelfParam [&ref, MyInt] | +| main.rs:251:38:253:5 | { ... } [&ref] | semmle.label | { ... } [&ref] | +| main.rs:252:9:252:22 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:252:10:252:22 | ... .value | semmle.label | ... .value | +| main.rs:252:11:252:15 | * ... [MyInt] | semmle.label | * ... [MyInt] | +| main.rs:252:12:252:15 | self [&ref, MyInt] | semmle.label | self [&ref, MyInt] | +| main.rs:258:9:258:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:258:13:258:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:258:28:258:36 | source(...) | semmle.label | source(...) | +| main.rs:260:9:260:9 | c [MyInt] | semmle.label | c [MyInt] | +| main.rs:260:13:260:13 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:260:13:260:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] | +| main.rs:261:10:261:10 | c [MyInt] | semmle.label | c [MyInt] | +| main.rs:261:10:261:16 | c.value | semmle.label | c.value | +| main.rs:268:9:268:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:268:13:268:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:268:28:268:36 | source(...) | semmle.label | source(...) | +| main.rs:270:9:270:9 | d [MyInt] | semmle.label | d [MyInt] | +| main.rs:270:13:270:13 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:270:13:270:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] | +| main.rs:271:10:271:10 | d [MyInt] | semmle.label | d [MyInt] | +| main.rs:271:10:271:16 | d.value | semmle.label | d.value | +| main.rs:275:9:275:9 | b [MyInt] | semmle.label | b [MyInt] | | main.rs:275:13:275:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | | main.rs:275:28:275:37 | source(...) | semmle.label | source(...) | -| main.rs:276:9:276:9 | c | semmle.label | c | -| main.rs:276:13:276:14 | * ... | semmle.label | * ... | -| main.rs:276:14:276:14 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:277:10:277:10 | c | semmle.label | c | -| main.rs:289:18:289:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | -| main.rs:289:48:291:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:293:26:293:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | -| main.rs:293:49:295:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:299:9:299:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:299:13:299:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:299:28:299:36 | source(...) | semmle.label | source(...) | -| main.rs:301:9:301:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:301:24:301:24 | c | semmle.label | c | -| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] | -| main.rs:301:50:301:50 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:302:10:302:10 | c | semmle.label | c | -| main.rs:305:9:305:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:305:13:305:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:305:28:305:37 | source(...) | semmle.label | source(...) | -| main.rs:306:9:306:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:306:24:306:24 | c | semmle.label | c | -| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] | -| main.rs:306:55:306:55 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:307:10:307:10 | c | semmle.label | c | -| main.rs:315:32:319:1 | { ... } | semmle.label | { ... } | -| main.rs:316:9:316:9 | a | semmle.label | a | -| main.rs:316:13:316:21 | source(...) | semmle.label | source(...) | -| main.rs:317:10:317:10 | a | semmle.label | a | -| main.rs:322:9:322:9 | a | semmle.label | a | -| main.rs:322:13:322:26 | async_source(...) | semmle.label | async_source(...) | -| main.rs:323:10:323:10 | a | semmle.label | a | -| main.rs:326:13:326:13 | c | semmle.label | c | -| main.rs:326:17:326:25 | source(...) | semmle.label | source(...) | -| main.rs:327:14:327:14 | c | semmle.label | c | -| main.rs:334:9:334:9 | a | semmle.label | a | -| main.rs:334:13:334:55 | ...::block_on(...) | semmle.label | ...::block_on(...) | -| main.rs:334:41:334:54 | async_source(...) | semmle.label | async_source(...) | -| main.rs:335:10:335:10 | a | semmle.label | a | -| main.rs:346:44:348:9 | { ... } | semmle.label | { ... } | -| main.rs:347:13:347:29 | self.get_number() | semmle.label | self.get_number() | -| main.rs:347:13:347:33 | ... * ... | semmle.label | ... * ... | -| main.rs:350:33:352:9 | { ... } | semmle.label | { ... } | -| main.rs:351:13:351:21 | source(...) | semmle.label | source(...) | -| main.rs:358:37:360:9 | { ... } | semmle.label | { ... } | -| main.rs:359:13:359:21 | source(...) | semmle.label | source(...) | -| main.rs:370:44:372:9 | { ... } | semmle.label | { ... } | -| main.rs:371:13:371:22 | source(...) | semmle.label | source(...) | -| main.rs:374:33:376:9 | { ... } | semmle.label | { ... } | -| main.rs:375:13:375:21 | source(...) | semmle.label | source(...) | -| main.rs:383:13:383:14 | n1 | semmle.label | n1 | -| main.rs:383:18:383:38 | t.get_double_number() | semmle.label | t.get_double_number() | -| main.rs:384:14:384:15 | n1 | semmle.label | n1 | -| main.rs:387:13:387:14 | n2 | semmle.label | n2 | -| main.rs:387:18:387:50 | ...::get_double_number(...) | semmle.label | ...::get_double_number(...) | -| main.rs:388:14:388:15 | n2 | semmle.label | n2 | -| main.rs:391:13:391:14 | n3 | semmle.label | n3 | -| main.rs:391:18:391:37 | ...::get_default(...) | semmle.label | ...::get_default(...) | -| main.rs:392:14:392:15 | n3 | semmle.label | n3 | -| main.rs:395:13:395:14 | n4 | semmle.label | n4 | -| main.rs:395:18:395:38 | i.get_double_number() | semmle.label | i.get_double_number() | -| main.rs:396:14:396:15 | n4 | semmle.label | n4 | -| main.rs:398:13:398:14 | n5 | semmle.label | n5 | -| main.rs:398:18:398:41 | ...::get_default(...) | semmle.label | ...::get_default(...) | -| main.rs:399:14:399:15 | n5 | semmle.label | n5 | +| main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | semmle.label | [post] &mut a [&ref, MyInt] | +| main.rs:277:32:277:32 | [post] a [MyInt] | semmle.label | [post] a [MyInt] | +| main.rs:277:35:277:35 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:278:10:278:10 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:278:10:278:16 | a.value | semmle.label | a.value | +| main.rs:281:9:281:9 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:281:13:281:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:281:28:281:37 | source(...) | semmle.label | source(...) | +| main.rs:282:10:282:10 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:283:10:283:10 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:283:10:283:16 | a.value | semmle.label | a.value | +| main.rs:286:9:286:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:286:13:286:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:286:28:286:37 | source(...) | semmle.label | source(...) | +| main.rs:288:9:288:9 | c | semmle.label | c | +| main.rs:288:13:288:29 | * ... | semmle.label | * ... | +| main.rs:288:14:288:29 | ...::deref(...) [&ref] | semmle.label | ...::deref(...) [&ref] | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | semmle.label | &a [&ref, MyInt] | +| main.rs:288:28:288:28 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:289:10:289:10 | c | semmle.label | c | +| main.rs:291:9:291:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:291:13:291:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:291:28:291:37 | source(...) | semmle.label | source(...) | +| main.rs:292:9:292:9 | c | semmle.label | c | +| main.rs:292:13:292:14 | * ... | semmle.label | * ... | +| main.rs:292:14:292:14 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:293:10:293:10 | c | semmle.label | c | +| main.rs:309:18:309:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | +| main.rs:309:48:311:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:313:26:313:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | +| main.rs:313:49:315:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:319:9:319:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:319:13:319:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:319:28:319:36 | source(...) | semmle.label | source(...) | +| main.rs:321:9:321:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:321:24:321:24 | c | semmle.label | c | +| main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] | +| main.rs:321:50:321:50 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:322:10:322:10 | c | semmle.label | c | +| main.rs:325:9:325:9 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:325:13:325:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:325:28:325:37 | source(...) | semmle.label | source(...) | +| main.rs:326:9:326:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:326:24:326:24 | c | semmle.label | c | +| main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] | +| main.rs:326:55:326:55 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:327:10:327:10 | c | semmle.label | c | +| main.rs:335:32:339:1 | { ... } | semmle.label | { ... } | +| main.rs:336:9:336:9 | a | semmle.label | a | +| main.rs:336:13:336:21 | source(...) | semmle.label | source(...) | +| main.rs:337:10:337:10 | a | semmle.label | a | +| main.rs:342:9:342:9 | a | semmle.label | a | +| main.rs:342:13:342:26 | async_source(...) | semmle.label | async_source(...) | +| main.rs:343:10:343:10 | a | semmle.label | a | +| main.rs:346:13:346:13 | c | semmle.label | c | +| main.rs:346:17:346:25 | source(...) | semmle.label | source(...) | +| main.rs:347:14:347:14 | c | semmle.label | c | +| main.rs:354:9:354:9 | a | semmle.label | a | +| main.rs:354:13:354:55 | ...::block_on(...) | semmle.label | ...::block_on(...) | +| main.rs:354:41:354:54 | async_source(...) | semmle.label | async_source(...) | +| main.rs:355:10:355:10 | a | semmle.label | a | +| main.rs:366:44:368:9 | { ... } | semmle.label | { ... } | +| main.rs:367:13:367:29 | self.get_number() | semmle.label | self.get_number() | +| main.rs:367:13:367:33 | ... * ... | semmle.label | ... * ... | +| main.rs:370:33:372:9 | { ... } | semmle.label | { ... } | +| main.rs:371:13:371:21 | source(...) | semmle.label | source(...) | +| main.rs:378:37:380:9 | { ... } | semmle.label | { ... } | +| main.rs:379:13:379:21 | source(...) | semmle.label | source(...) | +| main.rs:390:44:392:9 | { ... } | semmle.label | { ... } | +| main.rs:391:13:391:22 | source(...) | semmle.label | source(...) | +| main.rs:394:33:396:9 | { ... } | semmle.label | { ... } | +| main.rs:395:13:395:21 | source(...) | semmle.label | source(...) | +| main.rs:403:13:403:14 | n1 | semmle.label | n1 | +| main.rs:403:18:403:38 | t.get_double_number() | semmle.label | t.get_double_number() | +| main.rs:404:14:404:15 | n1 | semmle.label | n1 | +| main.rs:407:13:407:14 | n2 | semmle.label | n2 | +| main.rs:407:18:407:50 | ...::get_double_number(...) | semmle.label | ...::get_double_number(...) | +| main.rs:408:14:408:15 | n2 | semmle.label | n2 | +| main.rs:411:13:411:14 | n3 | semmle.label | n3 | +| main.rs:411:18:411:37 | ...::get_default(...) | semmle.label | ...::get_default(...) | +| main.rs:412:14:412:15 | n3 | semmle.label | n3 | +| main.rs:415:13:415:14 | n4 | semmle.label | n4 | +| main.rs:415:18:415:38 | i.get_double_number() | semmle.label | i.get_double_number() | +| main.rs:416:14:416:15 | n4 | semmle.label | n4 | +| main.rs:418:13:418:14 | n5 | semmle.label | n5 | +| main.rs:418:18:418:41 | ...::get_default(...) | semmle.label | ...::get_default(...) | +| main.rs:419:14:419:15 | n5 | semmle.label | n5 | subpaths | main.rs:38:23:38:31 | source(...) | main.rs:26:28:26:33 | ...: i64 | main.rs:26:17:26:25 | SelfParam [Return] [&ref, MyStruct] | main.rs:38:6:38:11 | [post] &mut a [&ref, MyStruct] | | main.rs:39:10:39:10 | a [MyStruct] | main.rs:30:17:30:21 | SelfParam [&ref, MyStruct] | main.rs:30:31:32:5 | { ... } | main.rs:39:10:39:21 | a.get_data() | @@ -466,19 +466,19 @@ subpaths | main.rs:67:26:67:26 | a | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:67:13:67:27 | pass_through(...) | | main.rs:72:26:75:5 | { ... } | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:72:13:75:6 | pass_through(...) | | main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | main.rs:82:36:84:5 | { ... } | main.rs:86:13:86:27 | pass_through(...) | -| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:167:13:167:35 | x.data_through_trait(...) | -| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:174:13:174:30 | mn.data_through(...) | -| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:179:13:179:36 | mn.data_through_trait(...) | -| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:194:13:194:39 | ...::data_through(...) | -| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | main.rs:206:28:208:5 | { ... } [MyInt] | main.rs:212:13:212:34 | ...::new(...) [MyInt] | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | main.rs:267:10:267:10 | a [MyInt] | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:235:38:237:5 | { ... } [&ref] | main.rs:272:14:272:29 | ...::deref(...) [&ref] | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:235:38:237:5 | { ... } [&ref] | main.rs:276:13:276:14 | * ... | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | +| main.rs:183:34:183:34 | a | main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | main.rs:183:13:183:35 | x.data_through_trait(...) | +| main.rs:190:29:190:29 | a | main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | main.rs:190:13:190:30 | mn.data_through(...) | +| main.rs:195:35:195:35 | a | main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | main.rs:195:13:195:36 | mn.data_through_trait(...) | +| main.rs:210:38:210:38 | a | main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | main.rs:210:13:210:39 | ...::data_through(...) | +| main.rs:228:24:228:33 | source(...) | main.rs:222:12:222:17 | ...: i64 | main.rs:222:28:224:5 | { ... } [MyInt] | main.rs:228:13:228:34 | ...::new(...) [MyInt] | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | main.rs:260:13:260:17 | ... + ... [MyInt] | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | main.rs:270:13:270:20 | a.add(...) [MyInt] | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | main.rs:283:10:283:10 | a [MyInt] | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:251:38:253:5 | { ... } [&ref] | main.rs:288:14:288:29 | ...::deref(...) [&ref] | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:251:38:253:5 | { ... } [&ref] | main.rs:292:13:292:14 | * ... | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:309:18:309:21 | SelfParam [MyInt] | main.rs:309:48:311:5 | { ... } [MyInt] | main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:313:26:313:37 | ...: MyInt [MyInt] | main.rs:313:49:315:5 | { ... } [MyInt] | main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | testFailures #select | main.rs:18:10:18:10 | a | main.rs:13:5:13:13 | source(...) | main.rs:18:10:18:10 | a | $@ | main.rs:13:5:13:13 | source(...) | source(...) | @@ -488,32 +488,32 @@ testFailures | main.rs:68:10:68:10 | b | main.rs:66:13:66:21 | source(...) | main.rs:68:10:68:10 | b | $@ | main.rs:66:13:66:21 | source(...) | source(...) | | main.rs:76:10:76:10 | a | main.rs:74:9:74:18 | source(...) | main.rs:76:10:76:10 | a | $@ | main.rs:74:9:74:18 | source(...) | source(...) | | main.rs:87:10:87:10 | b | main.rs:80:13:80:22 | source(...) | main.rs:87:10:87:10 | b | $@ | main.rs:80:13:80:22 | source(...) | source(...) | -| main.rs:105:14:105:14 | n | main.rs:155:13:155:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:155:13:155:21 | source(...) | source(...) | -| main.rs:105:14:105:14 | n | main.rs:187:13:187:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:187:13:187:21 | source(...) | source(...) | -| main.rs:119:14:119:14 | n | main.rs:149:13:149:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:149:13:149:22 | source(...) | source(...) | -| main.rs:119:14:119:14 | n | main.rs:159:13:159:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:133:10:133:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:133:10:133:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) | -| main.rs:139:10:139:10 | a | main.rs:109:35:109:43 | source(...) | main.rs:139:10:139:10 | a | $@ | main.rs:109:35:109:43 | source(...) | source(...) | -| main.rs:143:10:143:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:143:10:143:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) | -| main.rs:168:10:168:10 | b | main.rs:166:13:166:22 | source(...) | main.rs:168:10:168:10 | b | $@ | main.rs:166:13:166:22 | source(...) | source(...) | -| main.rs:175:10:175:10 | b | main.rs:173:13:173:21 | source(...) | main.rs:175:10:175:10 | b | $@ | main.rs:173:13:173:21 | source(...) | source(...) | -| main.rs:180:10:180:10 | b | main.rs:178:13:178:22 | source(...) | main.rs:180:10:180:10 | b | $@ | main.rs:178:13:178:22 | source(...) | source(...) | -| main.rs:195:10:195:10 | b | main.rs:193:13:193:22 | source(...) | main.rs:195:10:195:10 | b | $@ | main.rs:193:13:193:22 | source(...) | source(...) | -| main.rs:214:10:214:10 | m | main.rs:212:24:212:33 | source(...) | main.rs:214:10:214:10 | m | $@ | main.rs:212:24:212:33 | source(...) | source(...) | -| main.rs:245:10:245:16 | c.value | main.rs:242:28:242:36 | source(...) | main.rs:245:10:245:16 | c.value | $@ | main.rs:242:28:242:36 | source(...) | source(...) | -| main.rs:255:10:255:16 | d.value | main.rs:252:28:252:36 | source(...) | main.rs:255:10:255:16 | d.value | $@ | main.rs:252:28:252:36 | source(...) | source(...) | -| main.rs:262:10:262:16 | a.value | main.rs:259:28:259:37 | source(...) | main.rs:262:10:262:16 | a.value | $@ | main.rs:259:28:259:37 | source(...) | source(...) | -| main.rs:267:10:267:16 | a.value | main.rs:265:28:265:37 | source(...) | main.rs:267:10:267:16 | a.value | $@ | main.rs:265:28:265:37 | source(...) | source(...) | -| main.rs:273:10:273:10 | c | main.rs:270:28:270:37 | source(...) | main.rs:273:10:273:10 | c | $@ | main.rs:270:28:270:37 | source(...) | source(...) | -| main.rs:277:10:277:10 | c | main.rs:275:28:275:37 | source(...) | main.rs:277:10:277:10 | c | $@ | main.rs:275:28:275:37 | source(...) | source(...) | -| main.rs:302:10:302:10 | c | main.rs:299:28:299:36 | source(...) | main.rs:302:10:302:10 | c | $@ | main.rs:299:28:299:36 | source(...) | source(...) | -| main.rs:307:10:307:10 | c | main.rs:305:28:305:37 | source(...) | main.rs:307:10:307:10 | c | $@ | main.rs:305:28:305:37 | source(...) | source(...) | -| main.rs:317:10:317:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:317:10:317:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | -| main.rs:323:10:323:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:323:10:323:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | -| main.rs:327:14:327:14 | c | main.rs:326:17:326:25 | source(...) | main.rs:327:14:327:14 | c | $@ | main.rs:326:17:326:25 | source(...) | source(...) | -| main.rs:335:10:335:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:335:10:335:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | -| main.rs:384:14:384:15 | n1 | main.rs:359:13:359:21 | source(...) | main.rs:384:14:384:15 | n1 | $@ | main.rs:359:13:359:21 | source(...) | source(...) | -| main.rs:388:14:388:15 | n2 | main.rs:359:13:359:21 | source(...) | main.rs:388:14:388:15 | n2 | $@ | main.rs:359:13:359:21 | source(...) | source(...) | -| main.rs:392:14:392:15 | n3 | main.rs:351:13:351:21 | source(...) | main.rs:392:14:392:15 | n3 | $@ | main.rs:351:13:351:21 | source(...) | source(...) | -| main.rs:396:14:396:15 | n4 | main.rs:371:13:371:22 | source(...) | main.rs:396:14:396:15 | n4 | $@ | main.rs:371:13:371:22 | source(...) | source(...) | -| main.rs:399:14:399:15 | n5 | main.rs:375:13:375:21 | source(...) | main.rs:399:14:399:15 | n5 | $@ | main.rs:375:13:375:21 | source(...) | source(...) | +| main.rs:105:14:105:14 | n | main.rs:171:13:171:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:171:13:171:21 | source(...) | source(...) | +| main.rs:105:14:105:14 | n | main.rs:203:13:203:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:203:13:203:21 | source(...) | source(...) | +| main.rs:127:14:127:14 | n | main.rs:165:13:165:22 | source(...) | main.rs:127:14:127:14 | n | $@ | main.rs:165:13:165:22 | source(...) | source(...) | +| main.rs:127:14:127:14 | n | main.rs:175:13:175:22 | source(...) | main.rs:127:14:127:14 | n | $@ | main.rs:175:13:175:22 | source(...) | source(...) | +| main.rs:149:10:149:10 | a | main.rs:134:13:134:22 | source(...) | main.rs:149:10:149:10 | a | $@ | main.rs:134:13:134:22 | source(...) | source(...) | +| main.rs:155:10:155:10 | a | main.rs:112:13:112:21 | source(...) | main.rs:155:10:155:10 | a | $@ | main.rs:112:13:112:21 | source(...) | source(...) | +| main.rs:159:10:159:10 | a | main.rs:134:13:134:22 | source(...) | main.rs:159:10:159:10 | a | $@ | main.rs:134:13:134:22 | source(...) | source(...) | +| main.rs:184:10:184:10 | b | main.rs:182:13:182:22 | source(...) | main.rs:184:10:184:10 | b | $@ | main.rs:182:13:182:22 | source(...) | source(...) | +| main.rs:191:10:191:10 | b | main.rs:189:13:189:21 | source(...) | main.rs:191:10:191:10 | b | $@ | main.rs:189:13:189:21 | source(...) | source(...) | +| main.rs:196:10:196:10 | b | main.rs:194:13:194:22 | source(...) | main.rs:196:10:196:10 | b | $@ | main.rs:194:13:194:22 | source(...) | source(...) | +| main.rs:211:10:211:10 | b | main.rs:209:13:209:22 | source(...) | main.rs:211:10:211:10 | b | $@ | main.rs:209:13:209:22 | source(...) | source(...) | +| main.rs:230:10:230:10 | m | main.rs:228:24:228:33 | source(...) | main.rs:230:10:230:10 | m | $@ | main.rs:228:24:228:33 | source(...) | source(...) | +| main.rs:261:10:261:16 | c.value | main.rs:258:28:258:36 | source(...) | main.rs:261:10:261:16 | c.value | $@ | main.rs:258:28:258:36 | source(...) | source(...) | +| main.rs:271:10:271:16 | d.value | main.rs:268:28:268:36 | source(...) | main.rs:271:10:271:16 | d.value | $@ | main.rs:268:28:268:36 | source(...) | source(...) | +| main.rs:278:10:278:16 | a.value | main.rs:275:28:275:37 | source(...) | main.rs:278:10:278:16 | a.value | $@ | main.rs:275:28:275:37 | source(...) | source(...) | +| main.rs:283:10:283:16 | a.value | main.rs:281:28:281:37 | source(...) | main.rs:283:10:283:16 | a.value | $@ | main.rs:281:28:281:37 | source(...) | source(...) | +| main.rs:289:10:289:10 | c | main.rs:286:28:286:37 | source(...) | main.rs:289:10:289:10 | c | $@ | main.rs:286:28:286:37 | source(...) | source(...) | +| main.rs:293:10:293:10 | c | main.rs:291:28:291:37 | source(...) | main.rs:293:10:293:10 | c | $@ | main.rs:291:28:291:37 | source(...) | source(...) | +| main.rs:322:10:322:10 | c | main.rs:319:28:319:36 | source(...) | main.rs:322:10:322:10 | c | $@ | main.rs:319:28:319:36 | source(...) | source(...) | +| main.rs:327:10:327:10 | c | main.rs:325:28:325:37 | source(...) | main.rs:327:10:327:10 | c | $@ | main.rs:325:28:325:37 | source(...) | source(...) | +| main.rs:337:10:337:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:337:10:337:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:343:10:343:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:343:10:343:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:347:14:347:14 | c | main.rs:346:17:346:25 | source(...) | main.rs:347:14:347:14 | c | $@ | main.rs:346:17:346:25 | source(...) | source(...) | +| main.rs:355:10:355:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:355:10:355:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:404:14:404:15 | n1 | main.rs:379:13:379:21 | source(...) | main.rs:404:14:404:15 | n1 | $@ | main.rs:379:13:379:21 | source(...) | source(...) | +| main.rs:408:14:408:15 | n2 | main.rs:379:13:379:21 | source(...) | main.rs:408:14:408:15 | n2 | $@ | main.rs:379:13:379:21 | source(...) | source(...) | +| main.rs:412:14:412:15 | n3 | main.rs:371:13:371:21 | source(...) | main.rs:412:14:412:15 | n3 | $@ | main.rs:371:13:371:21 | source(...) | source(...) | +| main.rs:416:14:416:15 | n4 | main.rs:391:13:391:22 | source(...) | main.rs:416:14:416:15 | n4 | $@ | main.rs:391:13:391:22 | source(...) | source(...) | +| main.rs:419:14:419:15 | n5 | main.rs:395:13:395:21 | source(...) | main.rs:419:14:419:15 | n5 | $@ | main.rs:395:13:395:21 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/global/main.rs b/rust/ql/test/library-tests/dataflow/global/main.rs index d84fdc62999..bd910c03b42 100644 --- a/rust/ql/test/library-tests/dataflow/global/main.rs +++ b/rust/ql/test/library-tests/dataflow/global/main.rs @@ -106,11 +106,19 @@ impl MyFlag { } fn get_data(self) -> i64 { - if self.flag { 0 } else { source(2) } + if self.flag { + 0 + } else { + source(2) + } } fn data_through(self, n: i64) -> i64 { - if self.flag { 0 } else { n } + if self.flag { + 0 + } else { + n + } } } @@ -120,11 +128,19 @@ impl MyTrait for MyFlag { } fn get_data_trait(self) -> i64 { - if self.flag { 0 } else { source(21) } + if self.flag { + 0 + } else { + source(21) + } } fn data_through_trait(self, n: i64) -> i64 { - if self.flag { 0 } else { n } + if self.flag { + 0 + } else { + n + } } } @@ -275,6 +291,10 @@ fn test_operator_overloading() { let a = MyInt { value: source(28) }; let c = *a; sink(c); // $ hasValueFlow=28 + + let a = MyInt { value: source(29) }; + let c = a.min(1042); + sink(c); // $ MISSING: hasValueFlow=29 } trait MyTrait2 { diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index 9170332ea25..fa2d58f5a3a 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -25,112 +25,114 @@ | main.rs:86:13:86:27 | pass_through(...) | main.rs:82:5:84:5 | fn pass_through | | main.rs:87:5:87:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:105:9:105:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:109:35:109:43 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:119:9:119:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:123:35:123:44 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait | -| main.rs:133:5:133:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:138:13:138:25 | mn.get_data() | main.rs:108:5:110:5 | fn get_data | -| main.rs:139:5:139:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait | -| main.rs:143:5:143:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:145:5:145:60 | data_out_of_method_trait_dispatch(...) | main.rs:131:1:134:1 | fn data_out_of_method_trait_dispatch | -| main.rs:149:13:149:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:150:5:150:22 | x.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait | -| main.rs:155:13:155:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:156:5:156:17 | mn.data_in(...) | main.rs:104:5:106:5 | fn data_in | -| main.rs:159:13:159:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:160:5:160:23 | mn.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait | -| main.rs:162:5:162:64 | data_in_to_method_call_trait_dispatch(...) | main.rs:148:1:151:1 | fn data_in_to_method_call_trait_dispatch | -| main.rs:166:13:166:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait | -| main.rs:168:5:168:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:173:13:173:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:112:5:114:5 | fn data_through | -| main.rs:175:5:175:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:178:13:178:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait | -| main.rs:180:5:180:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:182:5:182:61 | data_through_method_trait_dispatch(...) | main.rs:165:1:169:1 | fn data_through_method_trait_dispatch | -| main.rs:187:13:187:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:188:5:188:26 | ...::data_in(...) | main.rs:104:5:106:5 | fn data_in | -| main.rs:193:13:193:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:112:5:114:5 | fn data_through | -| main.rs:195:5:195:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:212:13:212:34 | ...::new(...) | main.rs:205:5:208:5 | fn new | -| main.rs:212:24:212:33 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:214:5:214:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:236:11:236:15 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:236:11:236:15 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:242:28:242:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:244:13:244:17 | ... + ... | main.rs:220:5:223:5 | fn add | -| main.rs:245:5:245:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:248:28:248:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:249:13:249:17 | ... + ... | main.rs:220:5:223:5 | fn add | -| main.rs:250:5:250:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:252:28:252:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:254:13:254:20 | a.add(...) | main.rs:220:5:223:5 | fn add | -| main.rs:255:5:255:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:259:28:259:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:261:5:261:36 | ...::mul_assign(...) | main.rs:227:5:229:5 | fn mul_assign | -| main.rs:262:5:262:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:265:28:265:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:266:5:266:10 | ... *= ... | main.rs:227:5:229:5 | fn mul_assign | -| main.rs:267:5:267:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:270:28:270:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:272:13:272:29 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:272:13:272:29 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:272:14:272:29 | ...::deref(...) | main.rs:235:5:237:5 | fn deref | -| main.rs:273:5:273:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:112:13:112:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:127:9:127:15 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:134:13:134:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:148:13:148:30 | x.get_data_trait() | main.rs:130:5:136:5 | fn get_data_trait | +| main.rs:149:5:149:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:154:13:154:25 | mn.get_data() | main.rs:108:5:114:5 | fn get_data | +| main.rs:155:5:155:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:158:13:158:31 | mn.get_data_trait() | main.rs:130:5:136:5 | fn get_data_trait | +| main.rs:159:5:159:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:161:5:161:60 | data_out_of_method_trait_dispatch(...) | main.rs:147:1:150:1 | fn data_out_of_method_trait_dispatch | +| main.rs:165:13:165:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:166:5:166:22 | x.data_in_trait(...) | main.rs:126:5:128:5 | fn data_in_trait | +| main.rs:171:13:171:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:172:5:172:17 | mn.data_in(...) | main.rs:104:5:106:5 | fn data_in | +| main.rs:175:13:175:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:176:5:176:23 | mn.data_in_trait(...) | main.rs:126:5:128:5 | fn data_in_trait | +| main.rs:178:5:178:64 | data_in_to_method_call_trait_dispatch(...) | main.rs:164:1:167:1 | fn data_in_to_method_call_trait_dispatch | +| main.rs:182:13:182:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:183:13:183:35 | x.data_through_trait(...) | main.rs:138:5:144:5 | fn data_through_trait | +| main.rs:184:5:184:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:189:13:189:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:190:13:190:30 | mn.data_through(...) | main.rs:116:5:122:5 | fn data_through | +| main.rs:191:5:191:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:194:13:194:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | main.rs:138:5:144:5 | fn data_through_trait | +| main.rs:196:5:196:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:198:5:198:61 | data_through_method_trait_dispatch(...) | main.rs:181:1:185:1 | fn data_through_method_trait_dispatch | +| main.rs:203:13:203:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:204:5:204:26 | ...::data_in(...) | main.rs:104:5:106:5 | fn data_in | +| main.rs:209:13:209:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:210:13:210:39 | ...::data_through(...) | main.rs:116:5:122:5 | fn data_through | +| main.rs:211:5:211:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:228:13:228:34 | ...::new(...) | main.rs:221:5:224:5 | fn new | +| main.rs:228:24:228:33 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:230:5:230:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:252:11:252:15 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:252:11:252:15 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:258:28:258:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:260:13:260:17 | ... + ... | main.rs:236:5:239:5 | fn add | +| main.rs:261:5:261:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:264:28:264:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:265:13:265:17 | ... + ... | main.rs:236:5:239:5 | fn add | +| main.rs:266:5:266:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:268:28:268:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:270:13:270:20 | a.add(...) | main.rs:236:5:239:5 | fn add | +| main.rs:271:5:271:17 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:275:28:275:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:276:13:276:14 | * ... | main.rs:235:5:237:5 | fn deref | -| main.rs:277:5:277:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:299:28:299:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:301:30:301:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self | -| main.rs:302:5:302:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:305:28:305:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:306:30:306:56 | ...::take_second(...) | main.rs:293:5:295:5 | fn take_second | -| main.rs:307:5:307:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:310:28:310:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:311:30:311:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self | -| main.rs:312:5:312:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:316:13:316:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:317:5:317:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:322:13:322:26 | async_source(...) | main.rs:315:1:319:1 | fn async_source | -| main.rs:323:5:323:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:326:17:326:25 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:327:9:327:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:330:5:330:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:334:13:334:55 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | -| main.rs:334:41:334:54 | async_source(...) | main.rs:315:1:319:1 | fn async_source | -| main.rs:335:5:335:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:337:5:337:62 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | -| main.rs:337:33:337:61 | test_async_await_async_part(...) | main.rs:321:1:331:1 | fn test_async_await_async_part | -| main.rs:347:13:347:29 | self.get_number() | main.rs:358:9:360:9 | fn get_number | -| main.rs:347:13:347:29 | self.get_number() | main.rs:366:9:368:9 | fn get_number | -| main.rs:347:13:347:33 | ... * ... | {EXTERNAL LOCATION} | fn mul | -| main.rs:351:13:351:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:359:13:359:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:371:13:371:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:375:13:375:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:383:18:383:38 | t.get_double_number() | main.rs:346:9:348:9 | fn get_double_number | -| main.rs:384:9:384:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:387:18:387:50 | ...::get_double_number(...) | main.rs:346:9:348:9 | fn get_double_number | -| main.rs:388:9:388:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:391:18:391:37 | ...::get_default(...) | main.rs:350:9:352:9 | fn get_default | -| main.rs:392:9:392:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:395:18:395:38 | i.get_double_number() | main.rs:370:9:372:9 | fn get_double_number | -| main.rs:396:9:396:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:398:18:398:41 | ...::get_default(...) | main.rs:374:9:376:9 | fn get_default | -| main.rs:399:9:399:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:404:5:404:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call | -| main.rs:405:5:405:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 | -| main.rs:406:5:406:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 | -| main.rs:407:5:407:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call | -| main.rs:408:5:408:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call | -| main.rs:409:5:409:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function | -| main.rs:411:5:411:24 | data_out_of_method(...) | main.rs:136:1:146:1 | fn data_out_of_method | -| main.rs:412:5:412:28 | data_in_to_method_call(...) | main.rs:153:1:163:1 | fn data_in_to_method_call | -| main.rs:413:5:413:25 | data_through_method(...) | main.rs:171:1:183:1 | fn data_through_method | -| main.rs:415:5:415:31 | test_operator_overloading(...) | main.rs:240:1:278:1 | fn test_operator_overloading | -| main.rs:416:5:416:22 | test_async_await(...) | main.rs:333:1:338:1 | fn test_async_await | +| main.rs:277:5:277:36 | ...::mul_assign(...) | main.rs:243:5:245:5 | fn mul_assign | +| main.rs:278:5:278:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:281:28:281:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:282:5:282:10 | ... *= ... | main.rs:243:5:245:5 | fn mul_assign | +| main.rs:283:5:283:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:286:28:286:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:288:13:288:29 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:288:13:288:29 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:288:14:288:29 | ...::deref(...) | main.rs:251:5:253:5 | fn deref | +| main.rs:289:5:289:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:291:28:291:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:292:13:292:14 | * ... | main.rs:251:5:253:5 | fn deref | +| main.rs:293:5:293:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:295:28:295:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:297:5:297:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:319:28:319:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:321:30:321:54 | ...::take_self(...) | main.rs:309:5:311:5 | fn take_self | +| main.rs:322:5:322:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:325:28:325:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:326:30:326:56 | ...::take_second(...) | main.rs:313:5:315:5 | fn take_second | +| main.rs:327:5:327:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:330:28:330:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:331:30:331:54 | ...::take_self(...) | main.rs:309:5:311:5 | fn take_self | +| main.rs:332:5:332:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:336:13:336:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:337:5:337:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:342:13:342:26 | async_source(...) | main.rs:335:1:339:1 | fn async_source | +| main.rs:343:5:343:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:346:17:346:25 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:347:9:347:15 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:350:5:350:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:354:13:354:55 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | +| main.rs:354:41:354:54 | async_source(...) | main.rs:335:1:339:1 | fn async_source | +| main.rs:355:5:355:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:357:5:357:62 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | +| main.rs:357:33:357:61 | test_async_await_async_part(...) | main.rs:341:1:351:1 | fn test_async_await_async_part | +| main.rs:367:13:367:29 | self.get_number() | main.rs:378:9:380:9 | fn get_number | +| main.rs:367:13:367:29 | self.get_number() | main.rs:386:9:388:9 | fn get_number | +| main.rs:367:13:367:33 | ... * ... | {EXTERNAL LOCATION} | fn mul | +| main.rs:371:13:371:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:379:13:379:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:391:13:391:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:395:13:395:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:403:18:403:38 | t.get_double_number() | main.rs:366:9:368:9 | fn get_double_number | +| main.rs:404:9:404:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:407:18:407:50 | ...::get_double_number(...) | main.rs:366:9:368:9 | fn get_double_number | +| main.rs:408:9:408:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:411:18:411:37 | ...::get_default(...) | main.rs:370:9:372:9 | fn get_default | +| main.rs:412:9:412:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:415:18:415:38 | i.get_double_number() | main.rs:390:9:392:9 | fn get_double_number | +| main.rs:416:9:416:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:418:18:418:41 | ...::get_default(...) | main.rs:394:9:396:9 | fn get_default | +| main.rs:419:9:419:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:424:5:424:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call | +| main.rs:425:5:425:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 | +| main.rs:426:5:426:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 | +| main.rs:427:5:427:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call | +| main.rs:428:5:428:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call | +| main.rs:429:5:429:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function | +| main.rs:431:5:431:24 | data_out_of_method(...) | main.rs:152:1:162:1 | fn data_out_of_method | +| main.rs:432:5:432:28 | data_in_to_method_call(...) | main.rs:169:1:179:1 | fn data_in_to_method_call | +| main.rs:433:5:433:25 | data_through_method(...) | main.rs:187:1:199:1 | fn data_through_method | +| main.rs:435:5:435:31 | test_operator_overloading(...) | main.rs:256:1:298:1 | fn test_operator_overloading | +| main.rs:436:5:436:22 | test_async_await(...) | main.rs:353:1:358:1 | fn test_async_await | diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index d8d2a909d9e..043809e6339 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -1,49 +1,52 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | | 2 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 3 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 4 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 5 | Summary: ::into_pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 6 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | -| 7 | Summary: ::pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; value | -| 8 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | -| 9 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | -| 10 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 11 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | -| 12 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | -| 13 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | -| 14 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 15 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 16 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 17 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 18 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 19 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | -| 20 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | +| 3 | Summary: <_ as core::cmp::Ord>::clamp; Argument[self,0,1]; ReturnValue; value | +| 4 | Summary: <_ as core::cmp::Ord>::max; Argument[self,0]; ReturnValue; value | +| 5 | Summary: <_ as core::cmp::Ord>::min; Argument[self,0]; ReturnValue; value | +| 6 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 7 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 8 | Summary: ::into_pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 9 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | +| 10 | Summary: ::pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; value | +| 11 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | +| 12 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | +| 13 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 14 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | +| 15 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 16 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | +| 17 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 18 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 19 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 20 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 21 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 22 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | +| 23 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:10 | a [Some] | provenance | | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | | main.rs:12:13:12:28 | Some(...) [Some] | main.rs:12:9:12:9 | a [Some] | provenance | | | main.rs:12:18:12:27 | source(...) | main.rs:12:13:12:28 | Some(...) [Some] | provenance | | -| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:10 | +| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:13 | | main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:10 | b [Some] | provenance | | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:2 | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:10 | +| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:13 | | main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:10 | a [Ok] | provenance | | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | -| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:18 | +| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:21 | | main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:10 | b [Ok] | provenance | | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | MaD:2 | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | -| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:18 | +| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:21 | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | | main.rs:26:9:26:9 | a | main.rs:28:13:28:13 | a | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | | main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:2 | -| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:8 | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:11 | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | main.rs:44:26:44:29 | self [&ref, Wrapper] | provenance | | | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | provenance | | @@ -68,19 +71,19 @@ edges | main.rs:66:22:66:31 | source(...) | main.rs:66:17:66:32 | Some(...) [Some] | provenance | | | main.rs:67:13:67:13 | z [Some, tuple.1] | main.rs:68:15:68:15 | z [Some, tuple.1] | provenance | | | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | main.rs:67:13:67:13 | z [Some, tuple.1] | provenance | | -| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:11 | +| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:14 | | main.rs:68:15:68:15 | z [Some, tuple.1] | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | provenance | | | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | main.rs:69:18:69:23 | TuplePat [tuple.1] | provenance | | | main.rs:69:18:69:23 | TuplePat [tuple.1] | main.rs:69:22:69:22 | m | provenance | | | main.rs:69:22:69:22 | m | main.rs:71:22:71:22 | m | provenance | | | main.rs:79:13:79:13 | b | main.rs:80:14:80:14 | b | provenance | | | main.rs:79:17:79:47 | a.map_or(...) | main.rs:79:13:79:13 | b | provenance | | -| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:9 | -| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:3 | -| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:4 | +| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:12 | +| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:6 | +| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:7 | | main.rs:92:29:92:29 | [post] y [&ref] | main.rs:93:33:93:33 | y [&ref] | provenance | | -| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:20 | -| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:19 | +| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:23 | +| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:22 | | main.rs:108:13:108:17 | mut i | main.rs:109:34:109:34 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:110:33:110:33 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:111:47:111:47 | i | provenance | | @@ -90,46 +93,73 @@ edges | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | main.rs:114:15:114:18 | pin1 [Pin, &ref] | provenance | | | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | main.rs:115:31:115:34 | pin1 [Pin, &ref] | provenance | | | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | provenance | | -| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:16 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:19 | | main.rs:109:34:109:34 | i | main.rs:109:33:109:34 | &i [&ref] | provenance | | | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | provenance | | | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | provenance | | -| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | provenance | MaD:7 | +| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | provenance | MaD:10 | | main.rs:111:13:111:20 | mut pin3 [Pin, Box(0)] | main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | provenance | | | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | main.rs:111:13:111:20 | mut pin3 [Pin, Box(0)] | provenance | | -| main.rs:111:38:111:48 | ...::new(...) [Box(0)] | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | provenance | MaD:5 | -| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | provenance | MaD:6 | +| main.rs:111:38:111:48 | ...::new(...) [Box(0)] | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | provenance | MaD:8 | +| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | provenance | MaD:9 | | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | main.rs:118:15:118:18 | pin4 [Pin, &ref] | provenance | | -| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:17 | +| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:20 | | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | provenance | | | main.rs:112:24:112:27 | mut pinned | main.rs:112:24:112:27 | pinned | provenance | | | main.rs:112:24:112:27 | pinned | main.rs:112:24:112:27 | &mut pinned [&ref] | provenance | | -| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:13 | +| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:16 | | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | main.rs:115:14:115:35 | * ... | provenance | MaD:1 | -| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:14 | -| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:12 | -| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:12 | -| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:13 | +| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:17 | +| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:15 | +| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:15 | +| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:16 | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:123:34:123:35 | ms [MyStruct] | provenance | | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:127:14:127:15 | ms [MyStruct] | provenance | | | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | main.rs:122:13:122:18 | mut ms [MyStruct] | provenance | | | main.rs:122:38:122:47 | source(...) | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | provenance | | | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | provenance | | -| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:16 | +| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:19 | | main.rs:123:34:123:35 | ms [MyStruct] | main.rs:123:33:123:35 | &ms [&ref, MyStruct] | provenance | | | main.rs:127:14:127:15 | ms [MyStruct] | main.rs:127:14:127:19 | ms.val | provenance | | | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | main.rs:129:14:129:38 | ... .val | provenance | | -| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:14 | +| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:17 | | main.rs:136:13:136:18 | mut ms [MyStruct] | main.rs:137:44:137:45 | ms [MyStruct] | provenance | | | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | main.rs:136:13:136:18 | mut ms [MyStruct] | provenance | | | main.rs:136:38:136:47 | source(...) | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | provenance | | | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | provenance | | -| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:17 | +| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:20 | | main.rs:137:44:137:45 | ms [MyStruct] | main.rs:137:43:137:45 | &ms [&ref, MyStruct] | provenance | | | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | main.rs:139:14:139:48 | ... .val | provenance | | -| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:15 | +| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:18 | +| main.rs:153:9:153:9 | a | main.rs:155:13:155:13 | a | provenance | | +| main.rs:153:13:153:22 | source(...) | main.rs:153:9:153:9 | a | provenance | | +| main.rs:154:9:154:9 | b | main.rs:155:19:155:19 | b | provenance | | +| main.rs:154:13:154:22 | source(...) | main.rs:154:9:154:9 | b | provenance | | +| main.rs:155:9:155:9 | c | main.rs:156:10:156:10 | c | provenance | | +| main.rs:155:13:155:13 | a | main.rs:155:13:155:20 | a.min(...) | provenance | MaD:5 | +| main.rs:155:13:155:20 | a.min(...) | main.rs:155:9:155:9 | c | provenance | | +| main.rs:155:19:155:19 | b | main.rs:155:13:155:20 | a.min(...) | provenance | MaD:5 | +| main.rs:158:9:158:9 | d | main.rs:160:13:160:13 | d | provenance | | +| main.rs:158:13:158:22 | source(...) | main.rs:158:9:158:9 | d | provenance | | +| main.rs:159:9:159:9 | e | main.rs:160:19:160:19 | e | provenance | | +| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | e | provenance | | +| main.rs:160:9:160:9 | f | main.rs:161:10:161:10 | f | provenance | | +| main.rs:160:13:160:13 | d | main.rs:160:13:160:20 | d.max(...) | provenance | MaD:4 | +| main.rs:160:13:160:20 | d.max(...) | main.rs:160:9:160:9 | f | provenance | | +| main.rs:160:19:160:19 | e | main.rs:160:13:160:20 | d.max(...) | provenance | MaD:4 | +| main.rs:163:9:163:9 | g | main.rs:166:13:166:13 | g | provenance | | +| main.rs:163:13:163:22 | source(...) | main.rs:163:9:163:9 | g | provenance | | +| main.rs:164:9:164:9 | h | main.rs:166:21:166:21 | h | provenance | | +| main.rs:164:13:164:22 | source(...) | main.rs:164:9:164:9 | h | provenance | | +| main.rs:165:9:165:9 | i | main.rs:166:24:166:24 | i | provenance | | +| main.rs:165:13:165:22 | source(...) | main.rs:165:9:165:9 | i | provenance | | +| main.rs:166:9:166:9 | j | main.rs:167:10:167:10 | j | provenance | | +| main.rs:166:13:166:13 | g | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | +| main.rs:166:13:166:25 | g.clamp(...) | main.rs:166:9:166:9 | j | provenance | | +| main.rs:166:21:166:21 | h | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | +| main.rs:166:24:166:24 | i | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | @@ -249,6 +279,36 @@ nodes | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | semmle.label | ...::into_inner_unchecked(...) [&ref, MyStruct] | | main.rs:139:14:139:48 | ... .val | semmle.label | ... .val | | main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | semmle.label | pin5 [Pin, &ref, MyStruct] | +| main.rs:153:9:153:9 | a | semmle.label | a | +| main.rs:153:13:153:22 | source(...) | semmle.label | source(...) | +| main.rs:154:9:154:9 | b | semmle.label | b | +| main.rs:154:13:154:22 | source(...) | semmle.label | source(...) | +| main.rs:155:9:155:9 | c | semmle.label | c | +| main.rs:155:13:155:13 | a | semmle.label | a | +| main.rs:155:13:155:20 | a.min(...) | semmle.label | a.min(...) | +| main.rs:155:19:155:19 | b | semmle.label | b | +| main.rs:156:10:156:10 | c | semmle.label | c | +| main.rs:158:9:158:9 | d | semmle.label | d | +| main.rs:158:13:158:22 | source(...) | semmle.label | source(...) | +| main.rs:159:9:159:9 | e | semmle.label | e | +| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | +| main.rs:160:9:160:9 | f | semmle.label | f | +| main.rs:160:13:160:13 | d | semmle.label | d | +| main.rs:160:13:160:20 | d.max(...) | semmle.label | d.max(...) | +| main.rs:160:19:160:19 | e | semmle.label | e | +| main.rs:161:10:161:10 | f | semmle.label | f | +| main.rs:163:9:163:9 | g | semmle.label | g | +| main.rs:163:13:163:22 | source(...) | semmle.label | source(...) | +| main.rs:164:9:164:9 | h | semmle.label | h | +| main.rs:164:13:164:22 | source(...) | semmle.label | source(...) | +| main.rs:165:9:165:9 | i | semmle.label | i | +| main.rs:165:13:165:22 | source(...) | semmle.label | source(...) | +| main.rs:166:9:166:9 | j | semmle.label | j | +| main.rs:166:13:166:13 | g | semmle.label | g | +| main.rs:166:13:166:25 | g.clamp(...) | semmle.label | g.clamp(...) | +| main.rs:166:21:166:21 | h | semmle.label | h | +| main.rs:166:24:166:24 | i | semmle.label | i | +| main.rs:167:10:167:10 | j | semmle.label | j | subpaths | main.rs:53:17:53:17 | w [Wrapper] | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | testFailures @@ -273,3 +333,10 @@ testFailures | main.rs:127:14:127:19 | ms.val | main.rs:122:38:122:47 | source(...) | main.rs:127:14:127:19 | ms.val | $@ | main.rs:122:38:122:47 | source(...) | source(...) | | main.rs:129:14:129:38 | ... .val | main.rs:122:38:122:47 | source(...) | main.rs:129:14:129:38 | ... .val | $@ | main.rs:122:38:122:47 | source(...) | source(...) | | main.rs:139:14:139:48 | ... .val | main.rs:136:38:136:47 | source(...) | main.rs:139:14:139:48 | ... .val | $@ | main.rs:136:38:136:47 | source(...) | source(...) | +| main.rs:156:10:156:10 | c | main.rs:153:13:153:22 | source(...) | main.rs:156:10:156:10 | c | $@ | main.rs:153:13:153:22 | source(...) | source(...) | +| main.rs:156:10:156:10 | c | main.rs:154:13:154:22 | source(...) | main.rs:156:10:156:10 | c | $@ | main.rs:154:13:154:22 | source(...) | source(...) | +| main.rs:161:10:161:10 | f | main.rs:158:13:158:22 | source(...) | main.rs:161:10:161:10 | f | $@ | main.rs:158:13:158:22 | source(...) | source(...) | +| main.rs:161:10:161:10 | f | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:10 | f | $@ | main.rs:159:13:159:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:163:13:163:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:163:13:163:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:164:13:164:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:164:13:164:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:165:13:165:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:165:13:165:22 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index eb5a8de5256..09943a81b8a 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -149,10 +149,29 @@ fn test_pin() { } } +fn test_ord() { + let a = source(50); + let b = source(51); + let c = a.min(b); + sink(c); // $ hasValueFlow=50 hasValueFlow=51 + + let d = source(52); + let e = source(53); + let f = d.max(e); + sink(f); // $ hasValueFlow=52 hasValueFlow=53 + + let g = source(54); + let h = source(55); + let i = source(56); + let j = g.clamp(h, i); + sink(j); // $ hasValueFlow=54 hasValueFlow=55 hasValueFlow=56 +} + fn main() { option_clone(); result_clone(); i64_clone(); my_clone::wrapper_clone(); test_pin(); + test_ord(); } diff --git a/rust/ql/test/library-tests/dataflow/models/models.expected b/rust/ql/test/library-tests/dataflow/models/models.expected index 90133f0e6a9..a957fbf627d 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.expected +++ b/rust/ql/test/library-tests/dataflow/models/models.expected @@ -7,7 +7,7 @@ models | 6 | Source: main::enum_source; ReturnValue.Field[main::MyFieldEnum::D::field_d]; test-source | | 7 | Source: main::simple_source; ReturnValue; test-source | | 8 | Source: main::source_into_function::pass_source; Argument[1].Parameter[0]; test-source | -| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self]; ReturnValue; value | +| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self,0]; ReturnValue; value | | 10 | Summary: <_ as core::cmp::PartialOrd>::lt; Argument[self].Reference; ReturnValue; taint | | 11 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | | 12 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value | diff --git a/rust/ql/test/library-tests/dataflow/models/models.ext.yml b/rust/ql/test/library-tests/dataflow/models/models.ext.yml index 52342e88022..7a014c17aba 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.ext.yml +++ b/rust/ql/test/library-tests/dataflow/models/models.ext.yml @@ -33,5 +33,4 @@ extensions: - ["main::apply", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] - ["main::apply", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["main::get_async_number", "Argument[0]", "ReturnValue.Future", "value", "manual"] - - ["<_ as core::cmp::Ord>::max", "Argument[self]", "ReturnValue", "value", "manual"] - ["<_ as core::cmp::PartialOrd>::lt", "Argument[self].Reference", "ReturnValue", "taint", "manual"] From 8e2d9d50b7e4a65477b5bb1b963ca8e88fe5497a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 15 Dec 2025 13:04:01 +0100 Subject: [PATCH 151/194] Rust: Add type inference test --- .../PathResolutionConsistency.expected | 2 +- .../test/library-tests/type-inference/main.rs | 12 + .../type-inference/type-inference.expected | 292 ++++++++++-------- 3 files changed, 180 insertions(+), 126 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index d2807602e2f..028bce187bc 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -30,6 +30,6 @@ multipleResolvedTargets | main.rs:2642:13:2642:31 | ...::from(...) | | main.rs:2643:13:2643:31 | ...::from(...) | | main.rs:2644:13:2644:31 | ...::from(...) | -| main.rs:3067:13:3067:17 | x.f() | +| main.rs:3073:13:3073:17 | x.f() | | pattern_matching.rs:273:13:273:27 | * ... | | pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 466733cf47c..f8f7ea60cc4 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -3038,7 +3038,13 @@ mod context_typed { mod literal_overlap { trait MyTrait { + // MyTrait::f fn f(self) -> Self; + + // MyTrait::g + fn g(&self, other: &Self) -> &Self { + self.f() // $ target=Reff + } } impl MyTrait for i32 { @@ -3067,6 +3073,12 @@ mod literal_overlap { x = x.f(); // $ target=usizef $ SPURIOUS: target=i32f x } + + fn g() { + let x: usize = 0; + let y = &1; + let z = x.g(y); // $ target=MyTrait::g + } } mod blanket_impl; diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 6afbbf6d43f..056ea5eaf72 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -3524,62 +3524,76 @@ inferCertainType | main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | | main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | | main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3040:5:3042:5 | Self [trait MyTrait] | -| main.rs:3046:14:3046:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3046:28:3048:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3047:13:3047:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3053:14:3053:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3053:28:3055:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3054:13:3054:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3060:14:3060:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3060:14:3060:17 | SelfParam | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3060:28:3062:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3060:28:3062:9 | { ... } | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3061:13:3061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3061:13:3061:16 | self | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3065:25:3069:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3077:11:3112:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3078:5:3078:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3079:5:3079:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:5:3080:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:20:3080:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:41:3080:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3081:5:3081:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3082:5:3082:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3083:5:3083:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3084:5:3084:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3085:5:3085:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3086:5:3086:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3087:5:3087:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3088:5:3088:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3089:5:3089:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3091:5:3091:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3092:5:3092:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3097:5:3097:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3110:5:3110:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3110:5:3110:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3110:5:3110:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3110:16:3110:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3111:5:3111:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3042:14:3042:17 | SelfParam | | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:14:3045:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3045:14:3045:18 | SelfParam | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:21:3045:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3045:21:3045:25 | other | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:44:3047:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3045:44:3047:9 | { ... } | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3046:13:3046:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3046:13:3046:16 | self | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3052:14:3052:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3052:28:3054:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3053:13:3053:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3059:14:3059:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3059:28:3061:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3066:14:3066:17 | SelfParam | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3066:28:3068:9 | { ... } | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:16 | self | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3071:25:3075:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3077:12:3081:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3078:13:3078:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3079:13:3079:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3079:17:3079:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3080:17:3080:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:21:3080:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3089:11:3124:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3091:5:3091:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:5:3092:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:20:3092:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:41:3092:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3093:5:3093:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3109:5:3109:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3122:5:3122:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3122:5:3122:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | +| main.rs:3122:5:3122:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3122:16:3122:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -10991,75 +11005,103 @@ inferType | main.rs:3035:9:3035:9 | x | T | {EXTERNAL LOCATION} | i32 | | main.rs:3035:9:3035:17 | x.push(...) | | {EXTERNAL LOCATION} | () | | main.rs:3035:16:3035:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3040:5:3042:5 | Self [trait MyTrait] | -| main.rs:3046:14:3046:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3046:28:3048:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3047:13:3047:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3053:14:3053:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3053:28:3055:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3054:13:3054:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3060:14:3060:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3060:14:3060:17 | SelfParam | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3060:28:3062:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3060:28:3062:9 | { ... } | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3061:13:3061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3061:13:3061:16 | self | TRef | main.rs:3058:10:3058:10 | T | -| main.rs:3065:25:3069:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:17:3066:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:21:3066:21 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:9:3067:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:9:3067:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:17 | x.f() | | {EXTERNAL LOCATION} | usize | -| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3068:9:3068:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3077:11:3112:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3078:5:3078:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3079:5:3079:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:5:3080:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:20:3080:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3080:41:3080:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3081:5:3081:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3082:5:3082:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3083:5:3083:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3084:5:3084:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3085:5:3085:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3086:5:3086:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3087:5:3087:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3088:5:3088:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3089:5:3089:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3091:5:3091:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3092:5:3092:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3097:5:3097:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3110:5:3110:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3110:5:3110:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3110:5:3110:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3110:16:3110:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3111:5:3111:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3042:14:3042:17 | SelfParam | | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:14:3045:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3045:14:3045:18 | SelfParam | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:21:3045:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3045:21:3045:25 | other | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3045:44:3047:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3045:44:3047:9 | { ... } | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3046:13:3046:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3046:13:3046:16 | self | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3046:13:3046:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:3046:13:3046:20 | self.f() | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | +| main.rs:3052:14:3052:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3052:28:3054:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3053:13:3053:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3059:14:3059:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3059:28:3061:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3066:14:3066:17 | SelfParam | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3066:28:3068:9 | { ... } | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3067:13:3067:16 | self | TRef | main.rs:3064:10:3064:10 | T | +| main.rs:3071:25:3075:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3072:17:3072:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3072:17:3072:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3072:21:3072:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3072:21:3072:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:9:3073:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:3073:13:3073:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:13:3073:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:13:3073:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:13:3073:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:3074:9:3074:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3074:9:3074:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3077:12:3081:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3078:13:3078:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3078:24:3078:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3078:24:3078:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3079:13:3079:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3079:13:3079:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3079:17:3079:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3079:17:3079:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3079:18:3079:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3080:13:3080:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:3080:13:3080:13 | z | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3080:13:3080:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3080:17:3080:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:17:3080:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:3080:17:3080:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3080:17:3080:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3080:21:3080:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3080:21:3080:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3089:11:3124:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3091:5:3091:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:5:3092:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:20:3092:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:41:3092:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3093:5:3093:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3109:5:3109:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3122:5:3122:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3122:5:3122:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | +| main.rs:3122:5:3122:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3122:16:3122:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From 3239afb2780d229b6c6e4b3aabf3a837c3eee2ae Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 12 Dec 2025 16:57:44 +0100 Subject: [PATCH 152/194] Rust: Also use specialized types when inferring types for calls --- .../codeql/rust/internal/TypeInference.qll | 471 +++++++++++------- .../type-inference/type-inference.expected | 6 +- 2 files changed, 298 insertions(+), 179 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index a6b2592a184..5f85db7056a 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1,6 +1,7 @@ /** Provides functionality for inferring types. */ private import codeql.util.Boolean +private import codeql.util.Option private import rust private import PathResolution private import Type @@ -234,6 +235,110 @@ private class NonMethodFunction extends Function { NonMethodFunction() { not this.hasSelfParam() } } +private module ImplOrTraitItemNodeOption = Option; + +private class ImplOrTraitItemNodeOption = ImplOrTraitItemNodeOption::Option; + +private class FunctionDeclaration extends Function { + /** Holds if this function is associated with `i`. */ + predicate isAssoc(ImplOrTraitItemNode i) { this = i.getASuccessor(_) } + + /** Holds if this is a free function. */ + predicate isFree() { not this = any(ImplOrTraitItemNode i).getAnAssocItem() } + + /** Holds if this function is valid for `i`. */ + predicate isDeclaration(ImplOrTraitItemNodeOption i) { + i.isNone() and + this.isFree() + or + this.isAssoc(i.asSome()) + } + + /** + * Holds if this function is valid for `i`. If `i` is a trait or `impl` block then + * this function must be declared directly inside `i`. + */ + predicate isDeclarationStrict(ImplOrTraitItemNodeOption i) { + i.isNone() and + this.isFree() + or + this = i.asSome().getAnAssocItem() + } + + TypeParameter getTypeParameter(ImplOrTraitItemNodeOption i, TypeParameterPosition ppos) { + this.isDeclaration(i) and + ( + typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) + or + typeParamMatchPosition(i.asSome().getTypeParam(_), result, ppos) + or + ppos.isImplicit() and result = TSelfTypeParameter(i.asSome()) + or + ppos.isImplicit() and + result.(AssociatedTypeTypeParameter).getTrait() = i.asSome() + or + ppos.isImplicit() and + this = result.(ImplTraitTypeTypeParameter).getFunction() + ) + } + + pragma[nomagic] + Type getParameterType(ImplOrTraitItemNodeOption i, FunctionPosition pos, TypePath path) { + this.isDeclaration(i) and + ( + not pos.isReturn() and + result = getAssocFunctionTypeAt(this, i.asSome(), pos, path) + or + i.isNone() and + exists(Param p | + p = this.getParam(pos.asPosition()) and + result = p.getTypeRepr().(TypeMention).resolveTypeAt(path) + ) + ) + } + + private Type resolveRetType(ImplOrTraitItemNodeOption i, TypePath path) { + this.isDeclaration(i) and + ( + exists(FunctionPosition pos | + result = getAssocFunctionTypeAt(this, i.asSome(), pos, path) and + pos.isReturn() + ) + or + i.isNone() and + result = getReturnTypeMention(this).resolveTypeAt(path) + ) + } + + Type getReturnType(ImplOrTraitItemNodeOption i, TypePath path) { + if this.isAsync() + then + this.isDeclaration(i) and + path.isEmpty() and + result = getFutureTraitType() + or + exists(TypePath suffix | + result = this.resolveRetType(i, suffix) and + path = TypePath::cons(getDynFutureOutputTypeParameter(), suffix) + ) + else result = this.resolveRetType(i, path) + } + + Type getDeclaredType(ImplOrTraitItemNodeOption i, FunctionPosition pos, TypePath path) { + result = this.getParameterType(i, pos, path) + or + pos.isReturn() and + result = this.getReturnType(i, path) + } + + string toStringExt(ImplOrTraitItemNode i) { + if this = i.getAnAssocItem() + then result = this.toString() + else + result = this + " [" + [i.(Impl).getSelfTy().toString(), i.(Trait).getName().toString()] + "]" + } +} + pragma[nomagic] private TypeMention getCallExprTypeMentionArgument(CallExpr ce, TypeArgumentPosition apos) { exists(Path p, int i | p = CallExprImpl::getFunctionPath(ce) | @@ -308,13 +413,12 @@ module CertainTypeInference { } pragma[nomagic] - private Type getCallExprType(CallExpr ce, Path p, Function f, TypePath tp) { - callResolvesTo(ce, p, f) and - result = - [ - f.(MethodCallMatchingInput::Declaration).getReturnType(tp), - f.(NonMethodCallMatchingInput::Declaration).getReturnType(tp) - ] + private Type getCallExprType(CallExpr ce, Path p, FunctionDeclaration f, TypePath path) { + exists(ImplOrTraitItemNodeOption i | + callResolvesTo(ce, p, f) and + result = f.getReturnType(i, path) and + f.isDeclarationStrict(i) + ) } pragma[nomagic] @@ -2084,62 +2188,34 @@ private module MethodResolution { private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSig { import FunctionPositionMatchingInput - final class Declaration extends Function { + private class MethodDeclaration extends Method, FunctionDeclaration { } + + private newtype TDeclaration = + MkDeclaration(ImplOrTraitItemNode i, MethodDeclaration m) { m.isAssoc(i) } + + final class Declaration extends MkDeclaration { + ImplOrTraitItemNode i_; + ImplOrTraitItemNodeOption somei; + MethodDeclaration m; + + Declaration() { + this = MkDeclaration(i_, m) and + somei.asSome() = i_ + } + + predicate isMethod(ImplOrTraitItemNode i, Method method) { this = MkDeclaration(i, method) } + TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - or - exists(ImplOrTraitItemNode i | this = i.getAnAssocItem() | - typeParamMatchPosition(i.getTypeParam(_), result, ppos) - or - ppos.isImplicit() and result = TSelfTypeParameter(i) - or - ppos.isImplicit() and - result.(AssociatedTypeTypeParameter).getTrait() = i - ) - or - ppos.isImplicit() and - this = result.(ImplTraitTypeTypeParameter).getFunction() - } - - pragma[nomagic] - Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(Param p, int i | - p = this.getParam(i) and - i = dpos.asPosition() and - result = p.getTypeRepr().(TypeMention).resolveTypeAt(path) - ) - or - dpos.isSelf() and - exists(SelfParam self | - self = pragma[only_bind_into](this.getSelfParam()) and - result = getSelfParamTypeMention(self).resolveTypeAt(path) - ) - } - - private Type resolveRetType(TypePath path) { - result = getReturnTypeMention(this).resolveTypeAt(path) - } - - pragma[nomagic] - Type getReturnType(TypePath path) { - if this.isAsync() - then - path.isEmpty() and - result = getFutureTraitType() - or - exists(TypePath suffix | - result = this.resolveRetType(suffix) and - path = TypePath::cons(getDynFutureOutputTypeParameter(), suffix) - ) - else result = this.resolveRetType(path) + result = m.getTypeParameter(somei, ppos) } Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = this.getParameterType(dpos, path) - or - dpos.isReturn() and - result = this.getReturnType(path) + result = m.getDeclaredType(somei, dpos, path) } + + string toString() { result = m.toStringExt(i_) } + + Location getLocation() { result = m.getLocation() } } class AccessEnvironment = string; @@ -2208,14 +2284,19 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi result = this.getInferredNonSelfType(apos, path) } - Declaration getTarget(ImplOrTraitItemNode i, string derefChainBorrow) { + Method getTarget(ImplOrTraitItemNode i, string derefChainBorrow) { exists(string derefChain, boolean borrow | derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and result = this.resolveCallTarget(i, derefChain, borrow) // mutual recursion; resolving method calls requires resolving types and vice versa ) } - Declaration getTarget(string derefChainBorrow) { result = this.getTarget(_, derefChainBorrow) } + Declaration getTarget(string derefChainBorrow) { + exists(ImplOrTraitItemNode i, Method m | + m = this.getTarget(i, derefChainBorrow) and + result = MkDeclaration(i, m) + ) + } /** * Holds if the return type of this call at `path` may have to be inferred @@ -2467,13 +2548,6 @@ private module NonMethodResolution { NonMethodArgsAreInstantiationsOf::argsAreInstantiationsOf(this, i, result) } - pragma[inline] - ItemNode resolveCallTarget() { - result = this.resolveCallTargetViaPathResolution() - or - result = this.resolveCallTargetViaTypeInference(_) - } - pragma[nomagic] NonMethodFunction resolveTraitFunctionViaPathResolution(TraitItemNode trait) { this.hasTrait() and @@ -2594,6 +2668,72 @@ private module NonMethodResolution { ArgsAreInstantiationsOf; } +abstract private class TupleConstructor extends Addressable { + abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); + + abstract Type getParameterType(FunctionPosition pos, TypePath path); + + abstract Type getReturnType(TypePath path); + + Type getDeclaredType(FunctionPosition pos, TypePath path) { + result = this.getParameterType(pos, path) + or + pos.isReturn() and + result = this.getReturnType(path) + or + pos.isSelf() and + result = this.getReturnType(path) + } +} + +private class TupleStruct extends TupleConstructor, Struct { + TupleStruct() { this.isTuple() } + + override TypeParameter getTypeParameter(TypeParameterPosition ppos) { + typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) + } + + override Type getParameterType(FunctionPosition pos, TypePath path) { + exists(int i | + result = this.getTupleField(i).getTypeRepr().(TypeMention).resolveTypeAt(path) and + i = pos.asPosition() + ) + } + + override Type getReturnType(TypePath path) { + result = TStruct(this) and + path.isEmpty() + or + result = TTypeParamTypeParameter(this.getGenericParamList().getATypeParam()) and + path = TypePath::singleton(result) + } +} + +private class TupleVariant extends TupleConstructor, Variant { + TupleVariant() { this.isTuple() } + + override TypeParameter getTypeParameter(TypeParameterPosition ppos) { + typeParamMatchPosition(this.getEnum().getGenericParamList().getATypeParam(), result, ppos) + } + + override Type getParameterType(FunctionPosition pos, TypePath path) { + exists(int i | + result = this.getTupleField(i).getTypeRepr().(TypeMention).resolveTypeAt(path) and + i = pos.asPosition() + ) + } + + override Type getReturnType(TypePath path) { + exists(Enum enum | enum = this.getEnum() | + result = TEnum(enum) and + path.isEmpty() + or + result = TTypeParamTypeParameter(enum.getGenericParamList().getATypeParam()) and + path = TypePath::singleton(result) + ) + } +} + /** * A matching configuration for resolving types of calls like * `foo::bar(baz)` where the target is not a method. @@ -2604,7 +2744,15 @@ private module NonMethodResolution { private module NonMethodCallMatchingInput implements MatchingInputSig { import FunctionPositionMatchingInput - abstract class Declaration extends AstNode { + private class NonMethodFunctionDeclaration extends NonMethodFunction, FunctionDeclaration { } + + private newtype TDeclaration = + TNonMethodFunctionDeclaration(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f) { + f.isDeclaration(i) + } or + TTupleConstructorDeclaration(TupleConstructor tc) + + abstract class Declaration extends TDeclaration { abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); pragma[nomagic] @@ -2618,69 +2766,20 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { dpos.isReturn() and result = this.getReturnType(path) } + + abstract string toString(); + + abstract Location getLocation(); } - abstract additional class TupleDeclaration extends Declaration { - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - dpos.isSelf() and - result = this.getReturnType(path) - } - } + private class NonMethodFunctionDecl extends Declaration, TNonMethodFunctionDeclaration { + private ImplOrTraitItemNodeOption i; + private NonMethodFunctionDeclaration f; - private class TupleStructDecl extends TupleDeclaration, Struct { - TupleStructDecl() { this.isTuple() } + NonMethodFunctionDecl() { this = TNonMethodFunctionDeclaration(i, f) } override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - } - - override Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(int pos | - result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and - pos = dpos.asPosition() - ) - } - - override Type getReturnType(TypePath path) { - result = TStruct(this) and - path.isEmpty() - or - result = TTypeParamTypeParameter(this.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) - } - } - - private class TupleVariantDecl extends TupleDeclaration, Variant { - TupleVariantDecl() { this.isTuple() } - - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getEnum().getGenericParamList().getATypeParam(), result, ppos) - } - - override Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(int pos | - result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and - pos = dpos.asPosition() - ) - } - - override Type getReturnType(TypePath path) { - exists(Enum enum | enum = this.getEnum() | - result = TEnum(enum) and - path.isEmpty() - or - result = TTypeParamTypeParameter(enum.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) - ) - } - } - - private class NonMethodFunctionDecl extends Declaration, NonMethodFunction instanceof MethodCallMatchingInput::Declaration - { - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - result = MethodCallMatchingInput::Declaration.super.getTypeParameter(ppos) + result = f.getTypeParameter(i, ppos) } override Type getParameterType(DeclarationPosition dpos, TypePath path) { @@ -2701,20 +2800,40 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { // // we need to match `i32` against the type parameter `T` of the `impl` block. dpos.isSelf() and - exists(ImplOrTraitItemNode i | - this = i.getAnAssocItem() and - result = resolveImplOrTraitType(i, path) - ) + result = resolveImplOrTraitType(i.asSome(), path) or - exists(FunctionPosition fpos | - result = MethodCallMatchingInput::Declaration.super.getParameterType(fpos, path) and - dpos = fpos.getFunctionCallAdjusted(this) - ) + result = f.getParameterType(i, dpos, path) } - override Type getReturnType(TypePath path) { - result = MethodCallMatchingInput::Declaration.super.getReturnType(path) + override Type getReturnType(TypePath path) { result = f.getReturnType(i, path) } + + override string toString() { + i.isNone() and result = f.toString() + or + result = f.toStringExt(i.asSome()) } + + override Location getLocation() { result = f.getLocation() } + } + + private class TupleConstructorDeclaration extends Declaration, TTupleConstructorDeclaration { + TupleConstructor tc; + + TupleConstructorDeclaration() { this = TTupleConstructorDeclaration(tc) } + + override TypeParameter getTypeParameter(TypeParameterPosition ppos) { + result = tc.getTypeParameter(ppos) + } + + override Type getParameterType(DeclarationPosition dpos, TypePath path) { + result = tc.getParameterType(dpos, path) + } + + override Type getReturnType(TypePath path) { result = tc.getReturnType(path) } + + override string toString() { result = tc.toString() } + + override Location getLocation() { result = tc.getLocation() } } class Access extends NonMethodResolution::NonMethodCall, ContextTyping::ContextTypedCallCand { @@ -2731,8 +2850,22 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { result = inferType(this.getNodeAt(apos), path) } + pragma[inline] Declaration getTarget() { - result = this.resolveCallTarget() // potential mutual recursion; resolving some associated function calls requires resolving types + exists(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f | + result = TNonMethodFunctionDeclaration(i, f) + | + f = this.resolveCallTargetViaTypeInference(i.asSome()) // mutual recursion; resolving some associated function calls requires resolving types + or + f = this.resolveTraitFunctionViaPathResolution(i.asSome()) + or + f = this.resolveCallTargetViaPathResolution() and + f.isDeclarationStrict(i) + ) + or + exists(ItemNode i | i = this.resolveCallTargetViaPathResolution() | + result = TTupleConstructorDeclaration(i) + ) } /** @@ -2741,21 +2874,17 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { */ pragma[nomagic] predicate hasUnknownTypeAt(FunctionPosition pos, TypePath path) { - exists(ImplOrTraitItemNode i | - this.hasUnknownTypeAt(i, - [ - this.resolveCallTargetViaPathResolution().(NonMethodFunction), - this.resolveCallTargetViaTypeInference(i), - this.resolveTraitFunctionViaPathResolution(i) - ], pos, path) + exists(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f | + TNonMethodFunctionDeclaration(i, f) = this.getTarget() and + this.hasUnknownTypeAt(i.asSome(), f, pos, path) ) or // Tuple declarations, such as `Result::Ok(...)`, may also be context typed - exists(TupleDeclaration td, TypeParameter tp | - td = this.resolveCallTargetViaPathResolution() and + exists(TupleConstructor tc, TypeParameter tp | + tc = this.resolveCallTargetViaPathResolution() and pos.isReturn() and - tp = td.getReturnType(path) and - not tp = td.getParameterType(_, _) and + tp = tc.getReturnType(path) and + not tp = tc.getParameterType(_, _) and // check that no explicit type arguments have been supplied for `tp` not exists(TypeArgumentPosition tapos | exists(this.getTypeArgument(tapos, _)) and @@ -2793,9 +2922,9 @@ private module OperationMatchingInput implements MatchingInputSig { class Declaration extends MethodCallMatchingInput::Declaration { private Method getSelfOrImpl() { - result = this + result = m or - this.implements(result) + m.implements(result) } pragma[nomagic] @@ -2812,30 +2941,19 @@ private module OperationMatchingInput implements MatchingInputSig { ) } - pragma[nomagic] - private Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(TypePath path0 | - result = super.getParameterType(dpos, path0) and - if this.borrowsAt(dpos) then path0.isCons(getRefTypeParameter(), path) else path0 = path - ) - } - pragma[nomagic] private predicate derefsReturn() { this.getSelfOrImpl() = any(DerefTrait t).getDerefFunction() } - pragma[nomagic] - private Type getReturnType(TypePath path) { - exists(TypePath path0 | - result = super.getReturnType(path0) and - if this.derefsReturn() then path0.isCons(getRefTypeParameter(), path) else path0 = path - ) - } - Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = this.getParameterType(dpos, path) - or - dpos.isReturn() and - result = this.getReturnType(path) + exists(TypePath path0 | + result = super.getDeclaredType(dpos, path0) and + if + this.borrowsAt(dpos) + or + dpos.isReturn() and this.derefsReturn() + then path0.isCons(getRefTypeParameter(), path) + else path0 = path + ) } } @@ -2848,7 +2966,9 @@ private module OperationMatchingInput implements MatchingInputSig { } Declaration getTarget() { - result = this.resolveCallTarget(_, _, _) // mutual recursion + exists(ImplOrTraitItemNode i | + result.isMethod(i, this.resolveCallTarget(i, _, _)) // mutual recursion + ) } } } @@ -3315,7 +3435,7 @@ private Type inferStructPatType(AstNode n, TypePath path) { private module TupleStructPatMatchingInput implements MatchingInputSig { import FunctionPositionMatchingInput - class Declaration = NonMethodCallMatchingInput::TupleDeclaration; + class Declaration = TupleConstructor; class Access extends TupleStructPat { Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { none() } @@ -3408,12 +3528,9 @@ private Type inferForLoopExprType(AstNode n, TypePath path) { * first-class function. */ final private class InvokedClosureExpr extends Expr { - private CallExpr call; + private CallExprImpl::DynamicCallExpr call; - InvokedClosureExpr() { - call.getFunction() = this and - (not this instanceof PathExpr or this = any(Variable v).getAnAccess()) - } + InvokedClosureExpr() { call.getFunction() = this } Type getTypeAt(TypePath path) { result = inferType(this, path) } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 056ea5eaf72..d9423a742dc 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -7697,8 +7697,11 @@ inferType | main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1425:26:1425:27 | x2 | T | main.rs:1416:5:1417:13 | S | | main.rs:1428:17:1428:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1428:17:1428:18 | x3 | T | main.rs:1416:5:1417:13 | S | | main.rs:1428:22:1428:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1428:22:1428:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | | main.rs:1429:9:1429:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1429:9:1429:10 | x3 | T | main.rs:1416:5:1417:13 | S | | main.rs:1429:9:1429:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | | main.rs:1429:21:1429:21 | S | | main.rs:1416:5:1417:13 | S | | main.rs:1430:18:1430:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | @@ -7706,6 +7709,7 @@ inferType | main.rs:1430:18:1430:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1430:18:1430:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1430:26:1430:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1430:26:1430:27 | x3 | T | main.rs:1416:5:1417:13 | S | | main.rs:1432:17:1432:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1432:17:1432:18 | x4 | T | main.rs:1416:5:1417:13 | S | | main.rs:1432:22:1432:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | @@ -11052,11 +11056,9 @@ inferType | main.rs:3079:17:3079:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:3079:18:3079:18 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:3080:13:3080:13 | z | | {EXTERNAL LOCATION} | & | -| main.rs:3080:13:3080:13 | z | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:3080:13:3080:13 | z | TRef | {EXTERNAL LOCATION} | usize | | main.rs:3080:17:3080:17 | x | | {EXTERNAL LOCATION} | usize | | main.rs:3080:17:3080:22 | x.g(...) | | {EXTERNAL LOCATION} | & | -| main.rs:3080:17:3080:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:3080:17:3080:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | | main.rs:3080:21:3080:21 | y | | {EXTERNAL LOCATION} | & | | main.rs:3080:21:3080:21 | y | TRef | {EXTERNAL LOCATION} | i32 | From 86a4d42316fe53a4938404c52683837c36e96d0b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 12 Dec 2025 17:00:21 +0100 Subject: [PATCH 153/194] Rust: Remove obsolete comment from test --- .../PathResolutionConsistency.expected | 24 +- .../test/library-tests/type-inference/main.rs | 1 - .../type-inference/type-inference.expected | 9908 ++++++++--------- 3 files changed, 4966 insertions(+), 4967 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 028bce187bc..b2a5e20ea94 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -15,21 +15,21 @@ multipleResolvedTargets | invalid/main.rs:76:13:76:17 | * ... | | main.rs:1077:14:1077:18 | * ... | | main.rs:1159:26:1159:30 | * ... | -| main.rs:1504:14:1504:21 | * ... | -| main.rs:1504:16:1504:20 | * ... | -| main.rs:1509:14:1509:18 | * ... | -| main.rs:1540:27:1540:29 | * ... | -| main.rs:1654:17:1654:24 | * ... | -| main.rs:1654:18:1654:24 | * ... | -| main.rs:1792:17:1792:21 | * ... | -| main.rs:1807:28:1807:32 | * ... | -| main.rs:2440:13:2440:18 | * ... | +| main.rs:1503:14:1503:21 | * ... | +| main.rs:1503:16:1503:20 | * ... | +| main.rs:1508:14:1508:18 | * ... | +| main.rs:1539:27:1539:29 | * ... | +| main.rs:1653:17:1653:24 | * ... | +| main.rs:1653:18:1653:24 | * ... | +| main.rs:1791:17:1791:21 | * ... | +| main.rs:1806:28:1806:32 | * ... | +| main.rs:2439:13:2439:18 | * ... | +| main.rs:2633:13:2633:31 | ...::from(...) | | main.rs:2634:13:2634:31 | ...::from(...) | | main.rs:2635:13:2635:31 | ...::from(...) | -| main.rs:2636:13:2636:31 | ...::from(...) | +| main.rs:2641:13:2641:31 | ...::from(...) | | main.rs:2642:13:2642:31 | ...::from(...) | | main.rs:2643:13:2643:31 | ...::from(...) | -| main.rs:2644:13:2644:31 | ...::from(...) | -| main.rs:3073:13:3073:17 | x.f() | +| main.rs:3072:13:3072:17 | x.f() | | pattern_matching.rs:273:13:273:27 | * ... | | pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index f8f7ea60cc4..e35a8cc92fc 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1424,7 +1424,6 @@ mod option_methods { x2.set(S); // $ target=MyOption::set println!("{:?}", x2); - // missing type `S` from `MyOption` (but can resolve `MyTrait`) let mut x3 = MyOption::new(); // $ target=new x3.call_set(S); // $ target=call_set println!("{:?}", x3); diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index d9423a742dc..d0521ab654e 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1818,7 +1818,7 @@ inferCertainType | main.rs:1409:19:1409:22 | self | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1409:19:1409:22 | self | T | main.rs:1381:5:1385:5 | MyOption | | main.rs:1409:19:1409:22 | self | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1465:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1419:16:1464:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | | main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | @@ -1837,1763 +1837,1763 @@ inferCertainType | main.rs:1425:18:1425:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:17:1428:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:22:1428:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:9:1429:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1430:18:1430:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1430:18:1430:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1430:18:1430:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1430:18:1430:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1430:26:1430:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:17:1432:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:22:1432:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:9:1433:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:23:1433:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1433:28:1433:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1434:18:1434:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1434:18:1434:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1434:18:1434:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1434:18:1434:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1434:26:1434:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:18:1437:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1437:18:1437:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1437:18:1437:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1437:18:1437:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:26:1440:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1452:13:1452:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1453:13:1453:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1455:18:1455:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1455:18:1455:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1455:18:1455:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1455:18:1455:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1458:30:1463:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1459:13:1461:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1459:22:1461:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1464:18:1464:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1464:18:1464:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1482:15:1482:18 | SelfParam | | main.rs:1470:5:1471:19 | S | -| main.rs:1482:15:1482:18 | SelfParam | T | main.rs:1481:10:1481:10 | T | -| main.rs:1482:26:1484:9 | { ... } | | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:16 | self | | main.rs:1470:5:1471:19 | S | -| main.rs:1483:13:1483:16 | self | T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:15:1486:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1486:15:1486:19 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1486:15:1486:19 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:28:1488:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1486:28:1488:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:13:1487:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1487:14:1487:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:15:1490:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1490:15:1490:25 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1490:15:1490:25 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:34:1492:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1490:34:1492:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:13:1491:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1491:14:1491:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1496:29:1496:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1496:29:1496:33 | SelfParam | TRef | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1497:33:1497:36 | SelfParam | | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1503:29:1503:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1503:43:1505:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:17:1504:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:33:1508:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1508:33:1508:36 | SelfParam | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:46:1510:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:15:1509:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1509:15:1509:18 | self | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1513:16:1563:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1515:18:1515:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1515:18:1515:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1427:17:1427:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1427:22:1427:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1428:9:1428:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1429:18:1429:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1429:18:1429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1429:18:1429:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1429:18:1429:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1429:26:1429:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1431:17:1431:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1431:22:1431:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1432:9:1432:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1432:23:1432:29 | &mut x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1432:28:1432:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1433:18:1433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1433:18:1433:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1433:18:1433:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1433:18:1433:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1433:26:1433:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1436:18:1436:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1439:18:1439:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1439:18:1439:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1439:18:1439:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1439:18:1439:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1439:26:1439:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1439:26:1439:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1447:18:1447:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1451:13:1451:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1452:13:1452:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1454:18:1454:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1457:30:1462:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1458:13:1460:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1458:22:1460:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1463:18:1463:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1463:18:1463:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1463:18:1463:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1463:18:1463:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1481:15:1481:18 | SelfParam | | main.rs:1469:5:1470:19 | S | +| main.rs:1481:15:1481:18 | SelfParam | T | main.rs:1480:10:1480:10 | T | +| main.rs:1481:26:1483:9 | { ... } | | main.rs:1480:10:1480:10 | T | +| main.rs:1482:13:1482:16 | self | | main.rs:1469:5:1470:19 | S | +| main.rs:1482:13:1482:16 | self | T | main.rs:1480:10:1480:10 | T | +| main.rs:1485:15:1485:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1485:15:1485:19 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1485:15:1485:19 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1485:28:1487:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1485:28:1487:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1486:13:1486:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1486:14:1486:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1486:14:1486:17 | self | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1486:14:1486:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1489:15:1489:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1489:15:1489:25 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1489:15:1489:25 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1489:34:1491:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1489:34:1491:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1490:13:1490:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1490:14:1490:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1490:14:1490:17 | self | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1490:14:1490:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1495:29:1495:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1495:29:1495:33 | SelfParam | TRef | main.rs:1494:5:1497:5 | Self [trait ATrait] | +| main.rs:1496:33:1496:36 | SelfParam | | main.rs:1494:5:1497:5 | Self [trait ATrait] | +| main.rs:1502:29:1502:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1502:29:1502:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1502:29:1502:33 | SelfParam | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1502:43:1504:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1503:17:1503:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1503:17:1503:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1503:17:1503:20 | self | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1507:33:1507:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1507:33:1507:36 | SelfParam | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1507:46:1509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1508:15:1508:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1508:15:1508:18 | self | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1512:16:1562:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1514:18:1514:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1514:18:1514:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1514:18:1514:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1514:18:1514:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1518:18:1518:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1518:18:1518:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1518:18:1518:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1518:18:1518:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1520:18:1520:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1520:18:1520:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1523:18:1523:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1523:18:1523:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:18:1523:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1523:18:1523:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1523:26:1523:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1523:26:1523:41 | ...::m2(...) | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1523:38:1523:40 | &x3 | | {EXTERNAL LOCATION} | & | | main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m2(...) | TRef | main.rs:1473:5:1474:14 | S2 | +| main.rs:1524:26:1524:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1524:26:1524:41 | ...::m3(...) | TRef | main.rs:1472:5:1473:14 | S2 | | main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1525:18:1525:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1525:18:1525:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1525:26:1525:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1525:26:1525:41 | ...::m3(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:38:1525:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:13:1527:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:18:1527:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1526:13:1526:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1526:18:1526:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1528:18:1528:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1528:18:1528:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1528:18:1528:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1528:18:1528:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1528:26:1528:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1530:18:1530:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1530:18:1530:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1530:26:1530:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:13:1532:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:18:1532:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1531:13:1531:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1531:18:1531:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1533:26:1533:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1535:18:1535:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1535:18:1535:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1535:26:1535:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:13:1537:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:18:1537:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1540:18:1540:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1540:18:1540:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1540:28:1540:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1542:20:1542:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1546:18:1546:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1546:18:1546:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1548:13:1548:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1548:26:1548:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:26:1548:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1552:17:1552:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1554:13:1554:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1554:24:1554:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1554:25:1554:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1556:17:1556:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1557:18:1557:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1557:18:1557:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1560:13:1560:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1560:24:1560:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1560:25:1560:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1561:17:1561:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1562:18:1562:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1562:18:1562:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1569:16:1569:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1569:16:1569:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:16:1572:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1572:16:1572:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:32:1574:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1572:32:1574:9 | { ... } | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:16 | self | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1581:16:1581:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1581:16:1581:20 | SelfParam | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1581:36:1583:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1581:36:1583:9 | { ... } | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1582:13:1582:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1582:13:1582:16 | self | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1586:16:1589:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1598:16:1598:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1598:16:1598:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1598:32:1600:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1598:32:1600:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:32:1600:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1599:13:1599:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1599:13:1599:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1599:13:1599:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:16:1602:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1602:16:1602:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:16:1602:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:23:1602:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1602:23:1602:23 | x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:23:1602:23 | x | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:42:1604:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1602:42:1604:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:42:1604:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1603:13:1603:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1603:13:1603:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1603:13:1603:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1607:16:1613:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1612:15:1612:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1623:28:1625:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1624:13:1624:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:13:1624:16 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:26:1624:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:26:1624:29 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1631:15:1631:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1631:31:1633:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1631:31:1633:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:15:1635:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:25 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:37:1637:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1635:37:1637:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:15:1639:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:15:1639:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:34:1641:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1639:34:1641:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1640:13:1640:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1640:13:1640:13 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:15:1643:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:34:1645:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1643:34:1645:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1648:16:1661:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1649:13:1649:13 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1649:17:1649:20 | S {...} | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1652:9:1652:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1652:9:1652:17 | ...::f3(...) | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:15:1652:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1652:16:1652:16 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1654:19:1654:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:20:1654:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1654:21:1654:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1659:9:1659:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:22:1659:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1660:18:1660:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1660:18:1660:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1675:43:1678:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1675:43:1678:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1675:43:1678:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1682:46:1686:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:46:1686:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1682:46:1686:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1690:40:1695:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:40:1695:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1690:40:1695:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:30:1699:34 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1699:69:1706:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:69:1706:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:69:1706:5 | { ... } | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:21:1700:25 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1700:21:1700:25 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1702:22:1702:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1702:22:1702:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1702:22:1702:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1702:22:1702:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1709:16:1725:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:9:1712:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1710:37:1710:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:37:1710:52 | try_same_error(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:54:1712:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1711:22:1711:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1711:22:1711:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1714:9:1716:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1714:37:1714:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:37:1714:55 | try_convert_error(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:57:1716:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1715:22:1715:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1715:22:1715:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1718:9:1720:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1718:37:1718:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:37:1718:49 | try_chained(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:37:1718:49 | try_chained(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:51:1720:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1719:22:1719:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1719:22:1719:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1722:9:1724:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1722:37:1722:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:37:1722:63 | try_complex(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:65:1724:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1723:22:1723:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1723:22:1723:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:16:1820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1730:13:1730:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1536:13:1536:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1536:18:1536:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1539:18:1539:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:28:1539:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:20:1541:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1545:18:1545:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1545:18:1545:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1545:18:1545:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1545:18:1545:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1547:13:1547:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1547:26:1547:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1547:26:1547:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1551:17:1551:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1553:13:1553:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1553:24:1553:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1553:25:1553:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1555:17:1555:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1556:18:1556:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1556:18:1556:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1556:18:1556:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1556:18:1556:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1559:13:1559:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1559:24:1559:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1559:25:1559:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1560:17:1560:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1561:18:1561:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1561:18:1561:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1561:18:1561:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1561:18:1561:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1568:16:1568:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1568:16:1568:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1571:16:1571:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1571:16:1571:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1571:32:1573:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1571:32:1573:9 | { ... } | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1572:13:1572:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1572:13:1572:16 | self | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1580:16:1580:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1580:16:1580:20 | SelfParam | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1580:36:1582:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1580:36:1582:9 | { ... } | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1581:13:1581:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1581:13:1581:16 | self | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1585:16:1588:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1597:16:1597:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1597:16:1597:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1597:16:1597:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1597:32:1599:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1597:32:1599:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1597:32:1599:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1598:13:1598:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1598:13:1598:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1598:13:1598:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:16:1601:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1601:16:1601:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:16:1601:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:23:1601:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1601:23:1601:23 | x | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:23:1601:23 | x | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:42:1603:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1601:42:1603:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:42:1603:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1602:13:1602:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1602:13:1602:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1602:13:1602:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1606:16:1612:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1611:15:1611:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1611:16:1611:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1622:17:1622:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1622:17:1622:25 | SelfParam | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1622:28:1624:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1623:13:1623:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1623:13:1623:16 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1623:26:1623:29 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1623:26:1623:29 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1630:15:1630:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1630:15:1630:19 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1630:31:1632:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1630:31:1632:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:13:1631:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1631:14:1631:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1631:15:1631:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1631:16:1631:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1631:16:1631:19 | self | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1634:15:1634:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1634:15:1634:25 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1634:37:1636:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1634:37:1636:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:13:1635:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1635:14:1635:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1635:15:1635:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1635:16:1635:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1635:16:1635:19 | self | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1638:15:1638:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1638:15:1638:15 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1638:34:1640:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1638:34:1640:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1639:13:1639:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1639:13:1639:13 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1642:15:1642:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1642:15:1642:15 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1642:34:1644:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1642:34:1644:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:13:1643:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1643:14:1643:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1643:15:1643:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1643:16:1643:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1643:16:1643:16 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1647:16:1660:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1648:13:1648:13 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1648:17:1648:20 | S {...} | | main.rs:1627:5:1627:13 | S | +| main.rs:1649:9:1649:9 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1650:9:1650:9 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1651:9:1651:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1651:9:1651:17 | ...::f3(...) | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1651:15:1651:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1651:16:1651:16 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1653:19:1653:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1653:20:1653:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1653:21:1653:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1658:9:1658:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1658:22:1658:30 | &mut flag | | {EXTERNAL LOCATION} | & | +| main.rs:1659:18:1659:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1659:18:1659:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1659:18:1659:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1659:18:1659:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:43:1677:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1674:43:1677:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1674:43:1677:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1681:46:1685:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1681:46:1685:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1681:46:1685:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1689:40:1694:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:40:1694:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1689:40:1694:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:30:1698:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:30:1698:34 | input | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:30:1698:34 | input | T | main.rs:1698:20:1698:27 | T | +| main.rs:1698:69:1705:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:69:1705:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:69:1705:5 | { ... } | T | main.rs:1698:20:1698:27 | T | +| main.rs:1699:21:1699:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1699:21:1699:25 | input | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1699:21:1699:25 | input | T | main.rs:1698:20:1698:27 | T | +| main.rs:1701:22:1701:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1701:22:1701:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1701:22:1701:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1701:22:1701:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1708:16:1724:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1709:9:1711:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1709:37:1709:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1709:37:1709:52 | try_same_error(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:37:1709:52 | try_same_error(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:54:1711:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1710:22:1710:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1710:22:1710:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1710:22:1710:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1710:22:1710:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1713:9:1715:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1713:37:1713:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:37:1713:55 | try_convert_error(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1713:37:1713:55 | try_convert_error(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1713:57:1715:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1714:22:1714:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1714:22:1714:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1714:22:1714:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1714:22:1714:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1717:9:1719:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1717:37:1717:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1717:37:1717:49 | try_chained(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1717:37:1717:49 | try_chained(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1717:51:1719:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1718:22:1718:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1718:22:1718:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1718:22:1718:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1718:22:1718:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1721:9:1723:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1721:37:1721:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1721:37:1721:63 | try_complex(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:65:1723:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1722:22:1722:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1722:22:1722:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1722:22:1722:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1722:22:1722:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1728:16:1819:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:13:1729:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1731:17:1731:17 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1734:13:1734:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1734:17:1734:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1735:13:1735:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1735:13:1735:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:21:1735:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1735:21:1735:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1736:13:1736:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:17:1736:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1737:13:1737:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:13:1738:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:17:1738:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1741:26:1741:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1741:26:1741:30 | SelfParam | TRef | main.rs:1740:9:1744:9 | Self [trait MyTrait] | -| main.rs:1747:26:1747:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1747:26:1747:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:26:1747:30 | SelfParam | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1747:39:1749:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1747:39:1749:13 | { ... } | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1748:17:1748:20 | self | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1751:31:1753:13 | { ... } | | main.rs:1746:14:1746:23 | T | -| main.rs:1756:17:1756:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1757:17:1757:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1757:37:1757:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1757:38:1757:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1758:13:1758:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:17:1758:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TSlice | main.rs:1760:14:1760:23 | T | -| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1762:17:1762:20 | self | TRef.TSlice | main.rs:1760:14:1760:23 | T | -| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:13:1770:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:13:1770:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:13:1770:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1770:26:1770:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1771:17:1771:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:17:1771:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1772:17:1772:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1772:34:1772:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:13:1773:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:17:1773:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:26:1776:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1776:26:1776:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:39:1778:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1776:39:1778:13 | { ... } | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:17:1777:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1777:18:1777:21 | self | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1780:31:1782:13 | { ... } | | main.rs:1775:14:1775:23 | T | -| main.rs:1785:13:1785:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:17:1786:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1787:17:1787:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1787:37:1787:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1787:38:1787:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1788:13:1788:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:17:1788:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1791:26:1791:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1791:39:1793:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1791:39:1793:13 | { ... } | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:18:1792:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1795:31:1797:13 | { ... } | | main.rs:1790:14:1790:23 | T | -| main.rs:1800:13:1800:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1802:17:1802:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:34:1802:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1803:13:1803:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:17:1803:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1806:26:1806:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1806:26:1806:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:26:1806:30 | SelfParam | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1806:39:1808:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1806:39:1808:13 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:26:1807:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:29:1807:32 | self | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1810:31:1812:13 | { ... } | | main.rs:1805:14:1805:23 | T | -| main.rs:1816:13:1816:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:13:1816:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:27:1816:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1817:26:1817:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:26:1817:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:26:1818:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1818:46:1818:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1818:47:1818:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:47:1818:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:13:1819:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:17:1819:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1825:16:1837:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1826:13:1826:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1733:13:1733:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1733:17:1733:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1734:13:1734:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1734:13:1734:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1734:21:1734:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1734:21:1734:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1735:13:1735:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1735:17:1735:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1736:13:1736:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1736:17:1736:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1737:13:1737:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1737:17:1737:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1740:26:1740:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1740:26:1740:30 | SelfParam | TRef | main.rs:1739:9:1743:9 | Self [trait MyTrait] | +| main.rs:1746:26:1746:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1746:26:1746:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1746:26:1746:30 | SelfParam | TRef.TArray | main.rs:1745:14:1745:23 | T | +| main.rs:1746:39:1748:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1746:39:1748:13 | { ... } | TRef | main.rs:1745:14:1745:23 | T | +| main.rs:1747:17:1747:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1747:17:1747:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1747:17:1747:20 | self | TRef.TArray | main.rs:1745:14:1745:23 | T | +| main.rs:1750:31:1752:13 | { ... } | | main.rs:1745:14:1745:23 | T | +| main.rs:1755:17:1755:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1756:13:1756:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1756:17:1756:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1756:37:1756:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1756:38:1756:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1757:17:1757:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1760:26:1760:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1760:26:1760:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1760:26:1760:30 | SelfParam | TRef.TSlice | main.rs:1759:14:1759:23 | T | +| main.rs:1760:39:1762:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1760:39:1762:13 | { ... } | TRef | main.rs:1759:14:1759:23 | T | +| main.rs:1761:17:1761:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1761:17:1761:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1761:17:1761:20 | self | TRef.TSlice | main.rs:1759:14:1759:23 | T | +| main.rs:1764:31:1766:13 | { ... } | | main.rs:1759:14:1759:23 | T | +| main.rs:1769:13:1769:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1769:13:1769:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1769:13:1769:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:25:1769:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1769:26:1769:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1770:17:1770:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1770:17:1770:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1770:17:1770:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1771:17:1771:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:34:1771:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1771:34:1771:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1771:34:1771:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1775:26:1775:30 | SelfParam | TRef.T0 | main.rs:1774:14:1774:23 | T | +| main.rs:1775:26:1775:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1776:18:1776:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:18:1776:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1776:18:1776:21 | self | TRef.T0 | main.rs:1774:14:1774:23 | T | +| main.rs:1776:18:1776:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | +| main.rs:1784:13:1784:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1784:17:1784:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1785:17:1785:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1786:17:1786:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:37:1786:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1786:38:1786:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | +| main.rs:1799:13:1799:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1799:17:1799:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1800:17:1800:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:33:1801:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1801:34:1801:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:26:1806:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1806:29:1806:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:29:1806:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1806:29:1806:32 | self | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | +| main.rs:1815:13:1815:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1815:13:1815:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:27:1815:32 | &mut v | | {EXTERNAL LOCATION} | & | +| main.rs:1816:26:1816:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1816:26:1816:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:26:1817:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1817:46:1817:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1817:47:1817:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1817:47:1817:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1818:17:1818:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1824:16:1836:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1825:13:1825:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:17:1825:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:17:1825:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:25:1825:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1826:13:1826:13 | y | | {EXTERNAL LOCATION} | bool | | main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1826:17:1826:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:13:1827:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:25:1827:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1831:17:1833:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1833:16:1835:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1850:30:1852:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:13:1851:31 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:16:1858:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:22:1858:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:41:1863:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1859:13:1862:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:20:1861:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:29:1861:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:23:1868:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1868:23:1868:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:34:1868:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:45:1871:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1830:17:1832:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1832:16:1834:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1849:30:1851:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1850:13:1850:31 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1857:16:1857:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1857:22:1857:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1857:41:1862:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1858:13:1861:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1859:20:1859:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1859:29:1859:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1860:20:1860:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1860:29:1860:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1867:23:1867:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1867:23:1867:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1867:34:1867:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1867:45:1870:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1868:13:1868:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1868:13:1868:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1868:23:1868:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:13:1870:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1870:13:1870:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:23:1870:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:16:1876:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:22:1876:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:41:1881:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1877:13:1880:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:20:1879:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:29:1879:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:23:1886:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1886:23:1886:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:34:1886:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:45:1889:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1869:13:1869:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1869:23:1869:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1875:16:1875:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1875:22:1875:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1875:41:1880:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1876:13:1879:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1877:20:1877:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1877:29:1877:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1878:20:1878:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1878:29:1878:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1885:23:1885:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1885:23:1885:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1885:34:1885:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1885:45:1888:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1886:13:1886:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1886:13:1886:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1886:23:1886:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:13:1888:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1888:13:1888:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:23:1888:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:16:1894:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:22:1894:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:41:1899:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1895:13:1898:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:20:1897:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:29:1897:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:23:1903:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1903:23:1903:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:34:1903:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:45:1906:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1887:13:1887:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1887:23:1887:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1893:22:1893:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1893:41:1898:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1895:20:1895:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1895:29:1895:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1896:20:1896:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1896:29:1896:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1902:23:1902:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1902:23:1902:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1902:34:1902:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1902:45:1905:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1903:13:1903:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1903:13:1903:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1903:23:1903:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:13:1905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1905:13:1905:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:23:1905:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:16:1911:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:22:1911:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:41:1916:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1912:13:1915:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:20:1914:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:29:1914:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:23:1920:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1920:23:1920:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:34:1920:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:45:1923:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1904:13:1904:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1904:23:1904:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1910:16:1910:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1910:22:1910:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1910:41:1915:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1911:13:1914:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1912:20:1912:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1912:29:1912:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1913:20:1913:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1913:29:1913:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1919:23:1919:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1919:23:1919:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1919:34:1919:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1919:45:1922:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1920:13:1920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1920:13:1920:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1920:23:1920:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:13:1922:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1922:13:1922:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:23:1922:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:16:1928:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:22:1928:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:41:1933:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1929:13:1932:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:20:1931:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:29:1931:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:23:1937:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1937:23:1937:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:34:1937:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:45:1940:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1921:13:1921:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1921:23:1921:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1927:16:1927:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1927:22:1927:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1927:41:1932:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1928:13:1931:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1929:20:1929:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1929:29:1929:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1930:20:1930:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1930:29:1930:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1936:23:1936:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1936:23:1936:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1936:34:1936:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1936:45:1939:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1937:13:1937:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1937:13:1937:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1937:23:1937:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:13:1939:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1939:13:1939:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:23:1939:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:19:1945:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:25:1945:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:44:1950:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1946:13:1949:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:20:1948:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:29:1948:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:26:1954:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1954:26:1954:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:37:1954:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:48:1957:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1938:13:1938:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1938:23:1938:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1944:19:1944:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1944:25:1944:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1944:44:1949:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1945:13:1948:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1946:20:1946:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1946:29:1946:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1947:20:1947:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1947:29:1947:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1953:26:1953:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1953:26:1953:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1953:37:1953:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1953:48:1956:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1954:13:1954:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1954:13:1954:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1954:23:1954:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:13:1956:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1956:13:1956:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:23:1956:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:18:1962:21 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:24:1962:26 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:43:1967:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1963:13:1966:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:20:1965:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:29:1965:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:25:1971:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1971:25:1971:33 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:36:1971:38 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:47:1974:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1955:13:1955:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1955:23:1955:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1961:18:1961:21 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1961:24:1961:26 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1961:43:1966:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1962:13:1965:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1963:20:1963:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1963:29:1963:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1964:20:1964:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1964:29:1964:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1970:25:1970:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1970:25:1970:33 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1970:36:1970:38 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1970:47:1973:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1971:13:1971:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1971:13:1971:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1971:23:1971:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:13:1973:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1973:13:1973:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:23:1973:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:19:1979:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:25:1979:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:44:1984:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1980:13:1983:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:20:1982:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:29:1982:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:26:1988:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1988:26:1988:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:37:1988:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:48:1991:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1972:13:1972:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1972:23:1972:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1978:19:1978:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1978:25:1978:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1978:44:1983:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1979:13:1982:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1980:20:1980:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1980:29:1980:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1981:20:1981:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1981:29:1981:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1987:26:1987:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1987:26:1987:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1987:37:1987:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1987:48:1990:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1988:13:1988:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1988:13:1988:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1988:23:1988:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:13:1990:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1990:13:1990:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:23:1990:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:16:1996:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:22:1996:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1996:40:2001:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1997:13:2000:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:23 | self | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:1989:13:1989:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1989:23:1989:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1995:16:1995:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1995:22:1995:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1995:40:2000:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1996:13:1999:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1997:20:1997:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1997:30:1997:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1998:20:1998:23 | self | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1999:20:1999:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1999:30:1999:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:23:2005:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2005:23:2005:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2005:34:2005:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:44:2008:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2004:23:2004:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2004:23:2004:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2004:34:2004:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2004:44:2007:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2005:13:2005:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2005:13:2005:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2005:24:2005:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2006:13:2006:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | | main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2007:13:2007:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2007:13:2007:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2007:24:2007:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:16:2013:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2013:22:2013:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:40:2018:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2014:13:2017:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:23 | self | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2012:16:2012:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2012:22:2012:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2012:40:2017:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2013:13:2016:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2014:20:2014:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2014:30:2014:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2015:20:2015:23 | self | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2016:20:2016:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2016:30:2016:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:23:2022:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2022:23:2022:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2022:34:2022:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:44:2025:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2021:23:2021:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2021:23:2021:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2021:34:2021:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:44:2024:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2022:13:2022:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2022:13:2022:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2022:24:2022:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2023:13:2023:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | | main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2024:13:2024:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2024:13:2024:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2024:24:2024:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:16:2030:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2030:30:2035:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2031:13:2034:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2032:21:2032:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2033:21:2033:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:16:2040:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:30:2045:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2041:13:2044:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2042:21:2042:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2043:21:2043:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:15:2049:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2049:15:2049:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:22:2049:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:22:2049:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:44:2051:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:13:2050:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:13:2050:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:23:2050:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:23:2050:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:34:2050:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:44:2050:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:44:2050:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:15:2053:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2053:15:2053:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:22:2053:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:22:2053:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:44:2055:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:13:2054:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:13:2054:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:23:2054:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:23:2054:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:34:2054:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:44:2054:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:44:2054:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:24:2059:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2059:24:2059:28 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:31:2059:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:31:2059:35 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:75:2061:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2059:75:2061:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:14:2060:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:14:2060:17 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:23:2060:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:23:2060:26 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:43:2060:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:55:2060:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:55:2060:59 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2029:16:2029:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2029:30:2034:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2030:13:2033:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2031:21:2031:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2032:21:2032:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2039:16:2039:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2039:30:2044:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2040:13:2043:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2041:21:2041:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2042:21:2042:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2048:15:2048:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2048:15:2048:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2048:22:2048:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2048:22:2048:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2048:44:2050:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:13:2049:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2049:13:2049:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:13:2049:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:13:2049:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:23:2049:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2049:23:2049:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:34:2049:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2049:34:2049:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:34:2049:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:44:2049:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2049:44:2049:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2052:15:2052:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2052:15:2052:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2052:22:2052:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2052:22:2052:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2052:44:2054:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:13:2053:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2053:13:2053:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:13:2053:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:13:2053:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:23:2053:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2053:23:2053:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:34:2053:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2053:34:2053:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:34:2053:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:44:2053:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2053:44:2053:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2058:24:2058:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2058:24:2058:28 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2058:31:2058:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2058:31:2058:35 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2058:75:2060:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2058:75:2060:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2059:14:2059:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2059:14:2059:17 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:23:2059:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2059:23:2059:26 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:43:2059:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2059:45:2059:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2059:45:2059:49 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:55:2059:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2059:55:2059:59 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2062:15:2062:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2062:15:2062:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2062:22:2062:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2062:22:2062:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2062:44:2064:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:13:2063:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2063:13:2063:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:13:2063:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:13:2063:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:13:2064:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:22:2064:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:22:2064:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:33:2064:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:42:2064:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:42:2064:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:13:2068:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:34:2068:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:15:2071:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2071:15:2071:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:33:2063:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2063:33:2063:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:33:2063:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:42:2063:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2063:42:2063:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2066:15:2066:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2066:15:2066:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2066:22:2066:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2066:22:2066:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2066:44:2068:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:13:2067:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2067:13:2067:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:13:2067:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:13:2067:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:23:2067:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:23:2067:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:34:2067:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2067:34:2067:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:34:2067:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:44:2067:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:44:2067:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2070:15:2070:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2070:15:2070:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2070:22:2070:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2070:22:2070:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2070:44:2072:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:13:2071:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2071:13:2071:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:13:2071:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:13:2071:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:44:2073:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:13:2072:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:13:2072:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:22:2072:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:22:2072:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:33:2072:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:42:2072:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:42:2072:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:15:2075:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2075:15:2075:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:22:2075:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:22:2075:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:44:2077:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:13:2076:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:13:2076:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:23:2076:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:23:2076:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:34:2076:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:44:2076:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:44:2076:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2080:26:2080:26 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2080:32:2080:32 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:9:2081:9 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:13:2081:13 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2084:16:2215:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2088:23:2088:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:31:2088:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:31:2089:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:30:2090:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:31:2091:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:30:2092:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:23:2093:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:32:2093:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:31:2100:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:39:2101:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:45:2101:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:17:2104:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:34:2104:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:27:2105:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:17:2107:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:34:2107:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:27:2108:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:17:2110:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:34:2110:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:27:2111:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:17:2113:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:34:2113:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:27:2114:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:17:2116:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:34:2116:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:27:2117:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:34:2120:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:33:2121:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:34:2122:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:32:2124:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:37:2127:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:30:2128:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:36:2130:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:29:2131:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:17:2133:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:37:2133:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:30:2134:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:17:2136:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:28:2137:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:17:2139:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:34:2139:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:28:2140:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:24:2143:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2146:13:2146:14 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:13:2147:14 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:18:2147:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:29:2151:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:28:2152:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:29:2153:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:28:2154:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:23:2155:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:29:2155:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:29:2162:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:17:2165:31 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:35:2165:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:23 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:17:2168:31 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:35:2168:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:23 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:28:2169:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:17:2171:31 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:35:2171:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:23 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:28:2172:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:17:2174:31 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:35:2174:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:23 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:28:2175:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:17:2177:31 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:35:2177:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:23 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:28:2178:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:32:2181:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:27 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:31:2182:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:32:2183:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2071:22:2071:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:33:2071:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2071:33:2071:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:33:2071:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:42:2071:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2071:42:2071:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2074:15:2074:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2074:15:2074:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2074:22:2074:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:22:2074:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2074:44:2076:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:13:2075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2075:13:2075:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:13:2075:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:13:2075:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:23:2075:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2075:23:2075:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:34:2075:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2075:34:2075:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:34:2075:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:44:2075:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2075:44:2075:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2079:26:2079:26 | a | | main.rs:2079:18:2079:23 | T | +| main.rs:2079:32:2079:32 | b | | main.rs:2079:18:2079:23 | T | +| main.rs:2080:9:2080:9 | a | | main.rs:2079:18:2079:23 | T | +| main.rs:2080:13:2080:13 | b | | main.rs:2079:18:2079:23 | T | +| main.rs:2083:16:2214:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2087:23:2087:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2087:31:2087:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2088:23:2088:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2088:31:2088:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:23:2089:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:30:2089:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:23:2090:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:31:2090:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2091:23:2091:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2091:30:2091:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2092:23:2092:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2092:32:2092:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:23:2095:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:31:2095:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:23:2096:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:31:2096:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:23:2097:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:31:2097:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:23:2098:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:31:2098:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:23:2099:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:31:2099:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2100:39:2100:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2100:45:2100:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:17:2103:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:34:2103:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:9:2104:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:27:2104:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:17:2106:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:34:2106:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:9:2107:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:27:2107:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2109:17:2109:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2109:34:2109:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:9:2110:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:27:2110:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:17:2112:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:34:2112:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:9:2113:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:27:2113:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:17:2115:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:34:2115:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2116:9:2116:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2116:27:2116:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:26:2119:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:34:2119:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:25:2120:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:33:2120:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:26:2121:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:23:2122:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:32:2122:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:23:2123:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:32:2123:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2126:17:2126:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2126:37:2126:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:9:2127:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:30:2127:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2129:17:2129:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2129:36:2129:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:9:2130:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:29:2130:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2132:17:2132:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2132:37:2132:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2133:9:2133:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2133:30:2133:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:17:2135:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:34:2135:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:9:2136:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:28:2136:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:17:2138:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:34:2138:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2139:9:2139:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2139:28:2139:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:24:2141:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:24:2142:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:13:2145:14 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2145:18:2145:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2146:13:2146:14 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2149:23:2149:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2149:29:2149:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2150:23:2150:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2150:29:2150:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2151:23:2151:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2151:28:2151:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2152:23:2152:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2152:29:2152:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2153:23:2153:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2153:28:2153:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2154:23:2154:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2154:29:2154:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:24:2157:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:29:2157:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:24:2158:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:29:2158:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:24:2159:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:29:2159:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:24:2160:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:29:2160:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:24:2161:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:29:2161:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2164:17:2164:31 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2164:35:2164:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2165:9:2165:23 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2165:28:2165:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2167:17:2167:31 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2167:35:2167:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2168:9:2168:23 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2170:17:2170:31 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2170:35:2170:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2171:9:2171:23 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2171:28:2171:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2173:17:2173:31 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2173:35:2173:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2174:9:2174:23 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2174:28:2174:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2176:17:2176:31 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2176:35:2176:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2177:9:2177:23 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2177:28:2177:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:27:2180:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:32:2180:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:26:2181:27 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:31:2181:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:27:2182:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:32:2182:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:24:2183:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:30:2183:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2184:24:2184:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2185:24:2185:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:30:2185:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2188:17:2188:34 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2188:38:2188:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:26 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:31:2189:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:17:2191:33 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:37:2191:38 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:25 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:30:2192:31 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:17:2194:34 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:38:2194:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:26 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:31:2195:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:17:2197:31 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:35:2197:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:23 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:29:2198:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2200:17:2200:31 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2200:35:2200:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:23 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:29:2201:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:25:2205:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:30:2214:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2224:18:2224:21 | SelfParam | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2245:13:2245:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:42 | SelfParam | Ptr.TRef | main.rs:2239:5:2239:14 | S2 | -| main.rs:2246:13:2246:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2246:13:2246:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2247:44:2249:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2247:44:2249:9 | { ... } | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2258:9:2258:12 | f2(...) | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2259:9:2259:12 | f3(...) | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2260:9:2260:12 | f4(...) | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2262:13:2262:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:17:2262:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2263:9:2263:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2274:15:2274:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2274:15:2274:19 | SelfParam | TRef | main.rs:2273:5:2275:5 | Self [trait Trait1] | -| main.rs:2274:22:2274:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2278:15:2278:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2278:15:2278:19 | SelfParam | TRef | main.rs:2277:5:2279:5 | Self [trait Trait2] | -| main.rs:2278:22:2278:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2282:15:2282:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2282:15:2282:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2282:22:2282:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | -| main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2298:18:2298:22 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2298:31:2300:9 | { ... } | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2304:18:2304:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2304:18:2304:22 | SelfParam | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2304:18:2304:22 | SelfParam | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2304:30:2307:9 | { ... } | | main.rs:2303:10:2303:17 | T | -| main.rs:2305:25:2305:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | -| main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2318:34:2318:34 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2318:59:2320:5 | { ... } | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2318:59:2320:5 | { ... } | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:12:2319:12 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2322:34:2322:34 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2322:67:2324:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2322:67:2324:5 | { ... } | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2322:67:2324:5 | { ... } | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:17:2323:17 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2326:34:2326:34 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:78:2328:5 | { ... } | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2327:13:2327:13 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:28:2327:28 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2330:26:2330:26 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2330:51:2332:5 | { ... } | | main.rs:2330:23:2330:23 | A | -| main.rs:2331:9:2331:9 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2334:16:2348:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2335:13:2335:13 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2335:17:2335:20 | f1(...) | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2337:9:2337:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2338:13:2338:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2338:17:2338:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2339:32:2339:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:13:2340:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:17:2340:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2341:32:2341:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2358:16:2358:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2358:16:2358:20 | SelfParam | TRef | main.rs:2354:5:2355:13 | S | -| main.rs:2358:31:2360:9 | { ... } | | main.rs:2354:5:2355:13 | S | -| main.rs:2369:26:2371:9 | { ... } | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2369:26:2371:9 | { ... } | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:13:2370:38 | MyVec {...} | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2370:27:2370:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2370:27:2370:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2373:17:2373:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2373:17:2373:25 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2373:17:2373:25 | SelfParam | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:28:2373:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2373:38:2375:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2374:13:2374:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2374:13:2374:16 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2374:13:2374:16 | self | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:28:2374:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2382:18:2382:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2382:18:2382:22 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2382:18:2382:22 | SelfParam | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2382:25:2382:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2382:56:2384:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2382:56:2384:9 | { ... } | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:13:2383:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2383:14:2383:17 | self | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:24:2383:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2387:22:2387:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:22:2387:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:22:2387:26 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2387:35:2389:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:17:2388:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2388:17:2388:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2388:17:2388:21 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2391:37:2391:37 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2391:43:2391:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2395:9:2395:9 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2395:11:2395:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2398:16:2409:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2399:17:2399:19 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:23:2399:34 | ...::new(...) | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2401:9:2401:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2403:13:2403:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:13:2403:14 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:26:2403:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2406:29:2406:31 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2408:9:2408:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2408:23:2408:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2408:24:2408:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:24:2408:25 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2413:16:2415:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2414:25:2414:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:25:2414:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2414:25:2414:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:38:2414:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:38:2414:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2423:19:2423:22 | SelfParam | | main.rs:2419:5:2424:5 | Self [trait MyAdd] | -| main.rs:2423:25:2423:27 | rhs | | main.rs:2419:17:2419:26 | Rhs | -| main.rs:2430:19:2430:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:25:2430:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:45:2432:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:13:2431:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:19:2439:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:25:2439:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:25:2439:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:46:2441:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:14:2440:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2440:14:2440:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:19:2448:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:25:2448:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2448:46:2454:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:16:2449:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2463:19:2463:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:19:2463:22 | SelfParam | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:25:2463:29 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:25:2463:29 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:54:2465:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:35 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:31:2464:35 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2472:19:2472:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2472:19:2472:22 | SelfParam | T | main.rs:2468:10:2468:17 | T | -| main.rs:2472:25:2472:29 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2472:51:2474:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | T | main.rs:2468:10:2468:17 | T | -| main.rs:2473:31:2473:35 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2484:19:2484:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2484:19:2484:22 | SelfParam | T | main.rs:2477:14:2477:14 | T | -| main.rs:2484:25:2484:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:25:2484:29 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2484:55:2486:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | T | main.rs:2477:14:2477:14 | T | -| main.rs:2485:31:2485:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2485:31:2485:35 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2491:20:2491:24 | value | | main.rs:2489:18:2489:18 | T | -| main.rs:2496:20:2496:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:40:2498:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2497:13:2497:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:20:2503:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2503:41:2509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:16:2504:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2514:21:2514:25 | value | | main.rs:2512:19:2512:19 | T | -| main.rs:2514:31:2514:31 | x | | main.rs:2512:5:2515:5 | Self [trait MyFrom2] | -| main.rs:2519:21:2519:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:33:2519:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:48:2521:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2520:13:2520:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:21:2526:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2526:34:2526:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:49:2532:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2527:16:2527:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2537:15:2537:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2540:15:2540:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2545:15:2545:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:31:2547:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:15:2550:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:32:2552:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2557:15:2557:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2557:31:2559:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2562:15:2562:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:32:2564:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2563:13:2563:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2567:16:2592:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2568:13:2568:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2187:17:2187:34 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2187:38:2187:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2188:9:2188:26 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2188:31:2188:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2190:17:2190:33 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2190:37:2190:38 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2191:9:2191:25 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2191:30:2191:31 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2193:17:2193:34 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2193:38:2193:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2194:9:2194:26 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2194:31:2194:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2196:17:2196:31 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2196:35:2196:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2197:9:2197:23 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2197:29:2197:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:17:2199:31 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2199:35:2199:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2200:9:2200:23 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2200:29:2200:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2203:25:2203:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2204:25:2204:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2208:30:2208:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2213:30:2213:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2223:18:2223:21 | SelfParam | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2223:24:2223:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2226:25:2228:5 | { ... } | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2231:9:2231:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2235:9:2235:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2235:9:2235:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2244:13:2244:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2244:13:2244:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | +| main.rs:2244:13:2244:42 | SelfParam | Ptr.TRef | main.rs:2238:5:2238:14 | S2 | +| main.rs:2245:13:2245:15 | _cx | | {EXTERNAL LOCATION} | & | +| main.rs:2245:13:2245:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2246:44:2248:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2246:44:2248:9 | { ... } | T | main.rs:2220:5:2220:14 | S1 | +| main.rs:2255:22:2263:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2256:9:2256:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2256:9:2256:12 | f1(...) | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2257:9:2257:12 | f2(...) | | main.rs:2230:16:2230:39 | impl ... | +| main.rs:2258:9:2258:12 | f3(...) | | main.rs:2234:16:2234:39 | impl ... | +| main.rs:2259:9:2259:12 | f4(...) | | main.rs:2251:16:2251:39 | impl ... | +| main.rs:2261:13:2261:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2261:17:2261:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2262:9:2262:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2273:15:2273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2273:15:2273:19 | SelfParam | TRef | main.rs:2272:5:2274:5 | Self [trait Trait1] | +| main.rs:2273:22:2273:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2277:15:2277:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2277:15:2277:19 | SelfParam | TRef | main.rs:2276:5:2278:5 | Self [trait Trait2] | +| main.rs:2277:22:2277:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2281:15:2281:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2281:15:2281:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2281:22:2281:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2285:15:2285:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2285:15:2285:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2285:22:2285:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2293:18:2293:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2293:18:2293:22 | SelfParam | TRef | main.rs:2292:5:2294:5 | Self [trait MyTrait] | +| main.rs:2297:18:2297:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2297:18:2297:22 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2297:31:2299:9 | { ... } | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2303:18:2303:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2303:18:2303:22 | SelfParam | TRef | main.rs:2270:5:2270:22 | S3 | +| main.rs:2303:18:2303:22 | SelfParam | TRef.T3 | main.rs:2302:10:2302:17 | T | +| main.rs:2303:30:2306:9 | { ... } | | main.rs:2302:10:2302:17 | T | +| main.rs:2304:25:2304:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2304:25:2304:28 | self | TRef | main.rs:2270:5:2270:22 | S3 | +| main.rs:2304:25:2304:28 | self | TRef.T3 | main.rs:2302:10:2302:17 | T | +| main.rs:2313:41:2313:41 | t | | main.rs:2313:26:2313:38 | B | +| main.rs:2313:52:2315:5 | { ... } | | main.rs:2313:23:2313:23 | A | +| main.rs:2314:9:2314:9 | t | | main.rs:2313:26:2313:38 | B | +| main.rs:2317:34:2317:34 | x | | main.rs:2317:24:2317:31 | T | +| main.rs:2317:59:2319:5 | { ... } | | main.rs:2317:43:2317:57 | impl ... | +| main.rs:2317:59:2319:5 | { ... } | impl(T) | main.rs:2317:24:2317:31 | T | +| main.rs:2318:12:2318:12 | x | | main.rs:2317:24:2317:31 | T | +| main.rs:2321:34:2321:34 | x | | main.rs:2321:24:2321:31 | T | +| main.rs:2321:67:2323:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2321:67:2323:5 | { ... } | T | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2321:67:2323:5 | { ... } | T.impl(T) | main.rs:2321:24:2321:31 | T | +| main.rs:2322:17:2322:17 | x | | main.rs:2321:24:2321:31 | T | +| main.rs:2325:34:2325:34 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2325:78:2327:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2325:78:2327:5 | { ... } | T0 | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2325:78:2327:5 | { ... } | T0.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2325:78:2327:5 | { ... } | T1 | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2325:78:2327:5 | { ... } | T1.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:9:2326:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2326:13:2326:13 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2326:28:2326:28 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2329:26:2329:26 | t | | main.rs:2329:29:2329:43 | impl ... | +| main.rs:2329:51:2331:5 | { ... } | | main.rs:2329:23:2329:23 | A | +| main.rs:2330:9:2330:9 | t | | main.rs:2329:29:2329:43 | impl ... | +| main.rs:2333:16:2347:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2334:13:2334:13 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2334:17:2334:20 | f1(...) | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2335:9:2335:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2336:9:2336:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2337:13:2337:13 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2337:17:2337:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2338:32:2338:32 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2339:13:2339:13 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2339:17:2339:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2340:32:2340:32 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | | main.rs:2317:43:2317:57 | impl ... | +| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0 | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1 | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2357:16:2357:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2357:16:2357:20 | SelfParam | TRef | main.rs:2353:5:2354:13 | S | +| main.rs:2357:31:2359:9 | { ... } | | main.rs:2353:5:2354:13 | S | +| main.rs:2368:26:2370:9 | { ... } | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2368:26:2370:9 | { ... } | T | main.rs:2367:10:2367:10 | T | +| main.rs:2369:13:2369:38 | MyVec {...} | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2369:27:2369:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2369:27:2369:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2372:17:2372:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:17:2372:25 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2372:17:2372:25 | SelfParam | TRef.T | main.rs:2367:10:2367:10 | T | +| main.rs:2372:28:2372:32 | value | | main.rs:2367:10:2367:10 | T | +| main.rs:2372:38:2374:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2373:13:2373:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2373:13:2373:16 | self | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2373:13:2373:16 | self | TRef.T | main.rs:2367:10:2367:10 | T | +| main.rs:2373:28:2373:32 | value | | main.rs:2367:10:2367:10 | T | +| main.rs:2381:18:2381:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2381:18:2381:22 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2381:18:2381:22 | SelfParam | TRef.T | main.rs:2377:10:2377:10 | T | +| main.rs:2381:25:2381:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2381:56:2383:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2381:56:2383:9 | { ... } | TRef | main.rs:2377:10:2377:10 | T | +| main.rs:2382:13:2382:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2382:14:2382:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2382:14:2382:17 | self | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2382:14:2382:17 | self | TRef.T | main.rs:2377:10:2377:10 | T | +| main.rs:2382:24:2382:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2386:22:2386:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2386:22:2386:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2386:22:2386:26 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | +| main.rs:2386:35:2388:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2387:17:2387:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2387:17:2387:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2387:17:2387:21 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | +| main.rs:2390:37:2390:37 | a | | main.rs:2390:20:2390:34 | T | +| main.rs:2390:43:2390:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2394:9:2394:9 | a | | main.rs:2390:20:2390:34 | T | +| main.rs:2394:11:2394:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2397:16:2408:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:17:2398:19 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2398:23:2398:34 | ...::new(...) | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2399:9:2399:11 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2400:9:2400:11 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2402:13:2402:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:13:2402:14 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2402:26:2402:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:17:2403:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:17:2403:18 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2405:29:2405:31 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2407:9:2407:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2407:23:2407:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2407:24:2407:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2407:24:2407:25 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2412:16:2414:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:25:2413:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2413:25:2413:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2413:25:2413:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2413:38:2413:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2413:38:2413:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:19:2422:22 | SelfParam | | main.rs:2418:5:2423:5 | Self [trait MyAdd] | +| main.rs:2422:25:2422:27 | rhs | | main.rs:2418:17:2418:26 | Rhs | +| main.rs:2429:19:2429:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:25:2429:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:45:2431:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2430:13:2430:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:19:2438:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:25:2438:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2438:25:2438:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:46:2440:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2439:14:2439:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2439:14:2439:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2447:19:2447:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2447:25:2447:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2447:46:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2448:16:2448:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2462:19:2462:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2462:19:2462:22 | SelfParam | T | main.rs:2458:10:2458:17 | T | +| main.rs:2462:25:2462:29 | other | | main.rs:2456:5:2456:19 | S | +| main.rs:2462:25:2462:29 | other | T | main.rs:2458:10:2458:17 | T | +| main.rs:2462:54:2464:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:16:2463:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:16:2463:19 | self | T | main.rs:2458:10:2458:17 | T | +| main.rs:2463:31:2463:35 | other | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:31:2463:35 | other | T | main.rs:2458:10:2458:17 | T | +| main.rs:2471:19:2471:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2471:19:2471:22 | SelfParam | T | main.rs:2467:10:2467:17 | T | +| main.rs:2471:25:2471:29 | other | | main.rs:2467:10:2467:17 | T | +| main.rs:2471:51:2473:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2472:16:2472:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2472:16:2472:19 | self | T | main.rs:2467:10:2467:17 | T | +| main.rs:2472:31:2472:35 | other | | main.rs:2467:10:2467:17 | T | +| main.rs:2483:19:2483:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2483:19:2483:22 | SelfParam | T | main.rs:2476:14:2476:14 | T | +| main.rs:2483:25:2483:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2483:25:2483:29 | other | TRef | main.rs:2476:14:2476:14 | T | +| main.rs:2483:55:2485:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2484:16:2484:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2484:16:2484:19 | self | T | main.rs:2476:14:2476:14 | T | +| main.rs:2484:31:2484:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2484:31:2484:35 | other | TRef | main.rs:2476:14:2476:14 | T | +| main.rs:2490:20:2490:24 | value | | main.rs:2488:18:2488:18 | T | +| main.rs:2495:20:2495:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2495:40:2497:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2496:13:2496:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2502:20:2502:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2502:41:2508:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2503:16:2503:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2513:21:2513:25 | value | | main.rs:2511:19:2511:19 | T | +| main.rs:2513:31:2513:31 | x | | main.rs:2511:5:2514:5 | Self [trait MyFrom2] | +| main.rs:2518:21:2518:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:33:2518:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:48:2520:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2519:13:2519:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2525:21:2525:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2525:34:2525:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2525:49:2531:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2526:16:2526:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2536:15:2536:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | +| main.rs:2539:15:2539:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | +| main.rs:2544:15:2544:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2544:31:2546:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2545:13:2545:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2549:15:2549:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2549:32:2551:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2550:13:2550:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2556:15:2556:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2556:31:2558:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2561:15:2561:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2561:32:2563:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2562:13:2562:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2566:16:2591:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2567:13:2567:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2568:9:2568:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2568:18:2568:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2569:18:2569:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2569:19:2569:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2570:19:2570:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:18:2571:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2570:18:2570:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2572:11:2572:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:26:2572:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:26:2573:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2573:24:2573:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:11:2575:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:24:2575:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2575:25:2575:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:13:2578:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:17:2578:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:30:2578:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2579:13:2579:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:38:2579:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:30:2580:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:23:2581:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:29:2581:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:9:2582:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2582:27:2582:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:34:2582:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2574:24:2574:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2574:25:2574:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:13:2576:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:17:2576:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:30:2576:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:13:2577:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:17:2577:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:30:2577:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2578:13:2578:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2578:38:2578:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2579:9:2579:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2579:23:2579:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2579:30:2579:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2580:9:2580:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2580:23:2580:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2580:29:2580:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2581:9:2581:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2581:27:2581:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2581:34:2581:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:17:2583:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:17:2585:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:9:2586:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2586:9:2586:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | | main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:18:2587:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2588:9:2588:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:9:2587:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:25:2587:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:9:2590:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:25:2589:28 | true | | {EXTERNAL LOCATION} | bool | | main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:25:2591:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2599:26:2601:9 | { ... } | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2600:13:2600:25 | MyCallable {...} | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:17:2603:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2603:17:2603:21 | SelfParam | TRef | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:31:2605:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2608:16:2715:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2598:26:2600:9 | { ... } | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2599:13:2599:25 | MyCallable {...} | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2602:17:2602:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2602:17:2602:21 | SelfParam | TRef | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2602:31:2604:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2607:16:2714:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2610:9:2610:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2610:18:2610:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2610:28:2610:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2611:9:2611:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:28:2611:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2611:43:2611:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2612:9:2612:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:43:2612:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:9:2613:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:18:2613:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2613:40:2613:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:13:2615:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:21:2615:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:22:2615:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:9:2616:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2616:18:2616:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2616:24:2616:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:13:2618:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:21:2618:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:22:2618:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:9:2619:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2619:18:2619:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2619:24:2619:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:13:2621:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:13:2621:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:31:2621:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:9:2622:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2622:18:2622:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:18:2622:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:24:2622:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:13:2624:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:13:2624:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:31:2624:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:9:2625:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:18:2625:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:18:2625:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:24:2625:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:17:2627:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:28:2627:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:29:2627:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:29:2627:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:36:2627:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:36:2627:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:43:2627:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:43:2627:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:9:2628:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:18:2628:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:19:2628:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:28:2628:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:18:2629:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2629:23:2629:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:32:2629:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:9:2630:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:18:2630:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:27:2630:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:9:2637:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2612:40:2612:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2614:13:2614:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2614:21:2614:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2614:22:2614:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2615:9:2615:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2615:18:2615:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2615:24:2615:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2617:13:2617:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2617:21:2617:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2617:22:2617:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2618:9:2618:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:18:2618:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2618:24:2618:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:13:2620:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2620:13:2620:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2620:31:2620:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2621:9:2621:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2621:18:2621:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2621:18:2621:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2621:24:2621:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2623:13:2623:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2623:13:2623:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2623:31:2623:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2624:9:2624:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2624:18:2624:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2624:18:2624:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2624:24:2624:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:17:2626:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:28:2626:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:29:2626:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:29:2626:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:36:2626:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:36:2626:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:43:2626:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:43:2626:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2627:9:2627:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:18:2627:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2627:19:2627:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:28:2627:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:9:2628:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:18:2628:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2628:23:2628:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2628:32:2628:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:9:2629:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:18:2629:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:27:2629:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:13:2631:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:9:2636:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2633:13:2633:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2633:26:2633:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2633:26:2633:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2634:26:2634:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2634:26:2634:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2636:13:2636:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2636:26:2636:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2636:26:2636:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2638:9:2638:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:18:2638:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:27:2638:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2640:13:2640:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2641:9:2645:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2641:10:2645:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:26:2635:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2635:26:2635:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2637:9:2637:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2637:18:2637:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2637:27:2637:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:13:2639:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2640:9:2644:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2640:10:2644:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:13:2641:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2641:26:2641:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:26:2641:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:26:2642:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2642:26:2642:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:13:2644:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2644:26:2644:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2644:26:2644:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2646:9:2646:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:18:2646:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2646:27:2646:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2648:13:2648:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:25:2648:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:26:2648:42 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:45:2648:61 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:64:2648:80 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2649:9:2653:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2650:12:2650:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2651:9:2653:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:9:2657:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:18:2657:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:24:2657:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:9:2658:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:18:2658:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2658:19:2658:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:28:2658:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:13:2659:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:21:2659:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:9:2660:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:18:2660:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:24:2660:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:13:2661:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:26:2661:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:9:2662:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:18:2662:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2662:19:2662:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:20:2662:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:26:2662:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:32:2662:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:38:2662:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:50:2662:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2664:13:2664:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2665:9:2668:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2666:20:2666:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2667:18:2667:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:9:2669:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2669:18:2669:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2669:25:2669:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:13:2676:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:13:2676:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:13:2676:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:33:2676:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:9:2677:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2677:18:2677:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2677:18:2677:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:18:2677:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:25:2677:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:22:2679:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2679:23:2679:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2680:9:2680:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2680:25:2680:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:13:2682:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:21:2682:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:31:2682:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2682:32:2682:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:9:2683:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:18:2683:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2683:24:2683:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:13:2685:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:13:2685:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:13:2685:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:13:2685:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2685:33:2685:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:9:2686:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2686:18:2686:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2686:18:2686:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2686:18:2686:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2686:18:2686:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:24:2686:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:17:2688:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:17:2688:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:25:2688:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:25:2688:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:9:2689:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:9:2689:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:20:2689:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:9:2690:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:18:2690:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:18:2690:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:24:2690:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:17:2697:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:13:2696:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:29:2696:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:17:2699:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:17:2699:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:24:2699:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:24:2699:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2643:26:2643:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2643:26:2643:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2645:9:2645:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2645:18:2645:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2645:27:2645:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2647:13:2647:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:25:2647:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:26:2647:42 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:45:2647:61 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:64:2647:80 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2648:9:2652:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2649:12:2649:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2650:9:2652:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2656:9:2656:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2656:18:2656:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2656:24:2656:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2657:9:2657:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2657:18:2657:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2657:19:2657:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:19:2657:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2657:28:2657:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2658:13:2658:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2658:21:2658:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2659:9:2659:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2659:18:2659:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2659:24:2659:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:13:2660:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2660:26:2660:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2661:9:2661:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2661:18:2661:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2661:19:2661:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2661:20:2661:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:26:2661:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:32:2661:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:38:2661:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2661:50:2661:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2663:13:2663:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2664:9:2667:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2665:20:2665:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2666:18:2666:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2668:9:2668:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2668:18:2668:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2668:25:2668:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:9:2673:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:24:2673:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2675:13:2675:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2675:13:2675:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2675:32:2675:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2675:33:2675:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2676:9:2676:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:18:2676:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2676:18:2676:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2676:18:2676:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2676:25:2676:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:22:2678:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2678:23:2678:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2679:9:2679:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2679:25:2679:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2681:13:2681:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2681:21:2681:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2681:31:2681:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2681:32:2681:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2682:9:2682:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2682:18:2682:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2682:24:2682:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2684:13:2684:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2684:13:2684:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2684:13:2684:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2684:13:2684:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2684:32:2684:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2684:33:2684:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2685:9:2685:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2685:18:2685:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2685:18:2685:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2685:18:2685:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2685:18:2685:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2685:24:2685:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2687:17:2687:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:17:2687:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:25:2687:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:25:2687:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:9:2688:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2688:9:2688:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:20:2688:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2689:9:2689:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2689:18:2689:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2689:18:2689:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:24:2689:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:17:2696:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:13:2695:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:29:2695:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2698:17:2698:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2698:17:2698:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2698:24:2698:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2698:24:2698:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2699:9:2699:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2699:9:2699:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2699:24:2699:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2699:24:2699:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:33:2699:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2699:33:2699:37 | "one" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | | main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | | main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | | main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:33:2700:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:9:2701:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:24:2701:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2701:24:2701:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:33:2701:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2701:33:2701:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:9:2702:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:20:2702:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:20:2702:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:32:2702:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:22:2703:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:22:2703:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:36:2703:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:33:2700:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2700:33:2700:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2701:9:2701:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2701:20:2701:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2701:20:2701:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2701:32:2701:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:9:2702:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:22:2702:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2702:22:2702:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2702:36:2702:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2703:9:2703:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2703:13:2703:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2703:29:2703:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2703:29:2703:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2703:41:2703:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:9:2704:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2704:29:2704:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:29:2704:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:41:2704:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:9:2705:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:13:2705:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2705:29:2705:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2705:30:2705:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:30:2705:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:35:2705:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:17:2709:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:17:2714:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2711:23:2711:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2712:9:2714:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:13:2713:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2725:40:2727:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2725:40:2727:9 | { ... } | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2725:40:2727:9 | { ... } | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2729:30:2731:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2729:30:2731:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:19:2733:22 | SelfParam | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:19:2733:22 | SelfParam | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:33:2735:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:33:2735:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2734:13:2734:16 | self | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2734:13:2734:16 | self | T | main.rs:2724:10:2724:19 | T | -| main.rs:2746:15:2746:15 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2746:26:2748:5 | { ... } | | main.rs:2746:12:2746:12 | T | -| main.rs:2747:9:2747:9 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2750:16:2772:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2751:13:2751:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x1 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:13:2751:14 | x1 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x2 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:13:2753:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:13:2753:14 | x3 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:13:2753:14 | x3 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:13:2754:14 | x4 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:13:2754:14 | x4 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:18:2754:48 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:18:2754:48 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:35:2754:47 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:18:2755:42 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:18:2755:42 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:29:2755:41 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2759:21:2759:33 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:13:2760:15 | x10 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:13:2760:15 | x10 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:13:2764:15 | x11 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:19:2764:34 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:13:2765:15 | x12 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:19:2765:33 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:13:2766:15 | x13 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:19:2769:9 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2768:20:2768:32 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2770:13:2770:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:19:2770:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:13:2771:15 | x15 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:13:2771:15 | x15 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2771:19:2771:37 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:19:2771:37 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2780:35:2782:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:35:2782:9 | { ... } | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2780:35:2782:9 | { ... } | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2781:14:2781:18 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:21:2781:25 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:16:2783:19 | SelfParam | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:22:2783:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:16:2820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2787:13:2787:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:13:2787:13 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:13:2787:13 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:17:2788:17 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:9:2794:9 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2807:13:2807:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:20:2807:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:13:2808:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2809:13:2809:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:20:2811:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2813:13:2813:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2813:30:2813:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:30:2813:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:30:2813:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2814:25:2814:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2814:25:2814:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2818:13:2818:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2818:17:2818:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2825:27:2847:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2826:13:2826:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:13:2826:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:27:2826:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:27:2826:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:36:2826:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:15:2829:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2829:15:2829:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2830:24:2832:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2831:26:2831:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2833:22:2836:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2835:26:2835:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:35:2840:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:35:2840:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:44:2840:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:15:2841:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:26:2845:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2844:26:2844:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2856:36:2858:9 | { ... } | | main.rs:2853:5:2853:22 | Path | -| main.rs:2857:13:2857:19 | Path {...} | | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:29:2860:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2860:29:2860:33 | SelfParam | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:59:2862:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2860:59:2862:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2860:59:2862:9 | { ... } | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:16:2861:29 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2868:39:2870:9 | { ... } | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2869:13:2869:22 | PathBuf {...} | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:18:2878:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2878:18:2878:22 | SelfParam | TRef | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:34:2882:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2878:34:2882:9 | { ... } | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2880:33:2880:43 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:13:2881:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2885:16:2893:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2886:13:2886:17 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2886:21:2886:31 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:21:2887:25 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2890:13:2890:20 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:24:2890:37 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2891:24:2891:31 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2898:14:2898:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2898:14:2898:18 | SelfParam | TRef | main.rs:2897:5:2899:5 | Self [trait MyTrait] | -| main.rs:2905:14:2905:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2905:14:2905:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2905:14:2905:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:28:2907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2906:13:2906:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2906:13:2906:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:14:2911:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2911:14:2911:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:28:2913:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2912:13:2912:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2917:15:2917:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2917:15:2917:19 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2917:15:2917:19 | SelfParam | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2917:33:2919:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2918:17:2918:20 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2918:17:2918:20 | self | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2922:14:2922:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2922:48:2939:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2922:48:2939:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2922:48:2939:5 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2922:48:2939:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:20:2923:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2933:12:2933:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2935:13:2935:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2935:13:2935:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2937:13:2937:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2937:13:2937:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2943:22:2947:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2944:18:2944:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:33:2946:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2952:11:2952:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2952:30:2960:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2955:13:2957:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2955:16:2955:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2955:21:2957:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2963:20:2970:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2968:18:2968:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2968:18:2968:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2972:20:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:11:2977:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2977:30:2985:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2978:13:2978:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2978:17:2982:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2979:13:2981:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2979:16:2979:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2979:21:2981:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2983:18:2983:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:29:2983:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2989:16:3036:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2991:13:2991:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:13:2991:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2995:26:2995:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2995:26:2995:28 | opt | T | main.rs:2995:23:2995:23 | T | -| main.rs:2995:42:2995:42 | x | | main.rs:2995:23:2995:23 | T | -| main.rs:2995:48:2995:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2998:9:2998:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3005:13:3005:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3005:17:3005:39 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:13:3006:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:13:3006:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:29:2704:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2704:30:2704:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2704:30:2704:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2704:35:2704:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2708:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2710:17:2713:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2710:23:2710:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2711:9:2713:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2712:13:2712:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2724:40:2726:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2724:40:2726:9 | { ... } | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2724:40:2726:9 | { ... } | T.T | main.rs:2723:10:2723:19 | T | +| main.rs:2728:30:2730:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2728:30:2730:9 | { ... } | T | main.rs:2723:10:2723:19 | T | +| main.rs:2732:19:2732:22 | SelfParam | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2732:19:2732:22 | SelfParam | T | main.rs:2723:10:2723:19 | T | +| main.rs:2732:33:2734:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2732:33:2734:9 | { ... } | T | main.rs:2723:10:2723:19 | T | +| main.rs:2733:13:2733:16 | self | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2733:13:2733:16 | self | T | main.rs:2723:10:2723:19 | T | +| main.rs:2745:15:2745:15 | x | | main.rs:2745:12:2745:12 | T | +| main.rs:2745:26:2747:5 | { ... } | | main.rs:2745:12:2745:12 | T | +| main.rs:2746:9:2746:9 | x | | main.rs:2745:12:2745:12 | T | +| main.rs:2749:16:2771:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2750:13:2750:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2750:13:2750:14 | x1 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2750:13:2750:14 | x1 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2751:13:2751:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2751:13:2751:14 | x2 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2751:13:2751:14 | x2 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2752:13:2752:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2752:13:2752:14 | x3 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2752:13:2752:14 | x3 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:13:2753:14 | x4 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2753:13:2753:14 | x4 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:18:2753:48 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2753:18:2753:48 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:35:2753:47 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:13:2754:14 | x5 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:13:2754:14 | x5 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2754:18:2754:42 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:18:2754:42 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2754:29:2754:41 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2758:21:2758:33 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2759:13:2759:15 | x10 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2759:13:2759:15 | x10 | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2759:19:2762:9 | S5::<...> {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2759:19:2762:9 | S5::<...> {...} | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2763:13:2763:15 | x11 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2763:19:2763:34 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2764:13:2764:15 | x12 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2764:19:2764:33 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2765:13:2765:15 | x13 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2765:19:2768:9 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2767:20:2767:32 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2769:13:2769:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2769:19:2769:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:13:2770:15 | x15 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2770:13:2770:15 | x15 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2770:19:2770:37 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2770:19:2770:37 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2779:35:2781:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2779:35:2781:9 | { ... } | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2779:35:2781:9 | { ... } | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:13:2780:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2780:14:2780:18 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:21:2780:25 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2782:16:2782:19 | SelfParam | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2782:22:2782:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2785:16:2819:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2786:13:2786:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2786:13:2786:13 | a | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:13:2786:13 | a | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:17:2787:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2787:17:2787:17 | b | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:17:2787:17 | b | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:13:2788:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:13:2789:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:13:2790:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2792:9:2792:9 | a | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:9 | a | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2793:9:2793:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2793:9:2793:9 | b | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2793:9:2793:9 | b | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2806:13:2806:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2806:20:2806:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:13:2807:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2807:22:2807:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:13:2808:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2808:23:2808:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2810:20:2810:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2812:13:2812:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2812:30:2812:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2812:30:2812:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2812:30:2812:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2812:30:2812:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2813:25:2813:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2813:25:2813:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2813:25:2813:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2813:25:2813:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2817:13:2817:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2817:17:2817:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2818:9:2818:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2824:27:2846:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2825:13:2825:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2825:13:2825:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2825:27:2825:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2825:27:2825:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2825:36:2825:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:15:2828:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2828:15:2828:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2829:24:2831:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2830:26:2830:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2830:26:2830:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2830:26:2830:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2830:26:2830:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2832:22:2835:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2834:26:2834:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2834:26:2834:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2839:13:2839:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:13:2839:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:26:2839:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:26:2839:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:35:2839:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:35:2839:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:44:2839:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:15:2840:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:15:2840:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2841:26:2844:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2843:26:2843:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2843:26:2843:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2855:36:2857:9 | { ... } | | main.rs:2852:5:2852:22 | Path | +| main.rs:2856:13:2856:19 | Path {...} | | main.rs:2852:5:2852:22 | Path | +| main.rs:2859:29:2859:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2859:29:2859:33 | SelfParam | TRef | main.rs:2852:5:2852:22 | Path | +| main.rs:2859:59:2861:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2859:59:2861:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2859:59:2861:9 | { ... } | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2860:16:2860:29 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2867:39:2869:9 | { ... } | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2868:13:2868:22 | PathBuf {...} | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2877:18:2877:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2877:18:2877:22 | SelfParam | TRef | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2877:34:2881:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2877:34:2881:9 | { ... } | TRef | main.rs:2852:5:2852:22 | Path | +| main.rs:2879:33:2879:43 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | +| main.rs:2880:13:2880:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2884:16:2892:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2885:13:2885:17 | path1 | | main.rs:2852:5:2852:22 | Path | +| main.rs:2885:21:2885:31 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | +| main.rs:2886:21:2886:25 | path1 | | main.rs:2852:5:2852:22 | Path | +| main.rs:2889:13:2889:20 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2889:24:2889:37 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2890:24:2890:31 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2897:14:2897:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2897:14:2897:18 | SelfParam | TRef | main.rs:2896:5:2898:5 | Self [trait MyTrait] | +| main.rs:2904:14:2904:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2904:14:2904:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2904:14:2904:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2904:28:2906:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2905:13:2905:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2905:13:2905:16 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2905:13:2905:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2910:14:2910:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2910:14:2910:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2910:14:2910:18 | SelfParam | TRef.T | main.rs:2900:5:2901:19 | S | +| main.rs:2910:14:2910:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2910:28:2912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2911:13:2911:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2911:13:2911:16 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2911:13:2911:16 | self | TRef.T | main.rs:2900:5:2901:19 | S | +| main.rs:2911:13:2911:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2916:15:2916:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2916:15:2916:19 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2916:15:2916:19 | SelfParam | TRef.T | main.rs:2915:10:2915:16 | T | +| main.rs:2916:33:2918:9 | { ... } | | main.rs:2900:5:2901:19 | S | +| main.rs:2916:33:2918:9 | { ... } | T | main.rs:2900:5:2901:19 | S | +| main.rs:2916:33:2918:9 | { ... } | T.T | main.rs:2915:10:2915:16 | T | +| main.rs:2917:17:2917:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2917:17:2917:20 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2917:17:2917:20 | self | TRef.T | main.rs:2915:10:2915:16 | T | +| main.rs:2921:14:2921:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2921:48:2938:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2921:48:2938:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2921:48:2938:5 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2921:48:2938:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2922:20:2922:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2932:12:2932:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2934:13:2934:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2934:13:2934:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:13:2936:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:13:2936:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2942:22:2946:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2943:18:2943:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2943:33:2945:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2944:13:2944:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:11:2951:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2951:30:2959:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2954:13:2956:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2954:16:2954:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2954:21:2956:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2962:20:2969:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2967:18:2967:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2967:18:2967:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2967:18:2967:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2967:18:2967:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2971:20:2973:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2976:11:2976:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2976:30:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2977:13:2977:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2977:17:2981:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2978:13:2980:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2978:16:2978:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2978:21:2980:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2982:29:2982:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2988:16:3035:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2990:13:2990:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2990:13:2990:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2994:26:2994:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2994:26:2994:28 | opt | T | main.rs:2994:23:2994:23 | T | +| main.rs:2994:42:2994:42 | x | | main.rs:2994:23:2994:23 | T | +| main.rs:2994:48:2994:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:9:2997:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3004:13:3004:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3004:17:3004:39 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3005:13:3005:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3005:13:3005:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:13:3005:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3005:40:3005:40 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3006:13:3006:13 | x | | main.rs:2999:9:3002:9 | MyEither | | main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:40:3006:40 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:17:3007:52 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:17:3007:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3009:13:3009:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:13:3009:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3010:20:3010:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3013:29:3013:29 | e | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3013:29:3013:29 | e | T1 | main.rs:3013:26:3013:26 | T | -| main.rs:3013:29:3013:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3013:53:3013:53 | x | | main.rs:3013:26:3013:26 | T | -| main.rs:3013:59:3013:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3016:13:3016:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:17:3018:9 | ...::B {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3017:20:3017:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3019:9:3019:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3019:23:3019:23 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3022:13:3022:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:13:3022:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:13:3022:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3026:29:3026:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3026:29:3026:31 | res | E | main.rs:3026:26:3026:26 | E | -| main.rs:3026:29:3026:31 | res | T | main.rs:3026:23:3026:23 | T | -| main.rs:3026:48:3026:48 | x | | main.rs:3026:26:3026:26 | E | -| main.rs:3026:54:3026:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3029:9:3029:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3029:23:3029:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3031:17:3031:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:17:3031:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:21:3031:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:21:3031:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3032:9:3032:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3042:14:3042:17 | SelfParam | | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:14:3045:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3045:14:3045:18 | SelfParam | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:21:3045:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3045:21:3045:25 | other | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:44:3047:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3045:44:3047:9 | { ... } | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3046:13:3046:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3046:13:3046:16 | self | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3052:14:3052:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3052:28:3054:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3053:13:3053:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3059:14:3059:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3059:28:3061:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3066:14:3066:17 | SelfParam | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3066:28:3068:9 | { ... } | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:16 | self | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3071:25:3075:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3077:12:3081:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3078:13:3078:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3079:13:3079:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3079:17:3079:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3080:17:3080:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3080:21:3080:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3089:11:3124:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3091:5:3091:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:5:3092:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:20:3092:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:41:3092:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3093:5:3093:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3109:5:3109:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3122:5:3122:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3122:5:3122:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3122:5:3122:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3122:16:3122:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3006:17:3006:52 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3006:17:3006:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3008:13:3008:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3008:13:3008:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3008:17:3010:9 | ...::B::<...> {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3009:20:3009:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3012:29:3012:29 | e | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3012:29:3012:29 | e | T1 | main.rs:3012:26:3012:26 | T | +| main.rs:3012:29:3012:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3012:53:3012:53 | x | | main.rs:3012:26:3012:26 | T | +| main.rs:3012:59:3012:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3015:13:3015:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3015:17:3017:9 | ...::B {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3016:20:3016:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3018:9:3018:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3018:23:3018:23 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3021:13:3021:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3021:13:3021:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3021:13:3021:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3025:29:3025:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3025:29:3025:31 | res | E | main.rs:3025:26:3025:26 | E | +| main.rs:3025:29:3025:31 | res | T | main.rs:3025:23:3025:23 | T | +| main.rs:3025:48:3025:48 | x | | main.rs:3025:26:3025:26 | E | +| main.rs:3025:54:3025:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3028:9:3028:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3028:23:3028:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3030:17:3030:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3030:17:3030:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3030:21:3030:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3030:21:3030:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3031:9:3031:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3031:9:3031:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3034:9:3034:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3034:9:3034:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:14:3044:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3044:14:3044:18 | SelfParam | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:21:3044:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3044:21:3044:25 | other | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:44:3046:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3044:44:3046:9 | { ... } | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3045:13:3045:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3045:13:3045:16 | self | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3051:14:3051:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3051:28:3053:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3052:13:3052:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3058:14:3058:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3058:28:3060:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3059:13:3059:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3065:14:3065:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3065:14:3065:17 | SelfParam | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3065:28:3067:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3065:28:3067:9 | { ... } | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3066:13:3066:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3066:13:3066:16 | self | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3070:25:3074:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3076:12:3080:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3078:13:3078:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3078:17:3078:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3079:17:3079:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3088:11:3123:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3089:5:3089:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:5:3091:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:20:3091:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:41:3091:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:5:3092:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3108:5:3108:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3121:5:3121:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3121:5:3121:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:3121:5:3121:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3121:16:3121:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3122:5:3122:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -7671,7 +7671,7 @@ inferType | main.rs:1411:34:1411:34 | x | T | main.rs:1407:10:1407:10 | T | | main.rs:1411:40:1411:40 | x | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1411:40:1411:40 | x | T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1465:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1419:16:1464:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | | main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | @@ -7696,2543 +7696,2562 @@ inferType | main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | | main.rs:1425:26:1425:27 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1428:17:1428:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:17:1428:18 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1428:22:1428:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:22:1428:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1429:9:1429:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:9:1429:10 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1429:9:1429:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1429:21:1429:21 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1430:18:1430:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1430:18:1430:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1430:18:1430:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1430:18:1430:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1430:26:1430:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1430:26:1430:27 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:17:1432:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:17:1432:18 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:22:1432:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:22:1432:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:9:1433:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:23:1433:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1433:23:1433:29 | &mut x4 | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:23:1433:29 | &mut x4 | TRef.T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:28:1433:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:28:1433:29 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:32:1433:32 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1434:18:1434:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1434:18:1434:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1434:18:1434:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1434:18:1434:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1434:26:1434:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1434:26:1434:27 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:13:1436:14 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:13:1436:14 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:13:1436:14 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:18:1436:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:18:1436:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:18:1436:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:35:1436:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:35:1436:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1437:18:1437:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1437:18:1437:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1437:18:1437:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1437:18:1437:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1437:26:1437:27 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:27 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:27 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1437:26:1437:37 | x5.flatten() | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:37 | x5.flatten() | T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:13:1439:14 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:13:1439:14 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:13:1439:14 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:18:1439:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:18:1439:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:18:1439:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:35:1439:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:35:1439:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:26:1440:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1440:59:1440:60 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:59:1440:60 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:59:1440:60 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:13:1443:19 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:13:1443:19 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:23:1447:9 | if ... {...} else {...} | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:23:1447:9 | if ... {...} else {...} | T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:26:1443:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1443:26:1443:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1443:30:1443:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1443:32:1445:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:32:1445:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1444:13:1444:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1444:13:1444:30 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1445:16:1447:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1445:16:1447:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1446:13:1446:31 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1446:13:1446:31 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1446:30:1446:30 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1448:26:1448:32 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1448:26:1448:32 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:13:1451:22 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1451:13:1451:22 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:26:1454:9 | match ... { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1451:26:1454:9 | match ... { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:32:1451:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1451:32:1451:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1451:36:1451:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1452:13:1452:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1452:21:1452:38 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1452:21:1452:38 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1453:13:1453:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1453:22:1453:40 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1453:22:1453:40 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1453:39:1453:39 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1455:18:1455:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1455:18:1455:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1455:18:1455:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1455:18:1455:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1455:26:1455:35 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1455:26:1455:35 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:13:1458:21 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1458:13:1458:21 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:25:1463:9 | loop { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1458:25:1463:9 | loop { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:30:1463:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1459:13:1461:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1459:16:1459:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1459:16:1459:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1459:20:1459:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1459:22:1461:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1460:23:1460:40 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1460:23:1460:40 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1462:19:1462:37 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1462:19:1462:37 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1462:36:1462:36 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1464:18:1464:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1464:18:1464:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1464:18:1464:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1464:26:1464:34 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1464:26:1464:34 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1482:15:1482:18 | SelfParam | | main.rs:1470:5:1471:19 | S | -| main.rs:1482:15:1482:18 | SelfParam | T | main.rs:1481:10:1481:10 | T | -| main.rs:1482:26:1484:9 | { ... } | | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:16 | self | | main.rs:1470:5:1471:19 | S | -| main.rs:1483:13:1483:16 | self | T | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:18 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1486:15:1486:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1486:15:1486:19 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1486:15:1486:19 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:28:1488:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1486:28:1488:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:13:1487:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1487:13:1487:19 | &... | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:14:1487:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1487:14:1487:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1487:14:1487:19 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1490:15:1490:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1490:15:1490:25 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1490:15:1490:25 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:34:1492:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1490:34:1492:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:13:1491:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1491:13:1491:19 | &... | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:14:1491:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1491:14:1491:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1491:14:1491:19 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1496:29:1496:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1496:29:1496:33 | SelfParam | TRef | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1497:33:1497:36 | SelfParam | | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1503:29:1503:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1503:43:1505:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:13:1504:22 | (...) | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:13:1504:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:14:1504:21 | * ... | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:15:1504:21 | (...) | | {EXTERNAL LOCATION} | & | -| main.rs:1504:15:1504:21 | (...) | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:16:1504:20 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1504:16:1504:20 | * ... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:17:1504:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:33:1508:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1508:33:1508:36 | SelfParam | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:46:1510:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:13:1509:19 | (...) | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1509:13:1509:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:14:1509:18 | * ... | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1509:15:1509:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1509:15:1509:18 | self | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1513:16:1563:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1514:13:1514:14 | x1 | | main.rs:1470:5:1471:19 | S | -| main.rs:1514:13:1514:14 | x1 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1514:18:1514:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1514:18:1514:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1514:20:1514:21 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1515:18:1515:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1515:18:1515:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1515:18:1515:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1515:26:1515:27 | x1 | | main.rs:1470:5:1471:19 | S | -| main.rs:1515:26:1515:27 | x1 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1515:26:1515:32 | x1.m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:13:1517:14 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1517:13:1517:14 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:18:1517:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1517:18:1517:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:20:1517:21 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1427:17:1427:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1427:17:1427:18 | x3 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1427:22:1427:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1427:22:1427:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1428:9:1428:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1428:9:1428:10 | x3 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1428:9:1428:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1428:21:1428:21 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1429:18:1429:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1429:18:1429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1429:18:1429:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1429:18:1429:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1429:26:1429:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1429:26:1429:27 | x3 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1431:17:1431:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1431:17:1431:18 | x4 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1431:22:1431:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1431:22:1431:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1432:9:1432:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1432:23:1432:29 | &mut x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1432:23:1432:29 | &mut x4 | TRef | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1432:23:1432:29 | &mut x4 | TRef.T | main.rs:1416:5:1417:13 | S | +| main.rs:1432:28:1432:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1432:28:1432:29 | x4 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1432:32:1432:32 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1433:18:1433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1433:18:1433:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1433:18:1433:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1433:18:1433:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1433:26:1433:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1433:26:1433:27 | x4 | T | main.rs:1416:5:1417:13 | S | +| main.rs:1435:13:1435:14 | x5 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1435:13:1435:14 | x5 | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1435:13:1435:14 | x5 | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1435:18:1435:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1435:18:1435:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1435:18:1435:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1435:35:1435:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1435:35:1435:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1436:18:1436:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:26:1436:27 | x5 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1436:26:1436:27 | x5 | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1436:26:1436:27 | x5 | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1436:26:1436:37 | x5.flatten() | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1436:26:1436:37 | x5.flatten() | T | main.rs:1416:5:1417:13 | S | +| main.rs:1438:13:1438:14 | x6 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1438:13:1438:14 | x6 | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1438:13:1438:14 | x6 | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1438:18:1438:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1438:18:1438:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1438:18:1438:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1438:35:1438:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1438:35:1438:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1439:18:1439:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1439:18:1439:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1439:18:1439:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1439:18:1439:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1439:26:1439:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1439:26:1439:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1439:59:1439:60 | x6 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1439:59:1439:60 | x6 | T | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1439:59:1439:60 | x6 | T.T | main.rs:1416:5:1417:13 | S | +| main.rs:1442:13:1442:19 | from_if | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1442:13:1442:19 | from_if | T | main.rs:1416:5:1417:13 | S | +| main.rs:1442:23:1446:9 | if ... {...} else {...} | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1442:23:1446:9 | if ... {...} else {...} | T | main.rs:1416:5:1417:13 | S | +| main.rs:1442:26:1442:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1442:26:1442:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1442:30:1442:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1442:32:1444:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1442:32:1444:9 | { ... } | T | main.rs:1416:5:1417:13 | S | +| main.rs:1443:13:1443:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1443:13:1443:30 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1444:16:1446:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1444:16:1446:9 | { ... } | T | main.rs:1416:5:1417:13 | S | +| main.rs:1445:13:1445:31 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1445:13:1445:31 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1445:30:1445:30 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1447:18:1447:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1447:26:1447:32 | from_if | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1447:26:1447:32 | from_if | T | main.rs:1416:5:1417:13 | S | +| main.rs:1450:13:1450:22 | from_match | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1450:13:1450:22 | from_match | T | main.rs:1416:5:1417:13 | S | +| main.rs:1450:26:1453:9 | match ... { ... } | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1450:26:1453:9 | match ... { ... } | T | main.rs:1416:5:1417:13 | S | +| main.rs:1450:32:1450:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1450:32:1450:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1450:36:1450:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1451:13:1451:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1451:21:1451:38 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1451:21:1451:38 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1452:13:1452:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1452:22:1452:40 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1452:22:1452:40 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1452:39:1452:39 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1454:18:1454:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:26:1454:35 | from_match | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1454:26:1454:35 | from_match | T | main.rs:1416:5:1417:13 | S | +| main.rs:1457:13:1457:21 | from_loop | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1457:13:1457:21 | from_loop | T | main.rs:1416:5:1417:13 | S | +| main.rs:1457:25:1462:9 | loop { ... } | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1457:25:1462:9 | loop { ... } | T | main.rs:1416:5:1417:13 | S | +| main.rs:1457:30:1462:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1458:13:1460:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1458:16:1458:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1458:16:1458:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1458:20:1458:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1458:22:1460:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1459:23:1459:40 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1459:23:1459:40 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1461:19:1461:37 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1461:19:1461:37 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1461:36:1461:36 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1463:18:1463:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1463:18:1463:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1463:18:1463:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1463:18:1463:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1463:26:1463:34 | from_loop | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1463:26:1463:34 | from_loop | T | main.rs:1416:5:1417:13 | S | +| main.rs:1481:15:1481:18 | SelfParam | | main.rs:1469:5:1470:19 | S | +| main.rs:1481:15:1481:18 | SelfParam | T | main.rs:1480:10:1480:10 | T | +| main.rs:1481:26:1483:9 | { ... } | | main.rs:1480:10:1480:10 | T | +| main.rs:1482:13:1482:16 | self | | main.rs:1469:5:1470:19 | S | +| main.rs:1482:13:1482:16 | self | T | main.rs:1480:10:1480:10 | T | +| main.rs:1482:13:1482:18 | self.0 | | main.rs:1480:10:1480:10 | T | +| main.rs:1485:15:1485:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1485:15:1485:19 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1485:15:1485:19 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1485:28:1487:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1485:28:1487:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1486:13:1486:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1486:13:1486:19 | &... | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1486:14:1486:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1486:14:1486:17 | self | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1486:14:1486:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1486:14:1486:19 | self.0 | | main.rs:1480:10:1480:10 | T | +| main.rs:1489:15:1489:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1489:15:1489:25 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1489:15:1489:25 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1489:34:1491:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1489:34:1491:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1490:13:1490:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1490:13:1490:19 | &... | TRef | main.rs:1480:10:1480:10 | T | +| main.rs:1490:14:1490:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1490:14:1490:17 | self | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1490:14:1490:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | +| main.rs:1490:14:1490:19 | self.0 | | main.rs:1480:10:1480:10 | T | +| main.rs:1495:29:1495:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1495:29:1495:33 | SelfParam | TRef | main.rs:1494:5:1497:5 | Self [trait ATrait] | +| main.rs:1496:33:1496:36 | SelfParam | | main.rs:1494:5:1497:5 | Self [trait ATrait] | +| main.rs:1502:29:1502:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1502:29:1502:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1502:29:1502:33 | SelfParam | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1502:43:1504:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1503:13:1503:22 | (...) | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1503:13:1503:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1503:14:1503:21 | * ... | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1503:15:1503:21 | (...) | | {EXTERNAL LOCATION} | & | +| main.rs:1503:15:1503:21 | (...) | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1503:16:1503:20 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1503:16:1503:20 | * ... | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1503:17:1503:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1503:17:1503:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1503:17:1503:20 | self | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1507:33:1507:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1507:33:1507:36 | SelfParam | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1507:46:1509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1508:13:1508:19 | (...) | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1508:13:1508:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1508:14:1508:18 | * ... | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1508:15:1508:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1508:15:1508:18 | self | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1512:16:1562:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1513:13:1513:14 | x1 | | main.rs:1469:5:1470:19 | S | +| main.rs:1513:13:1513:14 | x1 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1513:18:1513:22 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1513:18:1513:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1513:20:1513:21 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1514:18:1514:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1514:18:1514:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1514:18:1514:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1514:18:1514:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1514:26:1514:27 | x1 | | main.rs:1469:5:1470:19 | S | +| main.rs:1514:26:1514:27 | x1 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1514:26:1514:32 | x1.m1() | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1516:13:1516:14 | x2 | | main.rs:1469:5:1470:19 | S | +| main.rs:1516:13:1516:14 | x2 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1516:18:1516:22 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1516:18:1516:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1516:20:1516:21 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1518:18:1518:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1518:18:1518:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1518:18:1518:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1518:18:1518:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1518:26:1518:27 | x2 | | main.rs:1469:5:1470:19 | S | +| main.rs:1518:26:1518:27 | x2 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1518:26:1518:32 | x2.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1518:26:1518:32 | x2.m2() | TRef | main.rs:1472:5:1473:14 | S2 | | main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1519:26:1519:27 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1519:26:1519:27 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1519:26:1519:32 | x2.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1519:26:1519:32 | x2.m2() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1520:18:1520:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1520:18:1520:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1520:18:1520:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1520:26:1520:27 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1520:26:1520:27 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1520:26:1520:32 | x2.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1520:26:1520:32 | x2.m3() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:13:1522:14 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1522:13:1522:14 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:18:1522:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1522:18:1522:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:20:1522:21 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1519:26:1519:27 | x2 | | main.rs:1469:5:1470:19 | S | +| main.rs:1519:26:1519:27 | x2 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1519:26:1519:32 | x2.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1519:26:1519:32 | x2.m3() | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1521:13:1521:14 | x3 | | main.rs:1469:5:1470:19 | S | +| main.rs:1521:13:1521:14 | x3 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1521:18:1521:22 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1521:18:1521:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1521:20:1521:21 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1523:18:1523:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1523:18:1523:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:18:1523:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1523:18:1523:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1523:26:1523:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1523:26:1523:41 | ...::m2(...) | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1523:38:1523:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1523:38:1523:40 | &x3 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1523:38:1523:40 | &x3 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1523:39:1523:40 | x3 | | main.rs:1469:5:1470:19 | S | +| main.rs:1523:39:1523:40 | x3 | T | main.rs:1472:5:1473:14 | S2 | | main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m2(...) | TRef | main.rs:1473:5:1474:14 | S2 | +| main.rs:1524:26:1524:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1524:26:1524:41 | ...::m3(...) | TRef | main.rs:1472:5:1473:14 | S2 | | main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1524:38:1524:40 | &x3 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1524:38:1524:40 | &x3 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1524:39:1524:40 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1524:39:1524:40 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:18:1525:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1525:18:1525:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1525:18:1525:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1525:26:1525:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1525:26:1525:41 | ...::m3(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:38:1525:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1525:38:1525:40 | &x3 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1525:38:1525:40 | &x3 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:39:1525:40 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1525:39:1525:40 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:13:1527:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:13:1527:14 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1527:13:1527:14 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:18:1527:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1527:18:1527:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1527:18:1527:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:19:1527:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1527:19:1527:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:21:1527:22 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1524:38:1524:40 | &x3 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1524:38:1524:40 | &x3 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1524:39:1524:40 | x3 | | main.rs:1469:5:1470:19 | S | +| main.rs:1524:39:1524:40 | x3 | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1526:13:1526:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1526:13:1526:14 | x4 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1526:13:1526:14 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1526:18:1526:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1526:18:1526:23 | &... | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1526:18:1526:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1526:19:1526:23 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1526:19:1526:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1526:21:1526:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1528:18:1528:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1528:18:1528:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1528:18:1528:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1528:18:1528:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1528:26:1528:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:27 | x4 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1528:26:1528:27 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1528:26:1528:32 | x4.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:32 | x4.m2() | TRef | main.rs:1472:5:1473:14 | S2 | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:27 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1529:26:1529:27 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1529:26:1529:32 | x4.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:32 | x4.m2() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1530:18:1530:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1530:18:1530:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1530:18:1530:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1530:26:1530:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1530:26:1530:27 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1530:26:1530:27 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1530:26:1530:32 | x4.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1530:26:1530:32 | x4.m3() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:13:1532:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:13:1532:14 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1532:13:1532:14 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:18:1532:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1532:18:1532:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1532:18:1532:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:19:1532:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1532:19:1532:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:21:1532:22 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1529:26:1529:27 | x4 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1529:26:1529:27 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1529:26:1529:32 | x4.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1529:26:1529:32 | x4.m3() | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1531:13:1531:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1531:13:1531:14 | x5 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1531:13:1531:14 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1531:18:1531:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1531:18:1531:23 | &... | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1531:18:1531:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1531:19:1531:23 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1531:19:1531:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1531:21:1531:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1533:26:1533:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1533:26:1533:27 | x5 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1533:26:1533:27 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1533:26:1533:32 | x5.m1() | | main.rs:1472:5:1473:14 | S2 | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1534:26:1534:27 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1534:26:1534:27 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1534:26:1534:32 | x5.m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1535:18:1535:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1535:18:1535:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1535:18:1535:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1535:26:1535:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1535:26:1535:27 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1535:26:1535:27 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1535:26:1535:29 | x5.0 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:13:1537:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:13:1537:14 | x6 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1537:13:1537:14 | x6 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:18:1537:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1537:18:1537:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1537:18:1537:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:19:1537:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1537:19:1537:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:21:1537:22 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:18:1540:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1540:18:1540:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1540:18:1540:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1540:26:1540:30 | (...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1540:26:1540:30 | (...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:26:1540:35 | ... .m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:27:1540:29 | * ... | | main.rs:1470:5:1471:19 | S | -| main.rs:1540:27:1540:29 | * ... | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:28:1540:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1540:28:1540:29 | x6 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1540:28:1540:29 | x6 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:13:1542:14 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1542:13:1542:14 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1542:13:1542:14 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:18:1542:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1542:18:1542:23 | S(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1542:18:1542:23 | S(...) | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:20:1542:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1542:20:1542:22 | &S2 | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:21:1542:22 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:13:1545:13 | t | | {EXTERNAL LOCATION} | & | -| main.rs:1545:13:1545:13 | t | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:17:1545:18 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1545:17:1545:18 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1545:17:1545:18 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:17:1545:23 | x7.m1() | | {EXTERNAL LOCATION} | & | -| main.rs:1545:17:1545:23 | x7.m1() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1546:18:1546:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1546:18:1546:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1546:18:1546:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1546:26:1546:27 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1546:26:1546:27 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1546:26:1546:27 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1548:13:1548:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1548:26:1548:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:26:1548:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1548:26:1548:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1552:13:1552:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1552:13:1552:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1552:17:1552:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1552:17:1552:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1552:17:1552:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1554:13:1554:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1554:13:1554:20 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:24:1554:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1554:24:1554:39 | &... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:25:1554:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:36:1554:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1556:13:1556:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1556:17:1556:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1556:17:1556:24 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1556:17:1556:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1557:18:1557:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1557:18:1557:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1557:18:1557:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1557:26:1557:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1560:13:1560:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1560:13:1560:20 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:24:1560:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1560:24:1560:39 | &... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:25:1560:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:36:1560:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1561:13:1561:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1561:17:1561:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1561:17:1561:24 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1561:17:1561:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:18:1562:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1562:18:1562:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1562:18:1562:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1562:26:1562:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:16:1569:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1569:16:1569:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:16:1572:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1572:16:1572:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:32:1574:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1572:32:1574:9 | { ... } | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:16 | self | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:22 | self.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:22 | self.foo() | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1581:16:1581:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1581:16:1581:20 | SelfParam | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1581:36:1583:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1581:36:1583:9 | { ... } | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1582:13:1582:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1582:13:1582:16 | self | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1586:16:1589:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1587:13:1587:13 | x | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1587:17:1587:24 | MyStruct | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1588:9:1588:9 | x | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1588:9:1588:15 | x.bar() | | {EXTERNAL LOCATION} | & | -| main.rs:1588:9:1588:15 | x.bar() | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1598:16:1598:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1598:32:1600:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1598:32:1600:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:32:1600:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1599:13:1599:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1599:13:1599:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1599:13:1599:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:16:1602:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1602:16:1602:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:16:1602:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:23:1602:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1602:23:1602:23 | x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:23:1602:23 | x | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:42:1604:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1602:42:1604:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:42:1604:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1603:13:1603:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1603:13:1603:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1603:13:1603:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1607:16:1613:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1608:13:1608:13 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1608:13:1608:13 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1608:17:1608:27 | MyStruct(...) | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1608:17:1608:27 | MyStruct(...) | T | main.rs:1593:5:1593:13 | S | -| main.rs:1608:26:1608:26 | S | | main.rs:1593:5:1593:13 | S | -| main.rs:1609:9:1609:9 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1609:9:1609:9 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1609:9:1609:15 | x.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1609:9:1609:15 | x.foo() | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1609:9:1609:15 | x.foo() | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:13:1610:13 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1610:13:1610:13 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:17:1610:27 | MyStruct(...) | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1610:17:1610:27 | MyStruct(...) | T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:26:1610:26 | S | | main.rs:1593:5:1593:13 | S | -| main.rs:1612:9:1612:9 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:9:1612:9 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:9:1612:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1612:9:1612:18 | x.bar(...) | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:9:1612:18 | x.bar(...) | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:15:1612:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1612:15:1612:17 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1612:15:1612:17 | &... | TRef.TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:15:1612:17 | &... | TRef.TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:16:1612:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:17 | &x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:16:1612:17 | &x | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:17:1612:17 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:17:1612:17 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1623:17:1623:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1623:28:1625:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1624:13:1624:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:13:1624:16 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:13:1624:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:13:1624:34 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1624:25:1624:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:26:1624:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:26:1624:29 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:26:1624:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1631:15:1631:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1631:31:1633:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1631:31:1633:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:14:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:15:1632:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:16:1632:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:15:1635:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:25 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:37:1637:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1635:37:1637:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:14:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:15:1636:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:16:1636:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:15:1639:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:15:1639:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:34:1641:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1639:34:1641:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1640:13:1640:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1640:13:1640:13 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:15:1643:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:34:1645:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1643:34:1645:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:14:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:15:1644:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:16:1644:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1648:16:1661:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1649:13:1649:13 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1649:17:1649:20 | S {...} | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:14 | x.f1() | | {EXTERNAL LOCATION} | & | -| main.rs:1650:9:1650:14 | x.f1() | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:14 | x.f2() | | {EXTERNAL LOCATION} | & | -| main.rs:1651:9:1651:14 | x.f2() | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:9:1652:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1652:9:1652:17 | ...::f3(...) | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:15:1652:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1652:15:1652:16 | &x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:16:1652:16 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1654:13:1654:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1654:17:1654:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1654:18:1654:24 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:18:1654:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:19:1654:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:19:1654:24 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1654:19:1654:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:20:1654:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1654:20:1654:24 | &true | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:21:1654:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1658:17:1658:20 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1658:24:1658:41 | ...::default(...) | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1659:9:1659:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:22:1659:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1659:22:1659:30 | &mut flag | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1659:27:1659:30 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1660:18:1660:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1660:18:1660:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1660:18:1660:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1660:26:1660:29 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1675:43:1678:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1675:43:1678:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1675:43:1678:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:13:1676:13 | x | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:17:1676:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1676:17:1676:30 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:17:1676:31 | TryExpr | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:28:1676:29 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:9:1677:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1677:9:1677:22 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:9:1677:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:20:1677:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1682:46:1686:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:46:1686:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1682:46:1686:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:13:1683:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1683:13:1683:13 | x | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:17:1683:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1683:17:1683:30 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:28:1683:29 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:13:1684:13 | y | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:17:1684:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1684:17:1684:17 | x | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:17:1684:18 | TryExpr | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1685:9:1685:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1685:9:1685:22 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1685:9:1685:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1685:20:1685:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1690:40:1695:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:40:1695:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1690:40:1695:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:13:1691:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:13:1691:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1691:13:1691:13 | x | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:17:1691:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:17:1691:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1691:17:1691:42 | ...::Ok(...) | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:28:1691:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:28:1691:41 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:39:1691:40 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:17 | x | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:18 | TryExpr | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:24:1693:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1693:24:1693:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1694:9:1694:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1694:9:1694:22 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1694:9:1694:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1694:20:1694:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:30:1699:34 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1699:69:1706:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:69:1706:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:69:1706:5 | { ... } | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:13:1700:17 | value | | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:21:1700:25 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1700:21:1700:25 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:26 | TryExpr | | main.rs:1699:20:1699:27 | T | -| main.rs:1701:22:1701:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:22:1701:38 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:22:1701:38 | ...::Ok(...) | T | main.rs:1699:20:1699:27 | T | -| main.rs:1701:22:1704:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:22:1704:10 | ... .and_then(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:33:1701:37 | value | | main.rs:1699:20:1699:27 | T | -| main.rs:1701:49:1704:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Output).E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:53:1704:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:53:1704:9 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1702:22:1702:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1702:22:1702:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1702:22:1702:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1702:22:1702:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1703:13:1703:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1703:13:1703:34 | ...::Ok::<...>(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1705:9:1705:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1705:9:1705:23 | ...::Err(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1705:9:1705:23 | ...::Err(...) | T | main.rs:1699:20:1699:27 | T | -| main.rs:1705:21:1705:22 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1709:16:1725:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:9:1712:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1710:16:1710:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:16:1710:33 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:16:1710:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:27:1710:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:37:1710:52 | try_same_error(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:54:1712:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1711:22:1711:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1711:22:1711:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:30:1711:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:9:1716:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1714:16:1714:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:16:1714:33 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:16:1714:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:27:1714:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:37:1714:55 | try_convert_error(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:57:1716:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1715:22:1715:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1715:22:1715:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:30:1715:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:9:1720:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1718:16:1718:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:16:1718:33 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:16:1718:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:27:1718:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:37:1718:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:37:1718:49 | try_chained(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:37:1718:49 | try_chained(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:51:1720:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1719:22:1719:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1719:22:1719:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:30:1719:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:9:1724:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1722:16:1722:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:16:1722:33 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:16:1722:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:27:1722:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:37:1722:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:37:1722:63 | try_complex(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:37:1722:63 | try_complex(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:49:1722:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:49:1722:62 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:49:1722:62 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:60:1722:61 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:65:1724:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1723:22:1723:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1723:22:1723:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:30:1723:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1729:16:1820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1730:13:1730:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1730:22:1730:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:13:1731:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:17:1731:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1534:26:1534:27 | x5 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1534:26:1534:27 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1534:26:1534:29 | x5.0 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1536:13:1536:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1536:13:1536:14 | x6 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1536:13:1536:14 | x6 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1536:18:1536:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1536:18:1536:23 | &... | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1536:18:1536:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1536:19:1536:23 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1536:19:1536:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1536:21:1536:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1539:18:1539:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:26:1539:30 | (...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1539:26:1539:30 | (...) | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1539:26:1539:35 | ... .m1() | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1539:27:1539:29 | * ... | | main.rs:1469:5:1470:19 | S | +| main.rs:1539:27:1539:29 | * ... | T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1539:28:1539:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1539:28:1539:29 | x6 | TRef | main.rs:1469:5:1470:19 | S | +| main.rs:1539:28:1539:29 | x6 | TRef.T | main.rs:1472:5:1473:14 | S2 | +| main.rs:1541:13:1541:14 | x7 | | main.rs:1469:5:1470:19 | S | +| main.rs:1541:13:1541:14 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1541:13:1541:14 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1541:18:1541:23 | S(...) | | main.rs:1469:5:1470:19 | S | +| main.rs:1541:18:1541:23 | S(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1541:18:1541:23 | S(...) | T.TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1541:20:1541:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:20:1541:22 | &S2 | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1541:21:1541:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1544:13:1544:13 | t | | {EXTERNAL LOCATION} | & | +| main.rs:1544:13:1544:13 | t | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1544:17:1544:18 | x7 | | main.rs:1469:5:1470:19 | S | +| main.rs:1544:17:1544:18 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:18 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1544:17:1544:23 | x7.m1() | | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:23 | x7.m1() | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1545:18:1545:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1545:18:1545:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1545:18:1545:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1545:18:1545:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1545:26:1545:27 | x7 | | main.rs:1469:5:1470:19 | S | +| main.rs:1545:26:1545:27 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1545:26:1545:27 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1547:13:1547:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1547:26:1547:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1547:26:1547:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1547:26:1547:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1551:13:1551:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1551:13:1551:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1551:17:1551:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1551:17:1551:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1551:17:1551:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1553:13:1553:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1553:13:1553:20 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1553:24:1553:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1553:24:1553:39 | &... | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1553:25:1553:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1553:36:1553:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1555:13:1555:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1555:17:1555:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1555:17:1555:24 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1555:17:1555:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1556:18:1556:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1556:18:1556:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1556:18:1556:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1556:18:1556:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1556:26:1556:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1559:13:1559:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1559:13:1559:20 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1559:24:1559:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1559:24:1559:39 | &... | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1559:25:1559:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1559:36:1559:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:13:1560:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1560:17:1560:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1560:17:1560:24 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | +| main.rs:1560:17:1560:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1561:18:1561:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1561:18:1561:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1561:18:1561:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1561:18:1561:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1561:26:1561:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1568:16:1568:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1568:16:1568:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1571:16:1571:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1571:16:1571:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1571:32:1573:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1571:32:1573:9 | { ... } | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1572:13:1572:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1572:13:1572:16 | self | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1572:13:1572:22 | self.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1572:13:1572:22 | self.foo() | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | +| main.rs:1580:16:1580:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1580:16:1580:20 | SelfParam | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1580:36:1582:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1580:36:1582:9 | { ... } | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1581:13:1581:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1581:13:1581:16 | self | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1585:16:1588:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1586:13:1586:13 | x | | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1586:17:1586:24 | MyStruct | | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1587:9:1587:9 | x | | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1587:9:1587:15 | x.bar() | | {EXTERNAL LOCATION} | & | +| main.rs:1587:9:1587:15 | x.bar() | TRef | main.rs:1576:5:1576:20 | MyStruct | +| main.rs:1597:16:1597:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1597:16:1597:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1597:16:1597:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1597:32:1599:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1597:32:1599:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1597:32:1599:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1598:13:1598:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1598:13:1598:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1598:13:1598:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:16:1601:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1601:16:1601:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:16:1601:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:23:1601:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1601:23:1601:23 | x | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:23:1601:23 | x | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1601:42:1603:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1601:42:1603:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1601:42:1603:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1602:13:1602:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1602:13:1602:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1602:13:1602:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | +| main.rs:1606:16:1612:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1607:13:1607:13 | x | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1607:13:1607:13 | x | T | main.rs:1592:5:1592:13 | S | +| main.rs:1607:17:1607:27 | MyStruct(...) | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1607:17:1607:27 | MyStruct(...) | T | main.rs:1592:5:1592:13 | S | +| main.rs:1607:26:1607:26 | S | | main.rs:1592:5:1592:13 | S | +| main.rs:1608:9:1608:9 | x | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1608:9:1608:9 | x | T | main.rs:1592:5:1592:13 | S | +| main.rs:1608:9:1608:15 | x.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1608:9:1608:15 | x.foo() | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1608:9:1608:15 | x.foo() | TRef.T | main.rs:1592:5:1592:13 | S | +| main.rs:1609:13:1609:13 | x | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1609:13:1609:13 | x | T | main.rs:1592:5:1592:13 | S | +| main.rs:1609:17:1609:27 | MyStruct(...) | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1609:17:1609:27 | MyStruct(...) | T | main.rs:1592:5:1592:13 | S | +| main.rs:1609:26:1609:26 | S | | main.rs:1592:5:1592:13 | S | +| main.rs:1611:9:1611:9 | x | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1611:9:1611:9 | x | T | main.rs:1592:5:1592:13 | S | +| main.rs:1611:9:1611:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1611:9:1611:18 | x.bar(...) | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1611:9:1611:18 | x.bar(...) | TRef.T | main.rs:1592:5:1592:13 | S | +| main.rs:1611:15:1611:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1611:15:1611:17 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1611:15:1611:17 | &... | TRef.TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1611:15:1611:17 | &... | TRef.TRef.T | main.rs:1592:5:1592:13 | S | +| main.rs:1611:16:1611:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1611:16:1611:17 | &x | TRef | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1611:16:1611:17 | &x | TRef.T | main.rs:1592:5:1592:13 | S | +| main.rs:1611:17:1611:17 | x | | main.rs:1594:5:1594:26 | MyStruct | +| main.rs:1611:17:1611:17 | x | T | main.rs:1592:5:1592:13 | S | +| main.rs:1622:17:1622:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1622:17:1622:25 | SelfParam | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1622:28:1624:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1623:13:1623:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1623:13:1623:16 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1623:13:1623:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1623:13:1623:34 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1623:25:1623:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1623:26:1623:29 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1623:26:1623:29 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1623:26:1623:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1630:15:1630:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1630:15:1630:19 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1630:31:1632:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1630:31:1632:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:13:1631:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1631:13:1631:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:13:1631:19 | &... | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:13:1631:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:13:1631:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:13:1631:19 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:14:1631:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1631:14:1631:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:14:1631:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:14:1631:19 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:15:1631:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1631:15:1631:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1631:15:1631:19 | &self | TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1631:16:1631:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1631:16:1631:19 | self | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1634:15:1634:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1634:15:1634:25 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1634:37:1636:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1634:37:1636:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:13:1635:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1635:13:1635:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:13:1635:19 | &... | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:13:1635:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:13:1635:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:13:1635:19 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:14:1635:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1635:14:1635:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:14:1635:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:14:1635:19 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:15:1635:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1635:15:1635:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1635:15:1635:19 | &self | TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1635:16:1635:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1635:16:1635:19 | self | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1638:15:1638:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1638:15:1638:15 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1638:34:1640:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1638:34:1640:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1639:13:1639:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1639:13:1639:13 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1642:15:1642:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1642:15:1642:15 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1642:34:1644:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1642:34:1644:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:13:1643:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1643:13:1643:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:13:1643:16 | &... | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:13:1643:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:13:1643:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:13:1643:16 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:14:1643:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1643:14:1643:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:14:1643:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:14:1643:16 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:15:1643:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1643:15:1643:16 | &x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1643:15:1643:16 | &x | TRef.TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1643:16:1643:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1643:16:1643:16 | x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1647:16:1660:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1648:13:1648:13 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1648:17:1648:20 | S {...} | | main.rs:1627:5:1627:13 | S | +| main.rs:1649:9:1649:9 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1649:9:1649:14 | x.f1() | | {EXTERNAL LOCATION} | & | +| main.rs:1649:9:1649:14 | x.f1() | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1650:9:1650:9 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1650:9:1650:14 | x.f2() | | {EXTERNAL LOCATION} | & | +| main.rs:1650:9:1650:14 | x.f2() | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1651:9:1651:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1651:9:1651:17 | ...::f3(...) | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1651:15:1651:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1651:15:1651:16 | &x | TRef | main.rs:1627:5:1627:13 | S | +| main.rs:1651:16:1651:16 | x | | main.rs:1627:5:1627:13 | S | +| main.rs:1653:13:1653:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1653:17:1653:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1653:18:1653:24 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1653:18:1653:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1653:19:1653:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1653:19:1653:24 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1653:19:1653:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1653:20:1653:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1653:20:1653:24 | &true | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1653:21:1653:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1657:17:1657:20 | flag | | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1657:24:1657:41 | ...::default(...) | | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1658:9:1658:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1658:22:1658:30 | &mut flag | | {EXTERNAL LOCATION} | & | +| main.rs:1658:22:1658:30 | &mut flag | TRef | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1658:27:1658:30 | flag | | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1659:18:1659:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1659:18:1659:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1659:18:1659:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1659:18:1659:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1659:26:1659:29 | flag | | main.rs:1616:5:1619:5 | MyFlag | +| main.rs:1674:43:1677:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1674:43:1677:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1674:43:1677:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1675:13:1675:13 | x | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1675:17:1675:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1675:17:1675:30 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1675:17:1675:31 | TryExpr | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1675:28:1675:29 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1676:9:1676:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1676:9:1676:22 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1676:9:1676:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1676:20:1676:21 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1681:46:1685:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1681:46:1685:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1681:46:1685:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1682:13:1682:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1682:13:1682:13 | x | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1682:17:1682:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1682:17:1682:30 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1682:28:1682:29 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1683:13:1683:13 | y | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1683:17:1683:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1683:17:1683:17 | x | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1683:17:1683:18 | TryExpr | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1684:9:1684:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1684:9:1684:22 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1684:9:1684:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1684:20:1684:21 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1689:40:1694:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:40:1694:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1689:40:1694:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1690:13:1690:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1690:13:1690:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1690:13:1690:13 | x | T.T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1690:17:1690:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1690:17:1690:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1690:17:1690:42 | ...::Ok(...) | T.T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1690:28:1690:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1690:28:1690:41 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1690:39:1690:40 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1692:17:1692:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1692:17:1692:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1692:17:1692:17 | x | T.T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1692:17:1692:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1692:17:1692:18 | TryExpr | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1692:17:1692:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1692:24:1692:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1692:24:1692:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1693:9:1693:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1693:9:1693:22 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1693:9:1693:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1693:20:1693:21 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:30:1698:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:30:1698:34 | input | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:30:1698:34 | input | T | main.rs:1698:20:1698:27 | T | +| main.rs:1698:69:1705:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:69:1705:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1698:69:1705:5 | { ... } | T | main.rs:1698:20:1698:27 | T | +| main.rs:1699:13:1699:17 | value | | main.rs:1698:20:1698:27 | T | +| main.rs:1699:21:1699:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1699:21:1699:25 | input | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1699:21:1699:25 | input | T | main.rs:1698:20:1698:27 | T | +| main.rs:1699:21:1699:26 | TryExpr | | main.rs:1698:20:1698:27 | T | +| main.rs:1700:22:1700:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1700:22:1700:38 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1700:22:1700:38 | ...::Ok(...) | T | main.rs:1698:20:1698:27 | T | +| main.rs:1700:22:1703:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1700:22:1703:10 | ... .and_then(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1700:33:1700:37 | value | | main.rs:1698:20:1698:27 | T | +| main.rs:1700:49:1703:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Output).E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1700:53:1703:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1700:53:1703:9 | { ... } | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1701:22:1701:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1701:22:1701:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1701:22:1701:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1701:22:1701:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1702:13:1702:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1702:13:1702:34 | ...::Ok::<...>(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1704:9:1704:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1704:9:1704:23 | ...::Err(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1704:9:1704:23 | ...::Err(...) | T | main.rs:1698:20:1698:27 | T | +| main.rs:1704:21:1704:22 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1708:16:1724:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1709:9:1711:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1709:16:1709:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1709:16:1709:33 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:16:1709:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:27:1709:32 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:37:1709:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1709:37:1709:52 | try_same_error(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:37:1709:52 | try_same_error(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1709:54:1711:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1710:22:1710:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1710:22:1710:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1710:22:1710:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1710:22:1710:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1710:30:1710:35 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1713:9:1715:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1713:16:1713:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:16:1713:33 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1713:16:1713:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1713:27:1713:32 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1713:37:1713:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:37:1713:55 | try_convert_error(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1713:37:1713:55 | try_convert_error(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1713:57:1715:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1714:22:1714:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1714:22:1714:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1714:22:1714:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1714:22:1714:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1714:30:1714:35 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1717:9:1719:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1717:16:1717:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1717:16:1717:33 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1717:16:1717:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1717:27:1717:32 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1717:37:1717:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1717:37:1717:49 | try_chained(...) | E | main.rs:1669:5:1670:14 | S2 | +| main.rs:1717:37:1717:49 | try_chained(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1717:51:1719:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1718:22:1718:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1718:22:1718:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1718:22:1718:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1718:22:1718:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1718:30:1718:35 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:9:1723:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1721:16:1721:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1721:16:1721:33 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:16:1721:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:27:1721:32 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:37:1721:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1721:37:1721:63 | try_complex(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:37:1721:63 | try_complex(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:49:1721:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1721:49:1721:62 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:49:1721:62 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:60:1721:61 | S1 | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1721:65:1723:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1722:22:1722:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1722:22:1722:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1722:22:1722:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1722:22:1722:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1722:30:1722:35 | result | | main.rs:1666:5:1667:14 | S1 | +| main.rs:1728:16:1819:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:13:1729:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1729:22:1729:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1730:13:1730:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1730:17:1730:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1731:13:1731:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1731:17:1731:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1731:17:1731:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1731:21:1731:21 | y | | {EXTERNAL LOCATION} | i32 | | main.rs:1732:13:1732:13 | z | | {EXTERNAL LOCATION} | i32 | | main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:21:1732:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:13:1733:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1734:13:1734:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1734:17:1734:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1735:13:1735:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1735:13:1735:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:21:1735:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1735:21:1735:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1736:13:1736:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:17:1736:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1737:13:1737:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:13:1738:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:17:1738:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1741:26:1741:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1741:26:1741:30 | SelfParam | TRef | main.rs:1740:9:1744:9 | Self [trait MyTrait] | -| main.rs:1747:26:1747:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1747:26:1747:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:26:1747:30 | SelfParam | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1747:39:1749:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1747:39:1749:13 | { ... } | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1748:17:1748:20 | self | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:36 | ... .unwrap() | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:26:1748:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1751:31:1753:13 | { ... } | | main.rs:1746:14:1746:23 | T | -| main.rs:1752:17:1752:28 | ...::default(...) | | main.rs:1746:14:1746:23 | T | +| main.rs:1732:17:1732:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1733:13:1733:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1733:17:1733:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1734:13:1734:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1734:13:1734:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1734:21:1734:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1734:21:1734:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1735:13:1735:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1735:17:1735:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1736:13:1736:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1736:17:1736:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1737:13:1737:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1737:17:1737:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1740:26:1740:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1740:26:1740:30 | SelfParam | TRef | main.rs:1739:9:1743:9 | Self [trait MyTrait] | +| main.rs:1746:26:1746:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1746:26:1746:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1746:26:1746:30 | SelfParam | TRef.TArray | main.rs:1745:14:1745:23 | T | +| main.rs:1746:39:1748:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1746:39:1748:13 | { ... } | TRef | main.rs:1745:14:1745:23 | T | +| main.rs:1747:17:1747:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1747:17:1747:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1747:17:1747:20 | self | TRef.TArray | main.rs:1745:14:1745:23 | T | +| main.rs:1747:17:1747:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1747:17:1747:36 | ... .unwrap() | TRef | main.rs:1745:14:1745:23 | T | +| main.rs:1747:26:1747:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1750:31:1752:13 | { ... } | | main.rs:1745:14:1745:23 | T | +| main.rs:1751:17:1751:28 | ...::default(...) | | main.rs:1745:14:1745:23 | T | +| main.rs:1755:13:1755:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1755:13:1755:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1755:17:1755:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1755:17:1755:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1755:17:1755:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1755:17:1755:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1755:18:1755:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1755:21:1755:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1755:24:1755:24 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1756:13:1756:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1756:13:1756:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:17:1756:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1756:17:1756:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:17:1756:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1756:17:1756:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:18:1756:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:21:1756:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:24:1756:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1757:13:1757:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:17:1757:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1757:17:1757:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:22:1757:22 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:37:1757:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1757:37:1757:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:37:1757:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:38:1757:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:38:1757:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:39:1757:39 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:42:1757:42 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:45:1757:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:13:1758:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:17:1758:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:24:1758:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TSlice | main.rs:1760:14:1760:23 | T | -| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1762:17:1762:20 | self | TRef.TSlice | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1762:17:1762:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:36 | ... .unwrap() | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:26:1762:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | -| main.rs:1766:17:1766:28 | ...::default(...) | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:13:1770:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:13:1770:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:13:1770:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1770:25:1770:34 | &... | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:25:1770:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:25:1770:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:26:1770:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:26:1770:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:27:1770:27 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:30:1770:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:33:1770:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:17:1756:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1756:17:1756:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:22:1756:22 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:37:1756:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1756:37:1756:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1756:37:1756:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:38:1756:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1756:38:1756:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:39:1756:39 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:42:1756:42 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1756:45:1756:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1757:17:1757:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1757:24:1757:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1760:26:1760:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1760:26:1760:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1760:26:1760:30 | SelfParam | TRef.TSlice | main.rs:1759:14:1759:23 | T | +| main.rs:1760:39:1762:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1760:39:1762:13 | { ... } | TRef | main.rs:1759:14:1759:23 | T | +| main.rs:1761:17:1761:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1761:17:1761:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1761:17:1761:20 | self | TRef.TSlice | main.rs:1759:14:1759:23 | T | +| main.rs:1761:17:1761:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1761:17:1761:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1761:17:1761:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1761:17:1761:36 | ... .unwrap() | TRef | main.rs:1759:14:1759:23 | T | +| main.rs:1761:26:1761:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1764:31:1766:13 | { ... } | | main.rs:1759:14:1759:23 | T | +| main.rs:1765:17:1765:28 | ...::default(...) | | main.rs:1759:14:1759:23 | T | +| main.rs:1769:13:1769:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1769:13:1769:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1769:13:1769:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:25:1769:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1769:25:1769:34 | &... | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1769:25:1769:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1769:25:1769:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:25:1769:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:26:1769:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1769:26:1769:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:27:1769:27 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:30:1769:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1769:33:1769:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:13:1770:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1770:13:1770:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1770:17:1770:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1770:17:1770:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:29 | s.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1770:17:1770:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1771:13:1771:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:17:1771:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:29 | s.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1772:13:1772:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1772:17:1772:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:34:1772:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1772:34:1772:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:13:1773:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:17:1773:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:26:1776:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1776:26:1776:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:39:1778:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1776:39:1778:13 | { ... } | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:17:1777:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1777:17:1777:23 | &... | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1777:18:1777:21 | self | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1777:18:1777:23 | self.0 | | main.rs:1775:14:1775:23 | T | -| main.rs:1780:31:1782:13 | { ... } | | main.rs:1775:14:1775:23 | T | -| main.rs:1781:17:1781:28 | ...::default(...) | | main.rs:1775:14:1775:23 | T | -| main.rs:1785:13:1785:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:13:1785:13 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:13:1785:13 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:18:1785:19 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:22:1785:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:17:1771:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:17:1771:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:34:1771:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1771:34:1771:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1771:34:1771:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1775:26:1775:30 | SelfParam | TRef.T0 | main.rs:1774:14:1774:23 | T | +| main.rs:1775:26:1775:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:23 | &... | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:18:1776:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:18:1776:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1776:18:1776:21 | self | TRef.T0 | main.rs:1774:14:1774:23 | T | +| main.rs:1776:18:1776:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1776:18:1776:23 | self.0 | | main.rs:1774:14:1774:23 | T | +| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | +| main.rs:1780:17:1780:28 | ...::default(...) | | main.rs:1774:14:1774:23 | T | +| main.rs:1784:13:1784:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1784:13:1784:13 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:13:1784:13 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:17:1784:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1784:17:1784:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:17:1784:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:18:1784:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:22:1784:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:13:1785:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1785:13:1785:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1785:17:1785:17 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:17 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:29 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1786:13:1786:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:17:1786:17 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:17 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:29 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1787:13:1787:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1787:17:1787:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:37:1787:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1787:37:1787:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:37:1787:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:37:1787:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:38:1787:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:38:1787:38 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:38:1787:38 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:13:1788:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:17:1788:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1791:26:1791:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1791:39:1793:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1791:39:1793:13 | { ... } | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:17:1792:21 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1792:17:1792:21 | * ... | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:18:1792:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1795:31:1797:13 | { ... } | | main.rs:1790:14:1790:23 | T | -| main.rs:1796:17:1796:28 | ...::default(...) | | main.rs:1790:14:1790:23 | T | -| main.rs:1800:13:1800:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1800:13:1800:13 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:18:1800:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:17:1786:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:17:1786:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:37:1786:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1786:37:1786:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1786:37:1786:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:37:1786:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:38:1786:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1786:38:1786:38 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:38:1786:38 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:17:1791:21 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1791:17:1791:21 | * ... | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | +| main.rs:1795:17:1795:28 | ...::default(...) | | main.rs:1789:14:1789:23 | T | +| main.rs:1799:13:1799:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1799:13:1799:13 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:17:1799:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1799:17:1799:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:18:1799:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:13:1800:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1800:13:1800:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1800:17:1800:17 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:29 | r.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1800:17:1800:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1801:13:1801:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:17 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:29 | r.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1802:13:1802:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1802:17:1802:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:33:1802:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:34:1802:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:34:1802:34 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:13:1803:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:17:1803:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1806:26:1806:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1806:26:1806:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:26:1806:30 | SelfParam | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1806:39:1808:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1806:39:1808:13 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:17:1807:34 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1807:17:1807:34 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:26:1807:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1807:26:1807:32 | &... | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:27:1807:32 | * ... | | main.rs:1805:14:1805:23 | T | -| main.rs:1807:28:1807:32 | * ... | | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:28:1807:32 | * ... | TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1807:29:1807:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:29:1807:32 | self | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1810:31:1812:13 | { ... } | | main.rs:1805:14:1805:23 | T | -| main.rs:1811:17:1811:28 | ...::default(...) | | main.rs:1805:14:1805:23 | T | -| main.rs:1815:17:1815:17 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:21:1815:22 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:13:1816:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:13:1816:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:27:1816:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1816:27:1816:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:32:1816:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:17:1801:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:33:1801:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1801:33:1801:34 | &r | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1801:33:1801:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:34:1801:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1801:34:1801:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:17:1806:34 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1806:17:1806:34 | { ... } | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:26:1806:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1806:26:1806:32 | &... | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:27:1806:32 | * ... | | main.rs:1804:14:1804:23 | T | +| main.rs:1806:28:1806:32 | * ... | | {EXTERNAL LOCATION} | *mut | +| main.rs:1806:28:1806:32 | * ... | TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1806:29:1806:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:29:1806:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1806:29:1806:32 | self | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | +| main.rs:1810:17:1810:28 | ...::default(...) | | main.rs:1804:14:1804:23 | T | +| main.rs:1814:17:1814:17 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:21:1814:22 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:13:1815:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1815:13:1815:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:27:1815:32 | &mut v | | {EXTERNAL LOCATION} | & | +| main.rs:1815:27:1815:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:32:1815:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1816:13:1816:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:17:1816:40 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1816:17:1816:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:26:1816:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1816:26:1816:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:26:1816:38 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1816:26:1816:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1817:13:1817:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:17:1817:40 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1817:17:1817:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:26:1817:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:38 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1817:26:1817:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1818:13:1818:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:17:1818:50 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1818:17:1818:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:26:1818:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1818:26:1818:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:46:1818:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1818:46:1818:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:46:1818:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:47:1818:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:47:1818:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:13:1819:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:17:1819:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1825:16:1837:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1826:13:1826:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1817:17:1817:50 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1817:17:1817:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:26:1817:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1817:26:1817:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:46:1817:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1817:46:1817:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1817:46:1817:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:47:1817:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1817:47:1817:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1818:17:1818:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1824:16:1836:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1825:13:1825:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:17:1825:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:17:1825:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1825:25:1825:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1826:13:1826:13 | y | | {EXTERNAL LOCATION} | bool | | main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1826:17:1826:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:13:1827:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:25:1827:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1829:17:1829:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:13:1830:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:20:1830:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:20:1830:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:26:1830:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:9:1835:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1831:12:1831:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1831:17:1833:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1832:17:1832:17 | z | | {EXTERNAL LOCATION} | () | -| main.rs:1832:21:1832:27 | (...) | | {EXTERNAL LOCATION} | () | -| main.rs:1832:22:1832:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:22:1832:26 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1832:26:1832:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:16:1835:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1834:13:1834:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1834:13:1834:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1834:17:1834:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1836:9:1836:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1850:30:1852:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:13:1851:31 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:23:1851:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1851:29:1851:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1858:16:1858:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:22:1858:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:41:1863:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1859:13:1862:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1828:17:1828:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:13:1829:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1829:20:1829:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:20:1829:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1829:26:1829:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:9:1834:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1830:12:1830:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1830:17:1832:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1831:17:1831:17 | z | | {EXTERNAL LOCATION} | () | +| main.rs:1831:21:1831:27 | (...) | | {EXTERNAL LOCATION} | () | +| main.rs:1831:22:1831:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:22:1831:26 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1831:26:1831:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:16:1834:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1833:13:1833:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1833:17:1833:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1835:9:1835:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1849:30:1851:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1850:13:1850:31 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1850:23:1850:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1850:29:1850:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1857:16:1857:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1857:22:1857:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1857:41:1862:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1858:13:1861:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1859:20:1859:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1859:20:1859:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:20:1859:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:29:1859:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1859:29:1859:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:20:1860:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1860:20:1860:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1860:20:1860:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:29:1860:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:20:1861:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:20:1861:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:20:1861:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:29:1861:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:29:1861:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:23:1868:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1868:23:1868:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:34:1868:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:45:1871:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1860:29:1860:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1860:29:1860:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:23:1867:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1867:23:1867:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1867:34:1867:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1867:45:1870:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1868:13:1868:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1868:13:1868:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1868:13:1868:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:13:1868:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1868:23:1868:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1868:23:1868:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:13:1869:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:13:1869:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1869:13:1869:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1869:13:1869:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:23:1869:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:13:1870:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1870:13:1870:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:13:1870:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:13:1870:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1870:23:1870:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:23:1870:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:16:1876:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:22:1876:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:41:1881:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1877:13:1880:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:23:1869:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1869:23:1869:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:16:1875:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1875:22:1875:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1875:41:1880:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1876:13:1879:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1877:20:1877:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1877:20:1877:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:20:1877:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:29:1877:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1877:29:1877:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:20:1878:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1878:20:1878:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1878:20:1878:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:29:1878:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:20:1879:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:20:1879:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:20:1879:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:29:1879:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:29:1879:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1886:23:1886:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1886:23:1886:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:34:1886:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:45:1889:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1878:29:1878:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1878:29:1878:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1885:23:1885:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1885:34:1885:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1885:45:1888:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1886:13:1886:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1886:13:1886:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1886:13:1886:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:13:1886:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1886:23:1886:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1886:23:1886:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:13:1887:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:13:1887:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1887:13:1887:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1887:13:1887:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:23:1887:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:13:1888:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1888:13:1888:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:13:1888:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:13:1888:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1888:23:1888:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:23:1888:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:16:1894:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:22:1894:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:41:1899:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1895:13:1898:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1887:23:1887:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1893:22:1893:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1893:41:1898:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1895:20:1895:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1895:20:1895:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:20:1895:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:29:1895:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1895:29:1895:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1896:20:1896:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1896:20:1896:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1896:20:1896:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:29:1896:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:20:1897:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:20:1897:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:20:1897:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:29:1897:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:29:1897:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:23:1903:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1903:23:1903:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:34:1903:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:45:1906:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1896:29:1896:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1896:29:1896:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:23:1902:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1902:23:1902:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1902:34:1902:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1902:45:1905:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1903:13:1903:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1903:13:1903:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1903:13:1903:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:13:1903:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1903:23:1903:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1903:23:1903:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:13:1904:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:13:1904:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1904:13:1904:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1904:13:1904:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:23:1904:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:13:1905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1905:13:1905:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:13:1905:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:13:1905:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1905:23:1905:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:23:1905:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:16:1911:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:22:1911:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:41:1916:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1912:13:1915:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:23:1904:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1904:23:1904:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:16:1910:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1910:22:1910:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1910:41:1915:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1911:13:1914:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1912:20:1912:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1912:20:1912:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:20:1912:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:29:1912:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1912:29:1912:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:20:1913:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1913:20:1913:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1913:20:1913:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:29:1913:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:20:1914:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:20:1914:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:20:1914:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:29:1914:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:29:1914:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:23:1920:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1920:23:1920:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:34:1920:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:45:1923:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1913:29:1913:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1913:29:1913:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:23:1919:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1919:23:1919:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1919:34:1919:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1919:45:1922:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1920:13:1920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1920:13:1920:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1920:13:1920:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:13:1920:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1920:23:1920:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1920:23:1920:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:13:1921:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:13:1921:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1921:13:1921:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1921:13:1921:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:23:1921:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:13:1922:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1922:13:1922:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:13:1922:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:13:1922:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1922:23:1922:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:23:1922:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:16:1928:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:22:1928:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:41:1933:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1929:13:1932:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:23:1921:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1921:23:1921:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:16:1927:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1927:22:1927:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1927:41:1932:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1928:13:1931:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1929:20:1929:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1929:20:1929:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:20:1929:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:29:1929:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1929:29:1929:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:20:1930:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1930:20:1930:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1930:20:1930:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:29:1930:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:20:1931:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:20:1931:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:20:1931:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:29:1931:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:29:1931:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1937:23:1937:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1937:23:1937:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:34:1937:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:45:1940:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1930:29:1930:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1930:29:1930:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1936:23:1936:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1936:23:1936:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1936:34:1936:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1936:45:1939:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1937:13:1937:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1937:13:1937:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1937:13:1937:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1937:13:1937:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1937:23:1937:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1937:23:1937:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:13:1938:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1938:13:1938:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1938:13:1938:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1938:13:1938:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:23:1938:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:13:1939:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1939:13:1939:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:13:1939:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:13:1939:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1939:23:1939:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:23:1939:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:19:1945:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:25:1945:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:44:1950:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1946:13:1949:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1938:23:1938:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1938:23:1938:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:19:1944:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1944:25:1944:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1944:44:1949:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1945:13:1948:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1946:20:1946:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1946:20:1946:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1946:20:1946:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1946:29:1946:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1946:29:1946:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1947:20:1947:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1947:20:1947:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1947:20:1947:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:29:1947:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:20:1948:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:20:1948:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:20:1948:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:29:1948:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:29:1948:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:26:1954:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1954:26:1954:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:37:1954:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:48:1957:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1947:29:1947:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1947:29:1947:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:26:1953:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1953:26:1953:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1953:37:1953:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1953:48:1956:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1954:13:1954:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1954:13:1954:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1954:13:1954:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:13:1954:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1954:23:1954:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1954:23:1954:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:13:1955:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1955:13:1955:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1955:13:1955:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1955:13:1955:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:23:1955:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:13:1956:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1956:13:1956:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:13:1956:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:13:1956:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1956:23:1956:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:23:1956:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:18:1962:21 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:24:1962:26 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:43:1967:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1963:13:1966:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1955:23:1955:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1955:23:1955:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:18:1961:21 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1961:24:1961:26 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1961:43:1966:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1962:13:1965:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1963:20:1963:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1963:20:1963:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:20:1963:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:29:1963:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1963:29:1963:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1964:20:1964:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1964:20:1964:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1964:20:1964:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:29:1964:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:20:1965:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:20:1965:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:20:1965:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:29:1965:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:29:1965:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1971:25:1971:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1971:25:1971:33 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:36:1971:38 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:47:1974:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1964:29:1964:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1964:29:1964:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:25:1970:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1970:25:1970:33 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1970:36:1970:38 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1970:47:1973:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1971:13:1971:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1971:13:1971:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1971:13:1971:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1971:13:1971:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1971:23:1971:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1971:23:1971:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:13:1972:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:13:1972:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1972:13:1972:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1972:13:1972:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:23:1972:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1973:13:1973:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:13:1973:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1973:23:1973:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:23:1973:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:19:1979:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:25:1979:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:44:1984:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1980:13:1983:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:23:1972:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1972:23:1972:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:19:1978:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1978:25:1978:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1978:44:1983:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1979:13:1982:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1980:20:1980:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1980:20:1980:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:20:1980:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:29:1980:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1980:29:1980:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1981:20:1981:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1981:20:1981:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1981:20:1981:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:29:1981:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:20:1982:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:20:1982:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:20:1982:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:29:1982:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:29:1982:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1988:26:1988:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1988:26:1988:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:37:1988:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:48:1991:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1981:29:1981:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1981:29:1981:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:26:1987:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1987:26:1987:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1987:37:1987:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1987:48:1990:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1988:13:1988:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1988:13:1988:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1988:13:1988:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:13:1988:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1988:23:1988:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1988:23:1988:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:13:1989:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:13:1989:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1989:13:1989:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1989:13:1989:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:23:1989:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:13:1990:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1990:13:1990:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:13:1990:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:13:1990:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1990:23:1990:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:23:1990:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:16:1996:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:22:1996:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1996:40:2001:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1997:13:2000:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:23:1989:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1989:23:1989:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:16:1995:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1995:22:1995:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1995:40:2000:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1996:13:1999:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1997:20:1997:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1997:20:1997:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1997:20:1997:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1997:30:1997:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1998:20:1998:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:1998:20:1998:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1998:20:1998:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1999:20:1999:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1999:20:1999:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:20:1999:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:30:1999:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:23:2005:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2005:23:2005:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2005:34:2005:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:44:2008:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2004:23:2004:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2004:23:2004:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2004:34:2004:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2004:44:2007:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2005:13:2005:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2005:13:2005:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2005:13:2005:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2005:13:2005:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2005:24:2005:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2006:13:2006:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2006:13:2006:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2006:13:2006:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2006:13:2006:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | | main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2007:13:2007:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2007:13:2007:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2007:13:2007:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2007:13:2007:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2007:24:2007:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:16:2013:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2013:22:2013:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:40:2018:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2014:13:2017:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:16:2012:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2012:22:2012:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2012:40:2017:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2013:13:2016:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2014:20:2014:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2014:20:2014:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:20:2014:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:30:2014:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2015:20:2015:23 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2015:20:2015:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2015:20:2015:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | | main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2016:20:2016:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2016:20:2016:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2016:20:2016:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2016:30:2016:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:23:2022:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2022:23:2022:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2022:34:2022:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:44:2025:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2021:23:2021:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2021:23:2021:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2021:34:2021:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:44:2024:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2022:13:2022:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2022:13:2022:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2022:13:2022:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2022:13:2022:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2022:24:2022:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2023:13:2023:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2023:13:2023:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2023:13:2023:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2023:13:2023:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | | main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2024:13:2024:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2024:13:2024:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2024:13:2024:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2024:13:2024:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2024:24:2024:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:16:2030:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2030:30:2035:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2031:13:2034:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2029:16:2029:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2029:30:2034:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2030:13:2033:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2031:20:2031:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2031:21:2031:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2031:21:2031:26 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2032:20:2032:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2032:21:2032:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2032:21:2032:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2033:20:2033:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2033:21:2033:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2033:21:2033:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2040:16:2040:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:30:2045:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2041:13:2044:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2032:21:2032:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2032:21:2032:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2039:16:2039:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2039:30:2044:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2040:13:2043:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2041:20:2041:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2041:21:2041:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2041:21:2041:26 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2042:20:2042:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2042:21:2042:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2042:21:2042:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2043:20:2043:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2043:21:2043:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2043:21:2043:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2049:15:2049:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2049:15:2049:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:22:2049:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:22:2049:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:44:2051:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:13:2050:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:13:2050:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:13:2050:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:23:2050:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:23:2050:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:23:2050:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:34:2050:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:34:2050:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:34:2050:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:44:2050:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:44:2050:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:44:2050:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2053:15:2053:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2053:15:2053:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:22:2053:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:22:2053:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:44:2055:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:13:2054:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:13:2054:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:13:2054:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:23:2054:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:23:2054:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:23:2054:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:34:2054:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:34:2054:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:34:2054:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:44:2054:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:44:2054:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:44:2054:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:24:2059:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2059:24:2059:28 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:31:2059:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:31:2059:35 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:75:2061:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2059:75:2061:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:13:2060:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:13:2060:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2060:13:2060:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:14:2060:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:14:2060:17 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:14:2060:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:14:2060:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:23:2060:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:23:2060:26 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:23:2060:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:43:2060:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2060:43:2060:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:44:2060:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:45:2060:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:45:2060:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:45:2060:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:55:2060:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:55:2060:59 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:55:2060:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2042:21:2042:24 | self | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2042:21:2042:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2048:15:2048:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2048:15:2048:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2048:22:2048:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2048:22:2048:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2048:44:2050:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:13:2049:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2049:13:2049:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:13:2049:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2049:13:2049:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:13:2049:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:23:2049:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2049:23:2049:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:23:2049:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2049:34:2049:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2049:34:2049:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:34:2049:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2049:34:2049:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2049:44:2049:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2049:44:2049:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2049:44:2049:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2052:15:2052:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2052:15:2052:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2052:22:2052:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2052:22:2052:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2052:44:2054:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:13:2053:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2053:13:2053:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:13:2053:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2053:13:2053:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:13:2053:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:23:2053:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2053:23:2053:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:23:2053:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2053:34:2053:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2053:34:2053:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:34:2053:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2053:34:2053:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2053:44:2053:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2053:44:2053:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2053:44:2053:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2058:24:2058:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2058:24:2058:28 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2058:31:2058:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2058:31:2058:35 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2058:75:2060:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2058:75:2060:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2059:13:2059:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:13:2059:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2059:13:2059:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2059:14:2059:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2059:14:2059:17 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:14:2059:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:14:2059:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:23:2059:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2059:23:2059:26 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:23:2059:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:43:2059:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2059:43:2059:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:44:2059:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:45:2059:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2059:45:2059:49 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:45:2059:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:45:2059:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2059:55:2059:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2059:55:2059:59 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2059:55:2059:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2062:15:2062:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2062:15:2062:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2062:22:2062:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2062:22:2062:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2062:44:2064:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:13:2063:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2063:13:2063:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:13:2063:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:13:2063:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:13:2063:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:13:2064:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:13:2064:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:22:2064:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:22:2064:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:22:2064:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:33:2064:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:33:2064:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:33:2064:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:42:2064:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:42:2064:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:42:2064:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:13:2068:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:13:2068:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:23:2068:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:34:2068:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:34:2068:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:44:2068:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2071:15:2071:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2071:15:2071:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:22:2063:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:33:2063:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2063:33:2063:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:33:2063:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:33:2063:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2063:42:2063:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2063:42:2063:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2063:42:2063:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2066:15:2066:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2066:15:2066:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2066:22:2066:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2066:22:2066:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2066:44:2068:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:13:2067:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2067:13:2067:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:13:2067:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:13:2067:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:13:2067:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:23:2067:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:23:2067:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:23:2067:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:34:2067:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2067:34:2067:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:34:2067:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:34:2067:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:44:2067:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:44:2067:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2067:44:2067:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2070:15:2070:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2070:15:2070:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2070:22:2070:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2070:22:2070:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2070:44:2072:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:13:2071:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2071:13:2071:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:13:2071:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2071:13:2071:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:13:2071:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:44:2073:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:13:2072:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:13:2072:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:13:2072:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:22:2072:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:22:2072:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:22:2072:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:33:2072:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:33:2072:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:33:2072:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:42:2072:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:42:2072:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:42:2072:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2075:15:2075:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2075:15:2075:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:22:2075:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:22:2075:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:44:2077:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:13:2076:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:13:2076:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:13:2076:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:23:2076:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:23:2076:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:23:2076:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:34:2076:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:34:2076:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:34:2076:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:44:2076:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:44:2076:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:44:2076:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2080:26:2080:26 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2080:32:2080:32 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:9:2081:9 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:13:2081:13 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2084:16:2215:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2088:13:2088:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:22:2071:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:22:2071:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2071:33:2071:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2071:33:2071:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:33:2071:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2071:33:2071:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2071:42:2071:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2071:42:2071:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2071:42:2071:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:15:2074:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2074:15:2074:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2074:22:2074:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:22:2074:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2074:44:2076:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:13:2075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2075:13:2075:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:13:2075:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2075:13:2075:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:13:2075:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:23:2075:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2075:23:2075:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:23:2075:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2075:34:2075:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2075:34:2075:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:34:2075:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2075:34:2075:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2075:44:2075:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2075:44:2075:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2075:44:2075:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2079:26:2079:26 | a | | main.rs:2079:18:2079:23 | T | +| main.rs:2079:32:2079:32 | b | | main.rs:2079:18:2079:23 | T | +| main.rs:2080:9:2080:9 | a | | main.rs:2079:18:2079:23 | T | +| main.rs:2080:13:2080:13 | b | | main.rs:2079:18:2079:23 | T | +| main.rs:2083:16:2214:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2087:13:2087:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2087:22:2087:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2087:23:2087:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2087:23:2087:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2087:31:2087:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2088:13:2088:18 | i64_ne | | {EXTERNAL LOCATION} | bool | | main.rs:2088:22:2088:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:23:2088:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:23:2088:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:31:2088:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:13:2089:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:22:2089:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:23:2089:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:31:2089:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:13:2090:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:22:2090:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:23:2090:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:30:2090:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:13:2091:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2088:23:2088:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2088:23:2088:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2088:31:2088:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:13:2089:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2089:22:2089:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2089:23:2089:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:23:2089:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2089:30:2089:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:13:2090:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:22:2090:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:23:2090:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:23:2090:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:31:2090:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2091:13:2091:18 | i64_gt | | {EXTERNAL LOCATION} | bool | | main.rs:2091:22:2091:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:23:2091:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:31:2091:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:13:2092:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:22:2092:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:23:2092:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:30:2092:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:13:2093:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:22:2093:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:23:2093:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:23:2093:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:32:2093:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:13:2096:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:13:2097:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:13:2098:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:13:2099:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:13:2100:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:31:2100:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:39:2101:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:45:2101:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:17:2104:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:34:2104:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:31 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2105:27:2105:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:17:2107:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:34:2107:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:31 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2108:27:2108:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:17:2110:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:34:2110:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:31 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2111:27:2111:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:17:2113:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:34:2113:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:31 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2114:27:2114:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:17:2116:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:34:2116:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:31 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2117:27:2117:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:13:2120:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:34:2120:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:13:2121:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:33:2121:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:13:2122:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:34:2122:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:13:2123:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:13:2124:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:32:2124:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:37:2127:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:34 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2128:30:2128:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:36:2130:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2131:29:2131:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:17:2133:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:37:2133:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2134:30:2134:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:17:2136:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2137:28:2137:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:17:2139:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:34:2139:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2140:28:2140:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:13:2142:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:23:2142:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:13:2143:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:23:2143:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:24:2143:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2146:13:2146:14 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:28:2146:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2146:34:2146:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2147:13:2147:14 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:18:2147:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:28:2147:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2147:34:2147:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2150:13:2150:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:23:2150:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:13:2151:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:23:2151:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:29:2151:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:13:2152:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:23:2152:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:28:2152:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:13:2153:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:23:2153:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:29:2153:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:13:2154:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:23:2154:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:28:2154:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:13:2155:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2155:23:2155:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:23:2155:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2155:29:2155:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:13:2158:20 | vec2_add | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:30 | ... + ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:13:2159:20 | vec2_sub | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:30 | ... - ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:13:2160:20 | vec2_mul | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:30 | ... * ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:13:2161:20 | vec2_div | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:30 | ... / ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:13:2162:20 | vec2_rem | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:30 | ... % ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:29:2162:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:17:2165:31 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:35:2165:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:23 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:29 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:17:2168:31 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:35:2168:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:23 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:29 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2169:28:2169:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:17:2171:31 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:35:2171:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:23 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:29 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2172:28:2172:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:17:2174:31 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:35:2174:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:23 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:29 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2175:28:2175:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:17:2177:31 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:35:2177:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:23 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:29 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2178:28:2178:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:13:2181:23 | vec2_bitand | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:33 | ... & ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:32:2181:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:13:2182:22 | vec2_bitor | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:27 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:32 | ... \| ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:31:2182:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:13:2183:23 | vec2_bitxor | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:33 | ... ^ ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:32:2183:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:13:2184:20 | vec2_shl | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:33 | ... << ... | | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2091:23:2091:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2091:23:2091:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2091:30:2091:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2092:13:2092:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2092:22:2092:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2092:23:2092:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2092:23:2092:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2092:32:2092:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:13:2095:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:23:2095:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:23:2095:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2095:31:2095:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:13:2096:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:23:2096:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:23:2096:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2096:31:2096:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:13:2097:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:23:2097:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:23:2097:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2097:31:2097:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:13:2098:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:23:2098:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:23:2098:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2098:31:2098:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:13:2099:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:23:2099:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:23:2099:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:31:2099:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2100:39:2100:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2100:45:2100:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:17:2103:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:34:2103:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:9:2104:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:9:2104:31 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2104:27:2104:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:17:2106:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:34:2106:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:9:2107:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:9:2107:31 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2107:27:2107:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2109:17:2109:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2109:34:2109:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:9:2110:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:9:2110:31 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2110:27:2110:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:17:2112:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:34:2112:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:9:2113:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:9:2113:31 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2113:27:2113:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:17:2115:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:34:2115:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2116:9:2116:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2116:9:2116:31 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2116:27:2116:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:13:2119:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:26:2119:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:26:2119:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:34:2119:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:13:2120:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:25:2120:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:25:2120:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2120:33:2120:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:13:2121:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:26:2121:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:26:2121:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:13:2122:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:23:2122:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:23:2122:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:32:2122:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:13:2123:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:23:2123:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:23:2123:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:32:2123:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2126:17:2126:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2126:37:2126:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:9:2127:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:9:2127:34 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2127:30:2127:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2129:17:2129:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2129:36:2129:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:9:2130:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:9:2130:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2130:29:2130:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2132:17:2132:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2132:37:2132:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2133:9:2133:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2133:9:2133:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2133:30:2133:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:17:2135:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:34:2135:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:9:2136:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:9:2136:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2136:28:2136:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:17:2138:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:34:2138:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2139:9:2139:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2139:9:2139:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2139:28:2139:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:13:2141:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:23:2141:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:24:2141:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:13:2142:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:23:2142:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:24:2142:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:13:2145:14 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2145:18:2145:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2145:28:2145:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2145:34:2145:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2146:13:2146:14 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2146:28:2146:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2146:34:2146:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2149:13:2149:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2149:23:2149:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2149:23:2149:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2149:29:2149:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2150:13:2150:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2150:23:2150:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2150:23:2150:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2150:29:2150:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2151:13:2151:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2151:23:2151:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2151:23:2151:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2151:28:2151:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2152:13:2152:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2152:23:2152:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2152:23:2152:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2152:29:2152:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2153:13:2153:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2153:23:2153:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2153:23:2153:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2153:28:2153:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2154:13:2154:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2154:23:2154:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2154:23:2154:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2154:29:2154:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:13:2157:20 | vec2_add | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:24:2157:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:24:2157:30 | ... + ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2157:29:2157:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:13:2158:20 | vec2_sub | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:24:2158:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:24:2158:30 | ... - ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2158:29:2158:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:13:2159:20 | vec2_mul | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:24:2159:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:24:2159:30 | ... * ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2159:29:2159:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:13:2160:20 | vec2_div | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:24:2160:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:24:2160:30 | ... / ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2160:29:2160:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:13:2161:20 | vec2_rem | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:24:2161:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:24:2161:30 | ... % ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2161:29:2161:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2164:17:2164:31 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2164:35:2164:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2165:9:2165:23 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2165:9:2165:29 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2165:28:2165:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2167:17:2167:31 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2167:35:2167:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2168:9:2168:23 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2168:9:2168:29 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2170:17:2170:31 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2170:35:2170:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2171:9:2171:23 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2171:9:2171:29 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2171:28:2171:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2173:17:2173:31 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2173:35:2173:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2174:9:2174:23 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2174:9:2174:29 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2174:28:2174:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2176:17:2176:31 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2176:35:2176:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2177:9:2177:23 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2177:9:2177:29 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2177:28:2177:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:13:2180:23 | vec2_bitand | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:27:2180:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:27:2180:33 | ... & ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2180:32:2180:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:13:2181:22 | vec2_bitor | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:26:2181:27 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:26:2181:32 | ... \| ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2181:31:2181:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:13:2182:23 | vec2_bitxor | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:27:2182:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:27:2182:33 | ... ^ ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2182:32:2182:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:13:2183:20 | vec2_shl | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:24:2183:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:24:2183:33 | ... << ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2183:30:2183:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2184:13:2184:20 | vec2_shr | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2184:24:2184:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2184:24:2184:33 | ... >> ... | | main.rs:1842:5:1847:5 | Vec2 | | main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2185:13:2185:20 | vec2_shr | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:24:2185:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:24:2185:33 | ... >> ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:30:2185:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2188:17:2188:34 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2188:38:2188:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:26 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:32 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2189:31:2189:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:17:2191:33 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:37:2191:38 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:25 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2192:30:2192:31 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:17:2194:34 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:38:2194:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:26 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2195:31:2195:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:17:2197:31 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:35:2197:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:23 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2198:29:2198:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2200:17:2200:31 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2200:35:2200:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:23 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2201:29:2201:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2204:13:2204:20 | vec2_neg | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2204:24:2204:26 | - ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:13:2205:20 | vec2_not | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:24:2205:26 | ! ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:25:2205:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2208:13:2208:24 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2208:28:2208:45 | ...::default(...) | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:13:2209:26 | vec2_zero_plus | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:63 | ... + ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:40:2209:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:46:2209:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:52:2209:63 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2213:13:2213:24 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2213:28:2213:45 | ...::default(...) | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:13:2214:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2214:30:2214:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:30:2214:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2214:40:2214:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2214:46:2214:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2214:53:2214:64 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2224:18:2224:21 | SelfParam | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2228:9:2228:10 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2231:41:2233:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2231:41:2233:5 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2232:9:2232:20 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2232:17:2232:18 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2235:41:2237:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:41:2237:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2245:13:2245:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:42 | SelfParam | Ptr.TRef | main.rs:2239:5:2239:14 | S2 | -| main.rs:2246:13:2246:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2246:13:2246:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2247:44:2249:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2247:44:2249:9 | { ... } | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2248:13:2248:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2248:13:2248:38 | ...::Ready(...) | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2248:36:2248:37 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2252:41:2254:5 | { ... } | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2253:9:2253:10 | S2 | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2257:9:2257:18 | await ... | | main.rs:2221:5:2221:14 | S1 | +| main.rs:2187:17:2187:34 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2187:38:2187:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2188:9:2188:26 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2188:9:2188:32 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2188:31:2188:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2190:17:2190:33 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2190:37:2190:38 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2191:9:2191:25 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2191:9:2191:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2191:30:2191:31 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2193:17:2193:34 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2193:38:2193:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2194:9:2194:26 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2194:9:2194:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2194:31:2194:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2196:17:2196:31 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2196:35:2196:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2197:9:2197:23 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2197:9:2197:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2197:29:2197:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:17:2199:31 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2199:35:2199:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2200:9:2200:23 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2200:9:2200:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2200:29:2200:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2203:13:2203:20 | vec2_neg | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2203:24:2203:26 | - ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2203:25:2203:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2204:13:2204:20 | vec2_not | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2204:24:2204:26 | ! ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2204:25:2204:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2207:13:2207:24 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2207:28:2207:45 | ...::default(...) | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2208:13:2208:26 | vec2_zero_plus | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2208:30:2208:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2208:30:2208:63 | ... + ... | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2208:40:2208:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2208:46:2208:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2208:52:2208:63 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2212:13:2212:24 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2212:28:2212:45 | ...::default(...) | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2213:13:2213:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2213:30:2213:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2213:30:2213:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2213:40:2213:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2213:46:2213:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2213:53:2213:64 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | +| main.rs:2223:18:2223:21 | SelfParam | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2223:24:2223:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2226:25:2228:5 | { ... } | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2227:9:2227:10 | S1 | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2230:41:2232:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2230:41:2232:5 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2231:9:2231:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2231:9:2231:20 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2231:17:2231:18 | S1 | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2234:41:2236:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2234:41:2236:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2235:9:2235:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2235:9:2235:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2244:13:2244:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2244:13:2244:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | +| main.rs:2244:13:2244:42 | SelfParam | Ptr.TRef | main.rs:2238:5:2238:14 | S2 | +| main.rs:2245:13:2245:15 | _cx | | {EXTERNAL LOCATION} | & | +| main.rs:2245:13:2245:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2246:44:2248:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2246:44:2248:9 | { ... } | T | main.rs:2220:5:2220:14 | S1 | +| main.rs:2247:13:2247:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2247:13:2247:38 | ...::Ready(...) | T | main.rs:2220:5:2220:14 | S1 | +| main.rs:2247:36:2247:37 | S1 | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2251:41:2253:5 | { ... } | | main.rs:2238:5:2238:14 | S2 | +| main.rs:2252:9:2252:10 | S2 | | main.rs:2238:5:2238:14 | S2 | +| main.rs:2255:22:2263:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2256:9:2256:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2256:9:2256:12 | f1(...) | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2256:9:2256:18 | await ... | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2256:9:2256:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2257:9:2257:12 | f2(...) | | main.rs:2230:16:2230:39 | impl ... | +| main.rs:2257:9:2257:18 | await ... | | main.rs:2220:5:2220:14 | S1 | | main.rs:2257:9:2257:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2258:9:2258:12 | f2(...) | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2258:9:2258:18 | await ... | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2258:9:2258:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2259:9:2259:12 | f3(...) | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2259:9:2259:18 | await ... | | {EXTERNAL LOCATION} | () | -| main.rs:2260:9:2260:12 | f4(...) | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2260:9:2260:18 | await ... | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2260:9:2260:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2261:9:2261:10 | S2 | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2261:9:2261:16 | await S2 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2261:9:2261:20 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2262:13:2262:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:13:2262:13 | b | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2262:17:2262:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:17:2262:28 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2262:25:2262:26 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2263:9:2263:9 | b | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:15 | await b | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:19 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2274:15:2274:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2274:15:2274:19 | SelfParam | TRef | main.rs:2273:5:2275:5 | Self [trait Trait1] | -| main.rs:2274:22:2274:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2278:15:2278:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2278:15:2278:19 | SelfParam | TRef | main.rs:2277:5:2279:5 | Self [trait Trait2] | -| main.rs:2278:22:2278:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2282:15:2282:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2282:15:2282:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2282:22:2282:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2289:37:2291:5 | { ... } | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2290:9:2290:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | -| main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2298:18:2298:22 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2298:31:2300:9 | { ... } | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2299:13:2299:14 | S2 | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2304:18:2304:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2304:18:2304:22 | SelfParam | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2304:18:2304:22 | SelfParam | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2304:30:2307:9 | { ... } | | main.rs:2303:10:2303:17 | T | -| main.rs:2305:17:2305:21 | S3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:2305:17:2305:21 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:17:2305:21 | S3(...) | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:17:2305:21 | S3(...) | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2305:25:2305:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2306:13:2306:21 | t.clone() | | main.rs:2303:10:2303:17 | T | -| main.rs:2310:45:2312:5 | { ... } | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2311:9:2311:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | -| main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2315:9:2315:17 | t.get_a() | | main.rs:2314:23:2314:23 | A | -| main.rs:2318:34:2318:34 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2318:59:2320:5 | { ... } | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2318:59:2320:5 | { ... } | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:9:2319:13 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2319:9:2319:13 | S3(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2319:9:2319:13 | S3(...) | T3 | main.rs:2318:24:2318:31 | T | -| main.rs:2319:9:2319:13 | S3(...) | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:12:2319:12 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2322:34:2322:34 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2322:67:2324:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2322:67:2324:5 | { ... } | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2322:67:2324:5 | { ... } | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:9:2323:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2323:9:2323:19 | Some(...) | T | main.rs:2271:5:2271:22 | S3 | -| main.rs:2323:9:2323:19 | Some(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2323:9:2323:19 | Some(...) | T.T3 | main.rs:2322:24:2322:31 | T | -| main.rs:2323:9:2323:19 | Some(...) | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:14:2323:18 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2323:14:2323:18 | S3(...) | T3 | main.rs:2322:24:2322:31 | T | -| main.rs:2323:17:2323:17 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2326:34:2326:34 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:78:2328:5 | { ... } | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2327:9:2327:30 | TupleExpr | T0 | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:9:2327:30 | TupleExpr | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2327:9:2327:30 | TupleExpr | T0.T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T1 | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:9:2327:30 | TupleExpr | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2327:9:2327:30 | TupleExpr | T1.T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:10:2327:22 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:10:2327:22 | S3(...) | | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2327:10:2327:22 | S3(...) | T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:10:2327:22 | S3(...) | impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:13:2327:13 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:13:2327:21 | x.clone() | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:25:2327:29 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:25:2327:29 | S3(...) | | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2327:25:2327:29 | S3(...) | T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:25:2327:29 | S3(...) | impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:28:2327:28 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2330:26:2330:26 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2330:51:2332:5 | { ... } | | main.rs:2330:23:2330:23 | A | -| main.rs:2331:9:2331:9 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2331:9:2331:17 | t.get_a() | | main.rs:2330:23:2330:23 | A | -| main.rs:2334:16:2348:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2335:13:2335:13 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2335:17:2335:20 | f1(...) | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:14 | x.f1() | | {EXTERNAL LOCATION} | () | -| main.rs:2337:9:2337:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2337:9:2337:14 | x.f2() | | {EXTERNAL LOCATION} | () | -| main.rs:2338:13:2338:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2338:17:2338:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2339:13:2339:13 | b | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2339:17:2339:33 | uses_my_trait1(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2339:32:2339:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:13:2340:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:17:2340:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2341:13:2341:13 | c | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2341:17:2341:33 | uses_my_trait2(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2341:32:2341:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2342:13:2342:13 | d | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2342:17:2342:34 | uses_my_trait2(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2342:32:2342:33 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:13:2343:13 | e | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:17:2343:43 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:33:2343:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:13:2346:13 | f | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:44 | ... .unwrap() | | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2346:17:2346:44 | ... .unwrap() | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:52 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:33:2346:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:13:2347:13 | g | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:37 | ... .0 | | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:37 | ... .0 | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:45 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:33:2347:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2358:16:2358:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2358:16:2358:20 | SelfParam | TRef | main.rs:2354:5:2355:13 | S | -| main.rs:2358:31:2360:9 | { ... } | | main.rs:2354:5:2355:13 | S | -| main.rs:2359:13:2359:13 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2369:26:2371:9 | { ... } | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2369:26:2371:9 | { ... } | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:13:2370:38 | MyVec {...} | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2370:13:2370:38 | MyVec {...} | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:27:2370:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2370:27:2370:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2370:27:2370:36 | ...::new(...) | T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:17:2373:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2373:17:2373:25 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2373:17:2373:25 | SelfParam | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:28:2373:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2373:38:2375:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2374:13:2374:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2374:13:2374:16 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2374:13:2374:16 | self | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:13:2374:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2374:13:2374:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2374:13:2374:21 | self.data | T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:13:2374:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2374:28:2374:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2382:18:2382:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2382:18:2382:22 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2382:18:2382:22 | SelfParam | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2382:25:2382:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2382:56:2384:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2382:56:2384:9 | { ... } | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:13:2383:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2383:13:2383:29 | &... | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2383:14:2383:17 | self | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2383:14:2383:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:14:2383:22 | self.data | T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:29 | ...[index] | | main.rs:2378:10:2378:10 | T | -| main.rs:2383:24:2383:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2387:22:2387:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:22:2387:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:22:2387:26 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2387:35:2389:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:13 | x | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2388:17:2388:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2388:17:2388:21 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:24 | slice[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:30 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:23:2388:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2391:37:2391:37 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2391:43:2391:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2395:9:2395:9 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2395:11:2395:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2398:16:2409:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2399:17:2399:19 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:17:2399:19 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2399:23:2399:34 | ...::new(...) | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:23:2399:34 | ...::new(...) | T | main.rs:2354:5:2355:13 | S | -| main.rs:2400:9:2400:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2400:9:2400:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2400:18:2400:18 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2401:9:2401:11 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:14 | vec[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:20 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:13:2401:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2403:13:2403:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:13:2403:14 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:21:2403:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2403:26:2403:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:26:2403:28 | [...] | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:27:2403:27 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:13:2404:13 | x | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:21 | xs[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:27 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:20:2404:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2406:29:2406:31 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2406:29:2406:31 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2406:34:2406:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2408:9:2408:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2408:23:2408:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2408:23:2408:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:23:2408:25 | &xs | TRef.TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2408:24:2408:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:24:2408:25 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2413:16:2415:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2414:13:2414:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2414:17:2414:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:25:2414:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2414:25:2414:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2414:38:2414:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:38:2414:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2423:19:2423:22 | SelfParam | | main.rs:2419:5:2424:5 | Self [trait MyAdd] | -| main.rs:2423:25:2423:27 | rhs | | main.rs:2419:17:2419:26 | Rhs | -| main.rs:2430:19:2430:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:25:2430:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:45:2432:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:13:2431:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:19:2439:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:25:2439:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:25:2439:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:46:2441:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:13:2440:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:14:2440:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2440:14:2440:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:19:2448:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:25:2448:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2448:46:2454:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:13:2453:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2449:13:2453:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:16:2449:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2449:22:2451:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2449:22:2451:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2450:17:2450:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2450:17:2450:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2451:20:2453:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2451:20:2453:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2452:17:2452:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2452:17:2452:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2463:19:2463:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:19:2463:22 | SelfParam | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:25:2463:29 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:25:2463:29 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:54:2465:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:13:2464:39 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:15:2464:22 | (...) | | main.rs:2459:10:2459:17 | T | -| main.rs:2464:16:2464:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:16:2464:21 | self.0 | | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:35 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:31:2464:35 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:37 | other.0 | | main.rs:2459:10:2459:17 | T | -| main.rs:2472:19:2472:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2472:19:2472:22 | SelfParam | T | main.rs:2468:10:2468:17 | T | -| main.rs:2472:25:2472:29 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2472:51:2474:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:13:2473:37 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:15:2473:22 | (...) | | main.rs:2468:10:2468:17 | T | -| main.rs:2473:16:2473:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | T | main.rs:2468:10:2468:17 | T | -| main.rs:2473:16:2473:21 | self.0 | | main.rs:2468:10:2468:17 | T | -| main.rs:2473:31:2473:35 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2484:19:2484:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2484:19:2484:22 | SelfParam | T | main.rs:2477:14:2477:14 | T | -| main.rs:2484:25:2484:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:25:2484:29 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2484:55:2486:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:13:2485:37 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:15:2485:22 | (...) | | main.rs:2477:14:2477:14 | T | -| main.rs:2485:16:2485:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | T | main.rs:2477:14:2477:14 | T | -| main.rs:2485:16:2485:21 | self.0 | | main.rs:2477:14:2477:14 | T | -| main.rs:2485:31:2485:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2485:31:2485:35 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2491:20:2491:24 | value | | main.rs:2489:18:2489:18 | T | -| main.rs:2496:20:2496:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:40:2498:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2497:13:2497:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:20:2503:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2503:41:2509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:13:2508:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:13:2508:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:16:2504:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2504:22:2506:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:22:2506:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2505:17:2505:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:17:2505:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2506:20:2508:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:20:2508:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2507:17:2507:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:17:2507:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2514:21:2514:25 | value | | main.rs:2512:19:2512:19 | T | -| main.rs:2514:31:2514:31 | x | | main.rs:2512:5:2515:5 | Self [trait MyFrom2] | -| main.rs:2519:21:2519:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:33:2519:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:48:2521:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2520:13:2520:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:21:2526:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2526:34:2526:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:49:2532:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2527:13:2531:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2527:16:2527:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2527:22:2529:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2528:17:2528:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:20:2531:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:17:2530:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2537:15:2537:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2540:15:2540:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2545:15:2545:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:31:2547:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:17:2546:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:15:2550:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:32:2552:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:17:2551:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2557:15:2557:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2557:31:2559:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2558:13:2558:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2558:13:2558:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2562:15:2562:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:32:2564:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2563:13:2563:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2567:16:2592:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2568:13:2568:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:22:2568:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2568:22:2568:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2258:9:2258:12 | f3(...) | | main.rs:2234:16:2234:39 | impl ... | +| main.rs:2258:9:2258:18 | await ... | | {EXTERNAL LOCATION} | () | +| main.rs:2259:9:2259:12 | f4(...) | | main.rs:2251:16:2251:39 | impl ... | +| main.rs:2259:9:2259:18 | await ... | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2259:9:2259:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2260:9:2260:10 | S2 | | main.rs:2238:5:2238:14 | S2 | +| main.rs:2260:9:2260:16 | await S2 | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2260:9:2260:20 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2261:13:2261:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2261:13:2261:13 | b | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2261:17:2261:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2261:17:2261:28 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2261:25:2261:26 | S1 | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2262:9:2262:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2262:9:2262:9 | b | dyn(Output) | main.rs:2220:5:2220:14 | S1 | +| main.rs:2262:9:2262:15 | await b | | main.rs:2220:5:2220:14 | S1 | +| main.rs:2262:9:2262:19 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2273:15:2273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2273:15:2273:19 | SelfParam | TRef | main.rs:2272:5:2274:5 | Self [trait Trait1] | +| main.rs:2273:22:2273:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2277:15:2277:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2277:15:2277:19 | SelfParam | TRef | main.rs:2276:5:2278:5 | Self [trait Trait2] | +| main.rs:2277:22:2277:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2281:15:2281:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2281:15:2281:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2281:22:2281:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2285:15:2285:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2285:15:2285:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2285:22:2285:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2288:37:2290:5 | { ... } | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2289:9:2289:10 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2293:18:2293:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2293:18:2293:22 | SelfParam | TRef | main.rs:2292:5:2294:5 | Self [trait MyTrait] | +| main.rs:2297:18:2297:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2297:18:2297:22 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | +| main.rs:2297:31:2299:9 | { ... } | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2298:13:2298:14 | S2 | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2303:18:2303:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2303:18:2303:22 | SelfParam | TRef | main.rs:2270:5:2270:22 | S3 | +| main.rs:2303:18:2303:22 | SelfParam | TRef.T3 | main.rs:2302:10:2302:17 | T | +| main.rs:2303:30:2306:9 | { ... } | | main.rs:2302:10:2302:17 | T | +| main.rs:2304:17:2304:21 | S3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2304:17:2304:21 | S3(...) | | main.rs:2270:5:2270:22 | S3 | +| main.rs:2304:17:2304:21 | S3(...) | TRef | main.rs:2270:5:2270:22 | S3 | +| main.rs:2304:17:2304:21 | S3(...) | TRef.T3 | main.rs:2302:10:2302:17 | T | +| main.rs:2304:25:2304:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2304:25:2304:28 | self | TRef | main.rs:2270:5:2270:22 | S3 | +| main.rs:2304:25:2304:28 | self | TRef.T3 | main.rs:2302:10:2302:17 | T | +| main.rs:2305:13:2305:21 | t.clone() | | main.rs:2302:10:2302:17 | T | +| main.rs:2309:45:2311:5 | { ... } | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2310:9:2310:10 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2313:41:2313:41 | t | | main.rs:2313:26:2313:38 | B | +| main.rs:2313:52:2315:5 | { ... } | | main.rs:2313:23:2313:23 | A | +| main.rs:2314:9:2314:9 | t | | main.rs:2313:26:2313:38 | B | +| main.rs:2314:9:2314:17 | t.get_a() | | main.rs:2313:23:2313:23 | A | +| main.rs:2317:34:2317:34 | x | | main.rs:2317:24:2317:31 | T | +| main.rs:2317:59:2319:5 | { ... } | | main.rs:2317:43:2317:57 | impl ... | +| main.rs:2317:59:2319:5 | { ... } | impl(T) | main.rs:2317:24:2317:31 | T | +| main.rs:2318:9:2318:13 | S3(...) | | main.rs:2270:5:2270:22 | S3 | +| main.rs:2318:9:2318:13 | S3(...) | | main.rs:2317:43:2317:57 | impl ... | +| main.rs:2318:9:2318:13 | S3(...) | T3 | main.rs:2317:24:2317:31 | T | +| main.rs:2318:9:2318:13 | S3(...) | impl(T) | main.rs:2317:24:2317:31 | T | +| main.rs:2318:12:2318:12 | x | | main.rs:2317:24:2317:31 | T | +| main.rs:2321:34:2321:34 | x | | main.rs:2321:24:2321:31 | T | +| main.rs:2321:67:2323:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2321:67:2323:5 | { ... } | T | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2321:67:2323:5 | { ... } | T.impl(T) | main.rs:2321:24:2321:31 | T | +| main.rs:2322:9:2322:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2322:9:2322:19 | Some(...) | T | main.rs:2270:5:2270:22 | S3 | +| main.rs:2322:9:2322:19 | Some(...) | T | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2322:9:2322:19 | Some(...) | T.T3 | main.rs:2321:24:2321:31 | T | +| main.rs:2322:9:2322:19 | Some(...) | T.impl(T) | main.rs:2321:24:2321:31 | T | +| main.rs:2322:14:2322:18 | S3(...) | | main.rs:2270:5:2270:22 | S3 | +| main.rs:2322:14:2322:18 | S3(...) | T3 | main.rs:2321:24:2321:31 | T | +| main.rs:2322:17:2322:17 | x | | main.rs:2321:24:2321:31 | T | +| main.rs:2325:34:2325:34 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2325:78:2327:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2325:78:2327:5 | { ... } | T0 | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2325:78:2327:5 | { ... } | T0.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2325:78:2327:5 | { ... } | T1 | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2325:78:2327:5 | { ... } | T1.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:9:2326:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2326:9:2326:30 | TupleExpr | T0 | main.rs:2270:5:2270:22 | S3 | +| main.rs:2326:9:2326:30 | TupleExpr | T0 | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2326:9:2326:30 | TupleExpr | T0.T3 | main.rs:2325:24:2325:31 | T | +| main.rs:2326:9:2326:30 | TupleExpr | T0.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:9:2326:30 | TupleExpr | T1 | main.rs:2270:5:2270:22 | S3 | +| main.rs:2326:9:2326:30 | TupleExpr | T1 | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2326:9:2326:30 | TupleExpr | T1.T3 | main.rs:2325:24:2325:31 | T | +| main.rs:2326:9:2326:30 | TupleExpr | T1.impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:10:2326:22 | S3(...) | | main.rs:2270:5:2270:22 | S3 | +| main.rs:2326:10:2326:22 | S3(...) | | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2326:10:2326:22 | S3(...) | T3 | main.rs:2325:24:2325:31 | T | +| main.rs:2326:10:2326:22 | S3(...) | impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:13:2326:13 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2326:13:2326:21 | x.clone() | | main.rs:2325:24:2325:31 | T | +| main.rs:2326:25:2326:29 | S3(...) | | main.rs:2270:5:2270:22 | S3 | +| main.rs:2326:25:2326:29 | S3(...) | | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2326:25:2326:29 | S3(...) | T3 | main.rs:2325:24:2325:31 | T | +| main.rs:2326:25:2326:29 | S3(...) | impl(T) | main.rs:2325:24:2325:31 | T | +| main.rs:2326:28:2326:28 | x | | main.rs:2325:24:2325:31 | T | +| main.rs:2329:26:2329:26 | t | | main.rs:2329:29:2329:43 | impl ... | +| main.rs:2329:51:2331:5 | { ... } | | main.rs:2329:23:2329:23 | A | +| main.rs:2330:9:2330:9 | t | | main.rs:2329:29:2329:43 | impl ... | +| main.rs:2330:9:2330:17 | t.get_a() | | main.rs:2329:23:2329:23 | A | +| main.rs:2333:16:2347:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2334:13:2334:13 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2334:17:2334:20 | f1(...) | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2335:9:2335:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2335:9:2335:14 | x.f1() | | {EXTERNAL LOCATION} | () | +| main.rs:2336:9:2336:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | +| main.rs:2336:9:2336:14 | x.f2() | | {EXTERNAL LOCATION} | () | +| main.rs:2337:13:2337:13 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2337:17:2337:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2338:13:2338:13 | b | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2338:17:2338:33 | uses_my_trait1(...) | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2338:32:2338:32 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2339:13:2339:13 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2339:17:2339:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2340:13:2340:13 | c | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2340:17:2340:33 | uses_my_trait2(...) | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2340:32:2340:32 | a | | main.rs:2309:28:2309:43 | impl ... | +| main.rs:2341:13:2341:13 | d | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2341:17:2341:34 | uses_my_trait2(...) | | main.rs:2269:5:2269:14 | S2 | +| main.rs:2341:32:2341:33 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2342:13:2342:13 | e | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | | main.rs:2317:43:2317:57 | impl ... | +| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2342:17:2342:43 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2342:33:2342:34 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2345:13:2345:13 | f | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2345:17:2345:44 | ... .unwrap() | | main.rs:2321:50:2321:64 | impl ... | +| main.rs:2345:17:2345:44 | ... .unwrap() | impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2345:17:2345:52 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2345:33:2345:34 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:13:2346:13 | g | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0 | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1 | main.rs:2325:61:2325:75 | impl ... | +| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:17:2346:37 | ... .0 | | main.rs:2325:44:2325:58 | impl ... | +| main.rs:2346:17:2346:37 | ... .0 | impl(T) | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:17:2346:45 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2346:33:2346:34 | S1 | | main.rs:2267:5:2268:14 | S1 | +| main.rs:2357:16:2357:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2357:16:2357:20 | SelfParam | TRef | main.rs:2353:5:2354:13 | S | +| main.rs:2357:31:2359:9 | { ... } | | main.rs:2353:5:2354:13 | S | +| main.rs:2358:13:2358:13 | S | | main.rs:2353:5:2354:13 | S | +| main.rs:2368:26:2370:9 | { ... } | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2368:26:2370:9 | { ... } | T | main.rs:2367:10:2367:10 | T | +| main.rs:2369:13:2369:38 | MyVec {...} | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2369:13:2369:38 | MyVec {...} | T | main.rs:2367:10:2367:10 | T | +| main.rs:2369:27:2369:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2369:27:2369:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2369:27:2369:36 | ...::new(...) | T | main.rs:2367:10:2367:10 | T | +| main.rs:2372:17:2372:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:17:2372:25 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2372:17:2372:25 | SelfParam | TRef.T | main.rs:2367:10:2367:10 | T | +| main.rs:2372:28:2372:32 | value | | main.rs:2367:10:2367:10 | T | +| main.rs:2372:38:2374:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2373:13:2373:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2373:13:2373:16 | self | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2373:13:2373:16 | self | TRef.T | main.rs:2367:10:2367:10 | T | +| main.rs:2373:13:2373:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2373:13:2373:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2373:13:2373:21 | self.data | T | main.rs:2367:10:2367:10 | T | +| main.rs:2373:13:2373:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2373:28:2373:32 | value | | main.rs:2367:10:2367:10 | T | +| main.rs:2381:18:2381:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2381:18:2381:22 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2381:18:2381:22 | SelfParam | TRef.T | main.rs:2377:10:2377:10 | T | +| main.rs:2381:25:2381:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2381:56:2383:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2381:56:2383:9 | { ... } | TRef | main.rs:2377:10:2377:10 | T | +| main.rs:2382:13:2382:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2382:13:2382:29 | &... | TRef | main.rs:2377:10:2377:10 | T | +| main.rs:2382:14:2382:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2382:14:2382:17 | self | TRef | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2382:14:2382:17 | self | TRef.T | main.rs:2377:10:2377:10 | T | +| main.rs:2382:14:2382:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2382:14:2382:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2382:14:2382:22 | self.data | T | main.rs:2377:10:2377:10 | T | +| main.rs:2382:14:2382:29 | ...[index] | | main.rs:2377:10:2377:10 | T | +| main.rs:2382:24:2382:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2386:22:2386:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2386:22:2386:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2386:22:2386:26 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | +| main.rs:2386:35:2388:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2387:13:2387:13 | x | | main.rs:2353:5:2354:13 | S | +| main.rs:2387:17:2387:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2387:17:2387:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2387:17:2387:21 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | +| main.rs:2387:17:2387:24 | slice[0] | | main.rs:2353:5:2354:13 | S | +| main.rs:2387:17:2387:30 | ... .foo() | | main.rs:2353:5:2354:13 | S | +| main.rs:2387:23:2387:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2390:37:2390:37 | a | | main.rs:2390:20:2390:34 | T | +| main.rs:2390:43:2390:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2394:9:2394:9 | a | | main.rs:2390:20:2390:34 | T | +| main.rs:2394:11:2394:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2397:16:2408:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:17:2398:19 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2398:17:2398:19 | vec | T | main.rs:2353:5:2354:13 | S | +| main.rs:2398:23:2398:34 | ...::new(...) | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2398:23:2398:34 | ...::new(...) | T | main.rs:2353:5:2354:13 | S | +| main.rs:2399:9:2399:11 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2399:9:2399:11 | vec | T | main.rs:2353:5:2354:13 | S | +| main.rs:2399:9:2399:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2399:18:2399:18 | S | | main.rs:2353:5:2354:13 | S | +| main.rs:2400:9:2400:11 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2400:9:2400:11 | vec | T | main.rs:2353:5:2354:13 | S | +| main.rs:2400:9:2400:14 | vec[0] | | main.rs:2353:5:2354:13 | S | +| main.rs:2400:9:2400:20 | ... .foo() | | main.rs:2353:5:2354:13 | S | +| main.rs:2400:13:2400:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:13:2402:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:13:2402:14 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2402:21:2402:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:26:2402:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:26:2402:28 | [...] | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2402:27:2402:27 | S | | main.rs:2353:5:2354:13 | S | +| main.rs:2403:13:2403:13 | x | | main.rs:2353:5:2354:13 | S | +| main.rs:2403:17:2403:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:17:2403:18 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2403:17:2403:21 | xs[0] | | main.rs:2353:5:2354:13 | S | +| main.rs:2403:17:2403:27 | ... .foo() | | main.rs:2353:5:2354:13 | S | +| main.rs:2403:20:2403:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2405:29:2405:31 | vec | | main.rs:2362:5:2365:5 | MyVec | +| main.rs:2405:29:2405:31 | vec | T | main.rs:2353:5:2354:13 | S | +| main.rs:2405:34:2405:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2407:9:2407:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2407:23:2407:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2407:23:2407:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2407:23:2407:25 | &xs | TRef.TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2407:24:2407:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2407:24:2407:25 | xs | TArray | main.rs:2353:5:2354:13 | S | +| main.rs:2412:16:2414:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:13:2413:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2413:17:2413:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2413:25:2413:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2413:25:2413:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2413:25:2413:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2413:25:2413:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2413:25:2413:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2413:38:2413:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2413:38:2413:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:19:2422:22 | SelfParam | | main.rs:2418:5:2423:5 | Self [trait MyAdd] | +| main.rs:2422:25:2422:27 | rhs | | main.rs:2418:17:2418:26 | Rhs | +| main.rs:2429:19:2429:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:25:2429:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:45:2431:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2430:13:2430:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:19:2438:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:25:2438:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2438:25:2438:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:46:2440:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2439:13:2439:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2439:14:2439:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2439:14:2439:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2447:19:2447:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2447:25:2447:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2447:46:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2448:13:2452:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2448:13:2452:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2448:16:2448:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2448:22:2450:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2448:22:2450:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:17:2449:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2449:17:2449:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2450:20:2452:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2450:20:2452:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2451:17:2451:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2451:17:2451:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:19:2462:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2462:19:2462:22 | SelfParam | T | main.rs:2458:10:2458:17 | T | +| main.rs:2462:25:2462:29 | other | | main.rs:2456:5:2456:19 | S | +| main.rs:2462:25:2462:29 | other | T | main.rs:2458:10:2458:17 | T | +| main.rs:2462:54:2464:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:13:2463:39 | S(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:15:2463:22 | (...) | | main.rs:2458:10:2458:17 | T | +| main.rs:2463:16:2463:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:16:2463:19 | self | T | main.rs:2458:10:2458:17 | T | +| main.rs:2463:16:2463:21 | self.0 | | main.rs:2458:10:2458:17 | T | +| main.rs:2463:31:2463:35 | other | | main.rs:2456:5:2456:19 | S | +| main.rs:2463:31:2463:35 | other | T | main.rs:2458:10:2458:17 | T | +| main.rs:2463:31:2463:37 | other.0 | | main.rs:2458:10:2458:17 | T | +| main.rs:2471:19:2471:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2471:19:2471:22 | SelfParam | T | main.rs:2467:10:2467:17 | T | +| main.rs:2471:25:2471:29 | other | | main.rs:2467:10:2467:17 | T | +| main.rs:2471:51:2473:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2472:13:2472:37 | S(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2472:15:2472:22 | (...) | | main.rs:2467:10:2467:17 | T | +| main.rs:2472:16:2472:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2472:16:2472:19 | self | T | main.rs:2467:10:2467:17 | T | +| main.rs:2472:16:2472:21 | self.0 | | main.rs:2467:10:2467:17 | T | +| main.rs:2472:31:2472:35 | other | | main.rs:2467:10:2467:17 | T | +| main.rs:2483:19:2483:22 | SelfParam | | main.rs:2456:5:2456:19 | S | +| main.rs:2483:19:2483:22 | SelfParam | T | main.rs:2476:14:2476:14 | T | +| main.rs:2483:25:2483:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2483:25:2483:29 | other | TRef | main.rs:2476:14:2476:14 | T | +| main.rs:2483:55:2485:9 | { ... } | | main.rs:2456:5:2456:19 | S | +| main.rs:2484:13:2484:37 | S(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2484:15:2484:22 | (...) | | main.rs:2476:14:2476:14 | T | +| main.rs:2484:16:2484:19 | self | | main.rs:2456:5:2456:19 | S | +| main.rs:2484:16:2484:19 | self | T | main.rs:2476:14:2476:14 | T | +| main.rs:2484:16:2484:21 | self.0 | | main.rs:2476:14:2476:14 | T | +| main.rs:2484:31:2484:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2484:31:2484:35 | other | TRef | main.rs:2476:14:2476:14 | T | +| main.rs:2490:20:2490:24 | value | | main.rs:2488:18:2488:18 | T | +| main.rs:2495:20:2495:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2495:40:2497:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2496:13:2496:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2502:20:2502:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2502:41:2508:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2503:13:2507:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2503:13:2507:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2503:16:2503:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2503:22:2505:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2503:22:2505:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2504:17:2504:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2504:17:2504:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2505:20:2507:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:20:2507:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2506:17:2506:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:17:2506:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2513:21:2513:25 | value | | main.rs:2511:19:2511:19 | T | +| main.rs:2513:31:2513:31 | x | | main.rs:2511:5:2514:5 | Self [trait MyFrom2] | +| main.rs:2518:21:2518:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:33:2518:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:48:2520:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2519:13:2519:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2525:21:2525:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2525:34:2525:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2525:49:2531:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2526:13:2530:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2526:16:2526:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2526:22:2528:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2527:17:2527:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2528:20:2530:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:17:2529:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2536:15:2536:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | +| main.rs:2539:15:2539:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | +| main.rs:2544:15:2544:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2544:31:2546:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2545:13:2545:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2545:13:2545:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2545:17:2545:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:15:2549:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2549:32:2551:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2550:13:2550:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2550:13:2550:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2550:17:2550:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2556:15:2556:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2556:31:2558:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2557:13:2557:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:13:2557:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2561:15:2561:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2561:32:2563:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2562:13:2562:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2566:16:2591:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2567:13:2567:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2567:22:2567:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:22:2567:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2568:9:2568:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2568:9:2568:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2568:18:2568:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2569:9:2569:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2569:18:2569:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2569:18:2569:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2569:19:2569:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2570:18:2570:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:19:2570:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:18:2571:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2573:9:2573:15 | S(...) | | main.rs:2457:5:2457:19 | S | +| main.rs:2570:9:2570:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2570:18:2570:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2572:9:2572:15 | S(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2572:9:2572:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:9:2572:31 | ... .my_add(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2572:11:2572:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:24:2572:30 | S(...) | | main.rs:2456:5:2456:19 | S | +| main.rs:2572:24:2572:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:26:2572:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2573:9:2573:15 | S(...) | | main.rs:2456:5:2456:19 | S | | main.rs:2573:9:2573:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:9:2573:31 | ... .my_add(...) | | main.rs:2457:5:2457:19 | S | | main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:24:2573:30 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2573:24:2573:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:26:2573:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:9:2574:15 | S(...) | | main.rs:2457:5:2457:19 | S | +| main.rs:2573:24:2573:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2574:9:2574:15 | S(...) | | main.rs:2456:5:2456:19 | S | | main.rs:2574:9:2574:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2574:9:2574:29 | ... .my_add(...) | | main.rs:2456:5:2456:19 | S | | main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:9:2575:15 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2575:9:2575:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:9:2575:29 | ... .my_add(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2575:11:2575:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:24:2575:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2575:24:2575:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:25:2575:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:13:2578:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:17:2578:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:30:2578:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2579:13:2579:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:22:2579:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:38:2579:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:30:2580:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:23:2581:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:29:2581:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:9:2582:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2582:27:2582:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:34:2582:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2574:24:2574:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2574:24:2574:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2574:25:2574:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:13:2576:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:17:2576:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:30:2576:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:13:2577:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:17:2577:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2577:30:2577:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2578:13:2578:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2578:22:2578:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2578:38:2578:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2579:9:2579:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2579:23:2579:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2579:30:2579:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2580:9:2580:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2580:23:2580:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2580:29:2580:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2581:9:2581:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2581:27:2581:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2581:34:2581:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:17:2583:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:17:2585:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:9:2586:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2586:9:2586:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | | main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:18:2587:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2588:9:2588:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:9:2587:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:25:2587:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:9:2588:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:9:2590:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:25:2589:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2590:9:2590:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | | main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:9:2591:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:25:2591:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2599:26:2601:9 | { ... } | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2600:13:2600:25 | MyCallable {...} | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:17:2603:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2603:17:2603:21 | SelfParam | TRef | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:31:2605:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:13:2604:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2604:13:2604:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2608:16:2715:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:13:2611:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:26:2600:9 | { ... } | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2599:13:2599:25 | MyCallable {...} | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2602:17:2602:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2602:17:2602:21 | SelfParam | TRef | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2602:31:2604:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:13:2603:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:13:2603:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2607:16:2714:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2610:9:2610:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2610:13:2610:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:18:2610:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2610:18:2610:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:19:2610:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:22:2610:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:25:2610:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:28:2610:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2611:9:2611:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | | main.rs:2611:18:2611:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2611:18:2611:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | | main.rs:2611:19:2611:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2611:22:2611:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2611:25:2611:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:28:2611:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2611:32:2611:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2611:32:2611:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2611:40:2611:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2611:43:2611:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2612:9:2612:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2612:13:2612:13 | i | | {EXTERNAL LOCATION} | i32 | | main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | | main.rs:2612:18:2612:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:18:2612:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2612:18:2612:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2612:18:2612:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | | main.rs:2612:19:2612:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2612:22:2612:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2612:25:2612:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:32:2612:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2612:32:2612:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:2612:40:2612:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:43:2612:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:9:2613:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:13:2613:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:18:2613:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2613:18:2613:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:18:2613:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2613:18:2613:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:19:2613:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:22:2613:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:25:2613:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:40:2613:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:13:2615:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:13:2615:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:13:2615:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:21:2615:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:21:2615:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:21:2615:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:22:2615:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:27:2615:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:27:2615:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:30:2615:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:30:2615:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:9:2616:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2616:13:2616:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:13:2616:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:18:2616:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2616:18:2616:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:18:2616:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:24:2616:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:13:2618:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:13:2618:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:21:2618:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:21:2618:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:22:2618:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:28:2618:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:9:2619:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2619:13:2619:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:18:2619:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2619:18:2619:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:24:2619:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:13:2621:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:13:2621:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:26:2621:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:31:2621:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:31:2621:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:31:2621:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:32:2621:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:32:2621:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:35:2621:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:35:2621:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:38:2621:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:38:2621:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:9:2622:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2622:13:2622:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:18:2622:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:18:2622:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:24:2622:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:13:2624:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:13:2624:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:26:2624:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:31:2624:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:31:2624:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:31:2624:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:32:2624:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:32:2624:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:35:2624:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:9:2625:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:13:2625:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:18:2625:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:18:2625:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:24:2625:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:17:2627:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:17:2627:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:17:2627:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:28:2627:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:28:2627:48 | [...] | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:28:2627:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:29:2627:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:29:2627:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:36:2627:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:36:2627:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:43:2627:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:43:2627:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:9:2628:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2612:40:2612:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2614:13:2614:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2614:13:2614:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2614:13:2614:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2614:21:2614:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2614:21:2614:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2614:21:2614:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2614:22:2614:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2614:27:2614:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2614:27:2614:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2614:30:2614:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2614:30:2614:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2615:9:2615:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2615:13:2615:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2615:13:2615:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2615:18:2615:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2615:18:2615:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2615:18:2615:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2615:24:2615:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2617:13:2617:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2617:13:2617:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2617:21:2617:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2617:21:2617:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2617:22:2617:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2617:28:2617:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:9:2618:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:13:2618:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2618:18:2618:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2618:18:2618:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2618:24:2618:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:13:2620:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2620:13:2620:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2620:26:2620:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:31:2620:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2620:31:2620:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:31:2620:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2620:32:2620:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:32:2620:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2620:35:2620:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:35:2620:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2620:38:2620:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:38:2620:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2621:9:2621:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2621:13:2621:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2621:18:2621:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2621:18:2621:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2621:24:2621:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2623:13:2623:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2623:13:2623:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2623:26:2623:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2623:31:2623:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2623:31:2623:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2623:31:2623:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2623:32:2623:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2623:32:2623:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2623:35:2623:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2624:9:2624:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2624:13:2624:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2624:18:2624:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2624:18:2624:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2624:24:2624:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:17:2626:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:17:2626:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2626:17:2626:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:28:2626:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:28:2626:48 | [...] | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2626:28:2626:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:29:2626:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:29:2626:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:36:2626:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:36:2626:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2626:43:2626:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2626:43:2626:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2627:9:2627:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2627:13:2627:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2627:13:2627:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2627:18:2627:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2627:18:2627:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:18:2627:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2627:18:2627:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2627:19:2627:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:19:2627:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2627:19:2627:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2627:28:2627:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:9:2628:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2628:13:2628:13 | s | | {EXTERNAL LOCATION} | & | | main.rs:2628:13:2628:13 | s | TRef | {EXTERNAL LOCATION} | & | | main.rs:2628:13:2628:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:18:2628:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:18:2628:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:19:2628:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:19:2628:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:19:2628:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:28:2628:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:18:2628:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2628:18:2628:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2628:18:2628:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2628:18:2628:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2628:23:2628:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2628:23:2628:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2628:23:2628:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2628:32:2628:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:9:2629:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2629:13:2629:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2629:13:2629:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2629:13:2629:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:18:2629:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:23:2629:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:23:2629:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2629:23:2629:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:32:2629:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:9:2630:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:13:2630:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2630:13:2630:13 | s | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2630:18:2630:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:18:2630:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2630:18:2630:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2630:27:2630:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:13:2632:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2633:9:2637:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:9:2637:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2629:13:2629:13 | s | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2629:18:2629:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:18:2629:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2629:18:2629:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2629:27:2629:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:13:2631:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2631:13:2631:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2632:9:2636:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:9:2636:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2633:13:2633:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2633:26:2633:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2633:26:2633:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2634:26:2634:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2634:26:2634:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2636:13:2636:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2636:26:2636:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2636:26:2636:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2638:9:2638:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:13:2638:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2638:18:2638:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:18:2638:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2638:27:2638:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2640:13:2640:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2640:13:2640:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2640:13:2640:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2641:9:2645:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2641:9:2645:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:9:2645:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2641:10:2645:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:10:2645:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2635:26:2635:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2635:26:2635:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2637:9:2637:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2637:13:2637:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2637:18:2637:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2637:18:2637:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2637:27:2637:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:13:2639:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2639:13:2639:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:13:2639:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2640:9:2644:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2640:9:2644:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2640:9:2644:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2640:10:2644:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2640:10:2644:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2641:13:2641:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2641:26:2641:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:26:2641:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:26:2642:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2642:26:2642:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:13:2644:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2644:26:2644:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2644:26:2644:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2646:9:2646:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:13:2646:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2646:13:2646:13 | s | TRef | {EXTERNAL LOCATION} | String | -| main.rs:2646:18:2646:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2646:18:2646:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2646:18:2646:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2646:27:2646:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2648:13:2648:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:13:2648:21 | callables | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:25:2648:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:25:2648:81 | [...] | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:26:2648:42 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:45:2648:61 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:64:2648:80 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2649:9:2653:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2649:13:2649:13 | c | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2650:12:2650:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2650:12:2650:20 | callables | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2651:9:2653:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2652:17:2652:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2652:26:2652:26 | c | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2652:26:2652:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2657:9:2657:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:13:2657:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:18:2657:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:18:2657:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:18:2657:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:21:2657:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:24:2657:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:9:2658:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:13:2658:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:13:2658:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:13:2658:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:18:2658:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2658:18:2658:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | -| main.rs:2658:18:2658:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:18:2658:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:19:2658:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:19:2658:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2643:26:2643:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2643:26:2643:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2645:9:2645:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2645:13:2645:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2645:13:2645:13 | s | TRef | {EXTERNAL LOCATION} | String | +| main.rs:2645:18:2645:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2645:18:2645:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2645:18:2645:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2645:27:2645:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2647:13:2647:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:13:2647:21 | callables | TArray | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:25:2647:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:25:2647:81 | [...] | TArray | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:26:2647:42 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:45:2647:61 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2647:64:2647:80 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2648:9:2652:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2648:13:2648:13 | c | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2649:12:2649:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2649:12:2649:20 | callables | TArray | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2650:9:2652:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2651:17:2651:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2651:26:2651:26 | c | | main.rs:2595:5:2595:24 | MyCallable | +| main.rs:2651:26:2651:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2656:9:2656:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2656:13:2656:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2656:18:2656:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2656:18:2656:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2656:18:2656:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2656:21:2656:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2656:24:2656:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2657:9:2657:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2657:13:2657:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2657:13:2657:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2657:13:2657:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:18:2657:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2657:18:2657:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | +| main.rs:2657:18:2657:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2657:18:2657:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:19:2657:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:19:2657:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2657:19:2657:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2657:19:2657:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:24:2657:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2657:24:2657:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2657:28:2657:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2658:13:2658:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2658:13:2658:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:21:2658:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:21:2658:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2658:21:2658:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | | main.rs:2658:24:2658:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:24:2658:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:28:2658:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:13:2659:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:13:2659:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:21:2659:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:21:2659:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:21:2659:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:24:2659:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:9:2660:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:13:2660:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:18:2660:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:18:2660:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:24:2660:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:13:2661:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:26:2661:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:9:2662:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:18:2662:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2662:19:2662:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:19:2662:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:20:2662:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:26:2662:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:32:2662:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:38:2662:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:50:2662:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2664:13:2664:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2664:13:2664:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2665:9:2668:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2665:9:2668:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2666:20:2666:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2667:18:2667:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:9:2669:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2669:13:2669:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:18:2669:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2669:18:2669:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:25:2669:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:13:2673:17 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2673:21:2673:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2673:26:2673:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:29:2673:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:32:2673:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:18:2674:22 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:13:2676:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:13:2676:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:13:2676:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:32:2676:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:32:2676:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:32:2676:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:32:2676:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:33:2676:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:39:2676:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:42:2676:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2677:9:2677:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2677:13:2677:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:18:2677:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2677:18:2677:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:18:2677:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:25:2677:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:22:2679:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2679:22:2679:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:22:2679:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:23:2679:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:29:2679:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:32:2679:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2680:9:2680:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2680:25:2680:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:13:2682:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:13:2682:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2682:13:2682:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:13:2682:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:21:2682:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:21:2682:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2682:21:2682:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:21:2682:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:31:2682:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2682:31:2682:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:31:2682:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:32:2682:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:38:2682:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:41:2682:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:9:2683:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:18:2683:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2683:18:2683:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2683:18:2683:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:18:2683:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:24:2683:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:13:2685:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:13:2685:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:13:2685:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:13:2685:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2685:32:2685:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2685:32:2685:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:32:2685:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:32:2685:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:32:2685:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:33:2685:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:39:2685:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2685:42:2685:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2686:9:2686:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2686:13:2686:13 | u | | {EXTERNAL LOCATION} | & | -| main.rs:2686:13:2686:13 | u | TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:18:2686:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2686:18:2686:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2686:18:2686:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2686:18:2686:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:24:2686:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:17:2688:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:17:2688:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:17:2688:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2688:25:2688:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:25:2688:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:25:2688:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:9:2689:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:9:2689:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2689:20:2689:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:9:2690:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:13:2690:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:18:2690:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:18:2690:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:18:2690:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:24:2690:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2692:13:2692:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:23:2692:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:28:2692:37 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:28:2692:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:33:2692:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:36:2692:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:40:2692:49 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:40:2692:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:45:2692:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:48:2692:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2694:13:2694:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2694:17:2697:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:28:2694:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2694:36:2697:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:13:2696:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:29:2696:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:17:2699:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:17:2699:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:17:2699:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:17:2699:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2699:17:2699:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:17:2699:20 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:17:2699:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:24:2699:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:24:2699:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:24:2699:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:24:2699:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2699:24:2699:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:24:2699:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:24:2699:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2659:9:2659:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2659:13:2659:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:18:2659:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2659:18:2659:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:24:2659:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:13:2660:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2660:26:2660:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2661:9:2661:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2661:18:2661:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2661:19:2661:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2661:19:2661:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:20:2661:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:26:2661:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:32:2661:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2661:38:2661:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2661:50:2661:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2663:13:2663:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2663:13:2663:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2664:9:2667:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2664:9:2667:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2665:20:2665:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2666:18:2666:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2668:9:2668:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2668:13:2668:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2668:18:2668:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2668:18:2668:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2668:25:2668:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:13:2672:17 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2672:21:2672:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2672:26:2672:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:29:2672:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:32:2672:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:9:2673:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:18:2673:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2673:24:2673:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2675:13:2675:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2675:13:2675:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2675:32:2675:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2675:32:2675:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2675:32:2675:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2675:32:2675:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2675:32:2675:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2675:32:2675:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2675:33:2675:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2675:39:2675:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2675:42:2675:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2676:9:2676:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:13:2676:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2676:18:2676:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2676:18:2676:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2676:18:2676:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2676:25:2676:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:22:2678:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2678:22:2678:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2678:22:2678:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2678:23:2678:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2678:29:2678:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2678:32:2678:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2679:9:2679:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2679:25:2679:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2681:13:2681:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2681:13:2681:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2681:13:2681:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2681:13:2681:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2681:21:2681:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2681:21:2681:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2681:21:2681:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2681:21:2681:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2681:31:2681:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2681:31:2681:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2681:31:2681:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2681:32:2681:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2681:38:2681:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2681:41:2681:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2682:9:2682:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2682:13:2682:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2682:13:2682:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2682:18:2682:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2682:18:2682:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2682:18:2682:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2682:18:2682:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2682:24:2682:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2684:13:2684:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2684:13:2684:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2684:13:2684:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2684:13:2684:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2684:32:2684:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2684:32:2684:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2684:32:2684:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2684:32:2684:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2684:32:2684:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2684:32:2684:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | +| main.rs:2684:32:2684:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2684:33:2684:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2684:39:2684:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2684:42:2684:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2685:9:2685:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2685:13:2685:13 | u | | {EXTERNAL LOCATION} | & | +| main.rs:2685:13:2685:13 | u | TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2685:18:2685:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2685:18:2685:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2685:18:2685:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2685:18:2685:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2685:24:2685:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2687:17:2687:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:17:2687:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:17:2687:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2687:25:2687:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:25:2687:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:25:2687:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2688:9:2688:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2688:9:2688:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:9:2688:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2688:9:2688:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2688:20:2688:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2689:9:2689:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2689:13:2689:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2689:18:2689:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2689:18:2689:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:18:2689:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2689:24:2689:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2691:13:2691:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:23:2691:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:28:2691:37 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:28:2691:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:33:2691:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:36:2691:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:40:2691:49 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:40:2691:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:45:2691:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:48:2691:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2693:17:2696:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:28:2693:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2693:36:2696:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:13:2695:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:29:2695:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2698:17:2698:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2698:17:2698:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:17:2698:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2698:17:2698:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2698:17:2698:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2698:17:2698:20 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2698:17:2698:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2698:24:2698:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2698:24:2698:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:24:2698:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2698:24:2698:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2698:24:2698:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2698:24:2698:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2698:24:2698:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2699:9:2699:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2699:9:2699:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:9:2699:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2699:9:2699:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2699:9:2699:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:9:2699:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2699:9:2699:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2699:9:2699:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2699:9:2699:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2699:9:2699:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:9:2699:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2699:9:2699:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2699:21:2699:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:24:2699:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2699:24:2699:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:24:2699:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:24:2699:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2699:33:2699:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2699:33:2699:37 | "one" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | | main.rs:2700:9:2700:12 | map1 | K | {EXTERNAL LOCATION} | i32 | | main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | @@ -10245,70 +10264,81 @@ inferType | main.rs:2700:9:2700:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | | main.rs:2700:9:2700:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | | main.rs:2700:9:2700:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:21:2700:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2700:21:2700:21 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | | main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | main.rs:2700:24:2700:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | | main.rs:2700:24:2700:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:33:2700:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:9:2701:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:9:2701:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:9:2701:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2701:9:2701:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:9:2701:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:9:2701:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2701:9:2701:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:21:2701:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:24:2701:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2701:24:2701:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:24:2701:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2701:24:2701:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:33:2701:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2701:33:2701:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:9:2702:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:13:2702:15 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2702:13:2702:15 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:20:2702:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:20:2702:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:20:2702:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:20:2702:23 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:20:2702:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:20:2702:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2702:20:2702:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:20:2702:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:20:2702:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:20:2702:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:32:2702:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:13:2703:17 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:17 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2703:13:2703:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:13:2703:17 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:22:2703:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:22:2703:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:22:2703:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:22:2703:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:22:2703:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:22:2703:25 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:22:2703:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:22:2703:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2703:22:2703:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:22:2703:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:22:2703:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:22:2703:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:22:2703:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:36:2703:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:33:2700:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2700:33:2700:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2701:9:2701:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2701:13:2701:15 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2701:13:2701:15 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:20:2701:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2701:20:2701:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:20:2701:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2701:20:2701:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2701:20:2701:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2701:20:2701:23 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2701:20:2701:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2701:20:2701:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2701:20:2701:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:20:2701:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2701:20:2701:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2701:20:2701:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2701:20:2701:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2701:32:2701:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:9:2702:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:13:2702:17 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2702:13:2702:17 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2702:13:2702:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:13:2702:17 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2702:13:2702:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2702:22:2702:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2702:22:2702:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2702:22:2702:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2702:22:2702:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2702:22:2702:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:22:2702:25 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2702:22:2702:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2702:22:2702:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2702:22:2702:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2702:22:2702:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2702:22:2702:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:22:2702:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2702:22:2702:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2702:36:2702:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2703:9:2703:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2703:13:2703:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2703:13:2703:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2703:13:2703:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2703:13:2703:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2703:13:2703:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2703:14:2703:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2703:14:2703:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2703:19:2703:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2703:19:2703:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2703:19:2703:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:19:2703:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2703:19:2703:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2703:29:2703:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2703:29:2703:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2703:29:2703:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2703:29:2703:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2703:29:2703:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:29:2703:32 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2703:29:2703:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2703:29:2703:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2703:29:2703:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2703:29:2703:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2703:29:2703:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:29:2703:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2703:29:2703:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2703:41:2703:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:9:2704:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | | main.rs:2704:13:2704:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | | main.rs:2704:13:2704:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | @@ -10324,786 +10354,756 @@ inferType | main.rs:2704:19:2704:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | | main.rs:2704:19:2704:23 | value | TRef.T | {EXTERNAL LOCATION} | & | | main.rs:2704:19:2704:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:29:2704:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:29:2704:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:29:2704:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:29:2704:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:29:2704:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:29:2704:32 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:29:2704:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2704:29:2704:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:29:2704:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:29:2704:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:29:2704:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:41:2704:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:9:2705:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:13:2705:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2705:13:2705:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:13:2705:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:14:2705:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2705:14:2705:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:19:2705:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2705:19:2705:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2705:19:2705:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:19:2705:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:19:2705:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:29:2705:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2705:29:2705:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:29:2705:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:29:2705:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:29:2705:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:30:2705:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:30:2705:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:30:2705:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:30:2705:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2705:30:2705:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:30:2705:33 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:30:2705:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:35:2705:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:17:2709:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2709:26:2709:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2709:26:2709:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:13:2711:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2711:17:2714:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2711:23:2711:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:23:2711:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2711:27:2711:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2712:9:2714:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:13:2713:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2713:13:2713:18 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2713:18:2713:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2725:40:2727:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2725:40:2727:9 | { ... } | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2725:40:2727:9 | { ... } | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2726:13:2726:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2726:13:2726:16 | None | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2726:13:2726:16 | None | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2729:30:2731:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2729:30:2731:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2730:13:2730:28 | S1(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2730:13:2730:28 | S1(...) | T | main.rs:2724:10:2724:19 | T | -| main.rs:2730:16:2730:27 | ...::default(...) | | main.rs:2724:10:2724:19 | T | -| main.rs:2733:19:2733:22 | SelfParam | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:19:2733:22 | SelfParam | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:33:2735:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:33:2735:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2734:13:2734:16 | self | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2734:13:2734:16 | self | T | main.rs:2724:10:2724:19 | T | -| main.rs:2746:15:2746:15 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2746:26:2748:5 | { ... } | | main.rs:2746:12:2746:12 | T | -| main.rs:2747:9:2747:9 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2750:16:2772:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2751:13:2751:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x1 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:13:2751:14 | x1 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:13:2752:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x2 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:13:2753:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:13:2753:14 | x3 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:13:2753:14 | x3 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:13:2754:14 | x4 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:13:2754:14 | x4 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:18:2754:48 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:18:2754:48 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:35:2754:47 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:35:2754:47 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:13:2755:14 | x5 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:18:2755:42 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:18:2755:42 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:29:2755:41 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:29:2755:41 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:13:2756:14 | x6 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2756:13:2756:14 | x6 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:18:2756:45 | S4::<...>(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2756:18:2756:45 | S4::<...>(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:27:2756:44 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:13:2757:14 | x7 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2757:13:2757:14 | x7 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:18:2757:23 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2757:18:2757:23 | S4(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:21:2757:22 | S2 | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2758:13:2758:14 | x8 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2758:13:2758:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:18:2758:22 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2758:18:2758:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:21:2758:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:13:2759:14 | x9 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2759:13:2759:14 | x9 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2759:18:2759:34 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2759:18:2759:34 | S4(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2759:21:2759:33 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:13:2760:15 | x10 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:13:2760:15 | x10 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2762:20:2762:37 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:13:2764:15 | x11 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:13:2764:15 | x11 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:19:2764:34 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:19:2764:34 | S5 {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:31:2764:32 | S2 | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2765:13:2765:15 | x12 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:13:2765:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:19:2765:33 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:19:2765:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:31:2765:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2766:13:2766:15 | x13 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:13:2766:15 | x13 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2766:19:2769:9 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:19:2769:9 | S5 {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2768:20:2768:32 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2770:13:2770:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:19:2770:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:30:2770:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:13:2771:15 | x15 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:13:2771:15 | x15 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2771:19:2771:37 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:19:2771:37 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2780:35:2782:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:35:2782:9 | { ... } | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2780:35:2782:9 | { ... } | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2781:13:2781:26 | TupleExpr | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:14:2781:18 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:21:2781:25 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:16:2783:19 | SelfParam | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:22:2783:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:16:2820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2787:13:2787:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:13:2787:13 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:13:2787:13 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:17:2788:17 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:13:2789:18 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:14:2789:14 | c | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:17:2789:17 | d | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:13:2790:22 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:18:2790:18 | e | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:21:2790:21 | f | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:13:2791:26 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:18:2791:18 | g | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:25:2791:25 | h | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:11 | a.0 | | main.rs:2776:5:2777:16 | S1 | +| main.rs:2704:29:2704:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2704:29:2704:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | +| main.rs:2704:29:2704:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:29:2704:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2704:29:2704:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | +| main.rs:2704:29:2704:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:29:2704:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | +| main.rs:2704:29:2704:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2704:30:2704:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2704:30:2704:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:30:2704:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2704:30:2704:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2704:30:2704:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:30:2704:33 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2704:30:2704:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2704:35:2704:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2708:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2708:26:2708:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2708:26:2708:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2710:13:2710:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2710:17:2713:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2710:23:2710:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2710:23:2710:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2710:27:2710:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:9:2713:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2712:13:2712:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2712:13:2712:18 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2712:18:2712:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:40:2726:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2724:40:2726:9 | { ... } | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2724:40:2726:9 | { ... } | T.T | main.rs:2723:10:2723:19 | T | +| main.rs:2725:13:2725:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2725:13:2725:16 | None | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2725:13:2725:16 | None | T.T | main.rs:2723:10:2723:19 | T | +| main.rs:2728:30:2730:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2728:30:2730:9 | { ... } | T | main.rs:2723:10:2723:19 | T | +| main.rs:2729:13:2729:28 | S1(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2729:13:2729:28 | S1(...) | T | main.rs:2723:10:2723:19 | T | +| main.rs:2729:16:2729:27 | ...::default(...) | | main.rs:2723:10:2723:19 | T | +| main.rs:2732:19:2732:22 | SelfParam | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2732:19:2732:22 | SelfParam | T | main.rs:2723:10:2723:19 | T | +| main.rs:2732:33:2734:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2732:33:2734:9 | { ... } | T | main.rs:2723:10:2723:19 | T | +| main.rs:2733:13:2733:16 | self | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2733:13:2733:16 | self | T | main.rs:2723:10:2723:19 | T | +| main.rs:2745:15:2745:15 | x | | main.rs:2745:12:2745:12 | T | +| main.rs:2745:26:2747:5 | { ... } | | main.rs:2745:12:2745:12 | T | +| main.rs:2746:9:2746:9 | x | | main.rs:2745:12:2745:12 | T | +| main.rs:2749:16:2771:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2750:13:2750:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2750:13:2750:14 | x1 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2750:13:2750:14 | x1 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2751:13:2751:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2751:13:2751:14 | x2 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2751:13:2751:14 | x2 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2752:13:2752:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2752:13:2752:14 | x3 | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2752:13:2752:14 | x3 | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | +| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:13:2753:14 | x4 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2753:13:2753:14 | x4 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:18:2753:48 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2753:18:2753:48 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2753:35:2753:47 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2753:35:2753:47 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2754:13:2754:14 | x5 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:13:2754:14 | x5 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2754:18:2754:42 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:18:2754:42 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2754:29:2754:41 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2754:29:2754:41 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2755:13:2755:14 | x6 | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2755:13:2755:14 | x6 | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2755:18:2755:45 | S4::<...>(...) | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2755:18:2755:45 | S4::<...>(...) | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2755:27:2755:44 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2756:13:2756:14 | x7 | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2756:13:2756:14 | x7 | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2756:18:2756:23 | S4(...) | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2756:18:2756:23 | S4(...) | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2756:21:2756:22 | S2 | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2757:13:2757:14 | x8 | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2757:13:2757:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2757:18:2757:22 | S4(...) | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2757:18:2757:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2757:21:2757:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2758:13:2758:14 | x9 | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2758:13:2758:14 | x9 | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2758:18:2758:34 | S4(...) | | main.rs:2739:5:2739:27 | S4 | +| main.rs:2758:18:2758:34 | S4(...) | T4 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2758:21:2758:33 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2759:13:2759:15 | x10 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2759:13:2759:15 | x10 | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2759:19:2762:9 | S5::<...> {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2759:19:2762:9 | S5::<...> {...} | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2761:20:2761:37 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2763:13:2763:15 | x11 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2763:13:2763:15 | x11 | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2763:19:2763:34 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2763:19:2763:34 | S5 {...} | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2763:31:2763:32 | S2 | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2764:13:2764:15 | x12 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2764:13:2764:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:19:2764:33 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2764:19:2764:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:31:2764:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:13:2765:15 | x13 | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2765:13:2765:15 | x13 | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2765:19:2768:9 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | +| main.rs:2765:19:2768:9 | S5 {...} | T5 | main.rs:2720:5:2721:14 | S2 | +| main.rs:2767:20:2767:32 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | +| main.rs:2769:13:2769:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2769:19:2769:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2769:30:2769:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:13:2770:15 | x15 | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2770:13:2770:15 | x15 | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2770:19:2770:37 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | +| main.rs:2770:19:2770:37 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | +| main.rs:2779:35:2781:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2779:35:2781:9 | { ... } | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2779:35:2781:9 | { ... } | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:13:2780:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2780:13:2780:26 | TupleExpr | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:13:2780:26 | TupleExpr | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:14:2780:18 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2780:21:2780:25 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2782:16:2782:19 | SelfParam | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2782:22:2782:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2785:16:2819:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2786:13:2786:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2786:13:2786:13 | a | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:13:2786:13 | a | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2786:17:2786:30 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:17:2787:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2787:17:2787:17 | b | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:17:2787:17 | b | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2787:21:2787:34 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:13:2788:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2788:13:2788:18 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:13:2788:18 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:14:2788:14 | c | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:17:2788:17 | d | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2788:22:2788:35 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:13:2789:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2789:13:2789:22 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:13:2789:22 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:18:2789:18 | e | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:21:2789:21 | f | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2789:26:2789:39 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:13:2790:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2790:13:2790:26 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:13:2790:26 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:18:2790:18 | g | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:25:2790:25 | h | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2790:30:2790:43 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2792:9:2792:9 | a | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:9 | a | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:11 | a.0 | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2792:9:2792:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2793:9:2793:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2793:9:2793:9 | b | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2793:9:2793:9 | b | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2793:9:2793:11 | b.1 | | main.rs:2775:5:2776:16 | S1 | | main.rs:2793:9:2793:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2794:9:2794:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:9:2794:9 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:11 | b.1 | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2795:9:2795:9 | c | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2795:9:2795:15 | c.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2796:9:2796:9 | d | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2796:9:2796:15 | d.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2797:9:2797:9 | e | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2797:9:2797:15 | e.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2798:9:2798:9 | f | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2798:9:2798:15 | f.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2799:9:2799:9 | g | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2799:9:2799:15 | g.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2800:9:2800:9 | h | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2800:9:2800:15 | h.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2805:13:2805:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2805:17:2805:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2806:13:2806:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2806:17:2806:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2807:13:2807:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:13:2807:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:13:2807:16 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2807:20:2807:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:20:2807:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:20:2807:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2807:21:2807:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:24:2807:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2808:13:2808:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:22:2808:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2808:22:2808:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2809:13:2809:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2809:23:2809:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2809:23:2809:26 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2811:13:2811:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:13:2811:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:13:2811:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2811:20:2811:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:20:2811:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:21:2811:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:24:2811:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:9:2815:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2812:15:2812:18 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2812:15:2812:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:15:2812:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:13:2813:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2813:13:2813:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:13:2813:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:14:2813:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:17:2813:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:23:2813:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:30:2813:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:30:2813:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2814:13:2814:13 | _ | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2814:13:2814:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2814:13:2814:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2814:18:2814:35 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2814:25:2814:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2814:25:2814:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2816:13:2816:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:20 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2816:17:2816:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2818:13:2818:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2818:13:2818:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:13:2818:13 | y | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:13:2818:13 | y | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:17:2818:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2818:17:2818:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:17:2818:31 | &... | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:17:2818:31 | &... | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2819:9:2819:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2819:9:2819:9 | y | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:11 | y.0 | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2825:27:2847:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2826:13:2826:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:13:2826:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:13:2826:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:27:2826:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:27:2826:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:27:2826:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:36:2826:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:9:2837:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2829:15:2829:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2829:15:2829:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2829:15:2829:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:13:2830:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2830:13:2830:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2830:13:2830:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:17:2830:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:24:2832:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2831:26:2831:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2833:13:2833:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2833:13:2833:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2833:13:2833:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2833:22:2836:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2835:26:2835:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:13:2840:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:13:2840:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:26:2840:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:35:2840:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:35:2840:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:35:2840:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:44:2840:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:9:2846:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2841:15:2841:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:15:2841:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:15:2841:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2842:13:2842:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2842:13:2842:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:13:2842:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2842:13:2842:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:13:2842:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2842:26:2845:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2844:26:2844:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2856:36:2858:9 | { ... } | | main.rs:2853:5:2853:22 | Path | -| main.rs:2857:13:2857:19 | Path {...} | | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:29:2860:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2860:29:2860:33 | SelfParam | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:59:2862:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2860:59:2862:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2860:59:2862:9 | { ... } | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:13:2861:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2861:13:2861:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | -| main.rs:2861:13:2861:30 | Ok(...) | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:16:2861:29 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2868:39:2870:9 | { ... } | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2869:13:2869:22 | PathBuf {...} | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:18:2878:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2878:18:2878:22 | SelfParam | TRef | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:34:2882:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2878:34:2882:9 | { ... } | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2880:33:2880:43 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:13:2881:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2881:13:2881:17 | &path | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:14:2881:17 | path | | main.rs:2853:5:2853:22 | Path | -| main.rs:2885:16:2893:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2886:13:2886:17 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2886:21:2886:31 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:13:2887:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2887:13:2887:17 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2887:13:2887:17 | path2 | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2887:21:2887:25 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:21:2887:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2887:21:2887:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2887:21:2887:40 | path1.canonicalize() | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:13:2888:17 | path3 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:21:2888:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2888:21:2888:25 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2888:21:2888:25 | path2 | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:21:2888:34 | path2.unwrap() | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:13:2890:20 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:24:2890:37 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2891:24:2891:31 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2898:14:2898:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2898:14:2898:18 | SelfParam | TRef | main.rs:2897:5:2899:5 | Self [trait MyTrait] | -| main.rs:2905:14:2905:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2905:14:2905:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2905:14:2905:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:28:2907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2906:13:2906:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2906:13:2906:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:14:2911:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2911:14:2911:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:28:2913:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2912:13:2912:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:18 | self.0 | | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2917:15:2917:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2917:15:2917:19 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2917:15:2917:19 | SelfParam | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2917:33:2919:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:13:2918:24 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2918:13:2918:24 | S(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2918:13:2918:24 | S(...) | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:15:2918:23 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2918:15:2918:23 | S(...) | T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2918:17:2918:20 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2918:17:2918:20 | self | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:22 | self.0 | | main.rs:2916:10:2916:16 | T | -| main.rs:2922:14:2922:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2922:48:2939:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2922:48:2939:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2922:48:2939:5 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2922:48:2939:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:13:2923:13 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:13:2923:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:17:2928:9 | if b {...} else {...} | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:17:2928:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:20:2923:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2923:22:2926:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:22:2926:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2924:17:2924:17 | y | | main.rs:2901:5:2902:19 | S | -| main.rs:2924:17:2924:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2924:21:2924:38 | ...::default(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2924:21:2924:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:13:2925:13 | y | | main.rs:2901:5:2902:19 | S | -| main.rs:2925:13:2925:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:16:2928:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2926:16:2928:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2927:13:2927:16 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2927:13:2927:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2927:15:2927:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:13:2932:13 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2932:13:2932:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:17:2932:20 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2932:17:2932:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:19:2932:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2933:9:2938:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:12:2933:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2933:14:2936:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2933:14:2936:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2933:14:2936:9 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2933:14:2936:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:14:2936:9 | { ... } | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:14:2936:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:14:2936:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:17:2934:17 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:17:2934:17 | x | T | main.rs:2901:5:2902:19 | S | -| main.rs:2934:17:2934:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:21:2934:21 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:21:2934:26 | x.m2() | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:26 | x.m2() | T | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:13:2935:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2935:13:2935:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2935:13:2935:23 | ...::new(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2935:13:2935:23 | ...::new(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:13:2935:23 | ...::new(...) | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:13:2935:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:13:2935:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:22:2935:22 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2935:22:2935:22 | x | T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:22:2935:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:16:2938:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:16:2938:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:16:2938:9 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2936:16:2938:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2936:16:2938:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:16:2938:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:13:2937:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2937:13:2937:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2937:13:2937:23 | ...::new(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2937:13:2937:23 | ...::new(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2937:13:2937:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:13:2937:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:22:2937:22 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2937:22:2937:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2943:22:2947:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2944:18:2944:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:33:2946:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:17:2945:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2952:11:2952:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2952:30:2960:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2954:13:2954:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2954:17:2958:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2955:13:2957:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2955:16:2955:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2955:21:2957:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2956:24:2956:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:9:2959:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2963:20:2970:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2966:26:2966:27 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2968:18:2968:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2968:18:2968:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2969:9:2969:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2972:20:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2973:16:2973:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:11:2977:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2977:30:2985:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2978:13:2978:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2978:17:2982:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2979:13:2981:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2979:16:2979:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2979:21:2981:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2980:24:2980:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2983:18:2983:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:29:2983:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2984:9:2984:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2989:16:3036:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2794:9:2794:9 | c | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2794:9:2794:15 | c.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2795:9:2795:9 | d | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2795:9:2795:15 | d.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2796:9:2796:9 | e | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2796:9:2796:15 | e.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2797:9:2797:9 | f | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2797:9:2797:15 | f.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2798:9:2798:9 | g | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2798:9:2798:15 | g.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2799:9:2799:9 | h | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2799:9:2799:15 | h.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2804:13:2804:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2804:17:2804:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2805:13:2805:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2805:17:2805:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2806:13:2806:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2806:13:2806:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2806:13:2806:16 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2806:20:2806:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2806:20:2806:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2806:20:2806:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2806:21:2806:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2806:24:2806:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2807:13:2807:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2807:22:2807:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:22:2807:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2807:22:2807:25 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2807:22:2807:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2808:13:2808:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2808:23:2808:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:23:2808:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2808:23:2808:26 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2808:23:2808:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2810:13:2810:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2810:13:2810:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:13:2810:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:20:2810:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2810:20:2810:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:20:2810:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2810:20:2810:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:20:2810:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:21:2810:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:24:2810:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:9:2814:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2811:15:2811:18 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2811:15:2811:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:15:2811:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:13:2812:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2812:13:2812:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:13:2812:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:14:2812:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:17:2812:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:23:2812:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2812:30:2812:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2812:30:2812:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2812:30:2812:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2812:30:2812:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2813:13:2813:13 | _ | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2813:13:2813:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:13:2813:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:18:2813:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2813:25:2813:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2813:25:2813:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2813:25:2813:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2813:25:2813:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2815:13:2815:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:17:2815:20 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2815:17:2815:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:17:2815:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:17:2815:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:13:2817:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2817:13:2817:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2817:13:2817:13 | y | TRef.T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:13:2817:13 | y | TRef.T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:17:2817:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2817:17:2817:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2817:17:2817:31 | &... | TRef.T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:17:2817:31 | &... | TRef.T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2817:18:2817:31 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2818:9:2818:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2818:9:2818:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2818:9:2818:9 | y | TRef.T0 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2818:9:2818:9 | y | TRef.T1 | main.rs:2775:5:2776:16 | S1 | +| main.rs:2818:9:2818:11 | y.0 | | main.rs:2775:5:2776:16 | S1 | +| main.rs:2818:9:2818:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2824:27:2846:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2825:13:2825:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2825:13:2825:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2825:13:2825:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:27:2825:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2825:27:2825:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2825:27:2825:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:36:2825:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:9:2836:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2828:15:2828:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2828:15:2828:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2828:15:2828:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2829:13:2829:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2829:13:2829:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2829:13:2829:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2829:17:2829:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2829:24:2831:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2830:26:2830:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2830:26:2830:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2830:26:2830:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2830:26:2830:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2832:13:2832:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2832:13:2832:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2832:13:2832:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2832:22:2835:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2834:26:2834:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2834:26:2834:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2839:13:2839:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:13:2839:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:13:2839:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2839:13:2839:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:13:2839:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:26:2839:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:26:2839:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:26:2839:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2839:26:2839:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:26:2839:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:35:2839:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2839:35:2839:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2839:35:2839:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:44:2839:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:9:2845:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2840:15:2840:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:15:2840:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:15:2840:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2840:15:2840:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:15:2840:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2841:13:2841:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2841:13:2841:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2841:13:2841:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2841:13:2841:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2841:13:2841:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2841:26:2844:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2843:26:2843:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2843:26:2843:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2855:36:2857:9 | { ... } | | main.rs:2852:5:2852:22 | Path | +| main.rs:2856:13:2856:19 | Path {...} | | main.rs:2852:5:2852:22 | Path | +| main.rs:2859:29:2859:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2859:29:2859:33 | SelfParam | TRef | main.rs:2852:5:2852:22 | Path | +| main.rs:2859:59:2861:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2859:59:2861:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2859:59:2861:9 | { ... } | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2860:13:2860:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2860:13:2860:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | +| main.rs:2860:13:2860:30 | Ok(...) | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2860:16:2860:29 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2867:39:2869:9 | { ... } | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2868:13:2868:22 | PathBuf {...} | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2877:18:2877:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2877:18:2877:22 | SelfParam | TRef | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2877:34:2881:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2877:34:2881:9 | { ... } | TRef | main.rs:2852:5:2852:22 | Path | +| main.rs:2879:33:2879:43 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | +| main.rs:2880:13:2880:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2880:13:2880:17 | &path | TRef | main.rs:2852:5:2852:22 | Path | +| main.rs:2880:14:2880:17 | path | | main.rs:2852:5:2852:22 | Path | +| main.rs:2884:16:2892:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2885:13:2885:17 | path1 | | main.rs:2852:5:2852:22 | Path | +| main.rs:2885:21:2885:31 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | +| main.rs:2886:13:2886:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2886:13:2886:17 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2886:13:2886:17 | path2 | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2886:21:2886:25 | path1 | | main.rs:2852:5:2852:22 | Path | +| main.rs:2886:21:2886:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2886:21:2886:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2886:21:2886:40 | path1.canonicalize() | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2887:13:2887:17 | path3 | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2887:21:2887:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2887:21:2887:25 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2887:21:2887:25 | path2 | T | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2887:21:2887:34 | path2.unwrap() | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2889:13:2889:20 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2889:24:2889:37 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2890:24:2890:31 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | +| main.rs:2897:14:2897:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2897:14:2897:18 | SelfParam | TRef | main.rs:2896:5:2898:5 | Self [trait MyTrait] | +| main.rs:2904:14:2904:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2904:14:2904:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2904:14:2904:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2904:28:2906:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2905:13:2905:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2905:13:2905:16 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2905:13:2905:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2905:13:2905:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2910:14:2910:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2910:14:2910:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2910:14:2910:18 | SelfParam | TRef.T | main.rs:2900:5:2901:19 | S | +| main.rs:2910:14:2910:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2910:28:2912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2911:13:2911:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2911:13:2911:16 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2911:13:2911:16 | self | TRef.T | main.rs:2900:5:2901:19 | S | +| main.rs:2911:13:2911:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2911:13:2911:18 | self.0 | | main.rs:2900:5:2901:19 | S | +| main.rs:2911:13:2911:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2911:13:2911:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2916:15:2916:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2916:15:2916:19 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2916:15:2916:19 | SelfParam | TRef.T | main.rs:2915:10:2915:16 | T | +| main.rs:2916:33:2918:9 | { ... } | | main.rs:2900:5:2901:19 | S | +| main.rs:2916:33:2918:9 | { ... } | T | main.rs:2900:5:2901:19 | S | +| main.rs:2916:33:2918:9 | { ... } | T.T | main.rs:2915:10:2915:16 | T | +| main.rs:2917:13:2917:24 | S(...) | | main.rs:2900:5:2901:19 | S | +| main.rs:2917:13:2917:24 | S(...) | T | main.rs:2900:5:2901:19 | S | +| main.rs:2917:13:2917:24 | S(...) | T.T | main.rs:2915:10:2915:16 | T | +| main.rs:2917:15:2917:23 | S(...) | | main.rs:2900:5:2901:19 | S | +| main.rs:2917:15:2917:23 | S(...) | T | main.rs:2915:10:2915:16 | T | +| main.rs:2917:17:2917:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2917:17:2917:20 | self | TRef | main.rs:2900:5:2901:19 | S | +| main.rs:2917:17:2917:20 | self | TRef.T | main.rs:2915:10:2915:16 | T | +| main.rs:2917:17:2917:22 | self.0 | | main.rs:2915:10:2915:16 | T | +| main.rs:2921:14:2921:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2921:48:2938:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2921:48:2938:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2921:48:2938:5 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2921:48:2938:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2922:13:2922:13 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2922:13:2922:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2922:17:2927:9 | if b {...} else {...} | | main.rs:2900:5:2901:19 | S | +| main.rs:2922:17:2927:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2922:20:2922:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2922:22:2925:9 | { ... } | | main.rs:2900:5:2901:19 | S | +| main.rs:2922:22:2925:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2923:17:2923:17 | y | | main.rs:2900:5:2901:19 | S | +| main.rs:2923:17:2923:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2923:21:2923:38 | ...::default(...) | | main.rs:2900:5:2901:19 | S | +| main.rs:2923:21:2923:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2924:13:2924:13 | y | | main.rs:2900:5:2901:19 | S | +| main.rs:2924:13:2924:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:16:2927:9 | { ... } | | main.rs:2900:5:2901:19 | S | +| main.rs:2925:16:2927:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:16 | S(...) | | main.rs:2900:5:2901:19 | S | +| main.rs:2926:13:2926:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:15:2926:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:13:2931:13 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2931:13:2931:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:17:2931:20 | S(...) | | main.rs:2900:5:2901:19 | S | +| main.rs:2931:17:2931:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:19:2931:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2932:9:2937:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2932:9:2937:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T | main.rs:2900:5:2901:19 | S | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T | main.rs:2900:5:2901:19 | S | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2932:9:2937:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2932:12:2932:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2932:14:2935:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2932:14:2935:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2932:14:2935:9 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2932:14:2935:9 | { ... } | T | main.rs:2900:5:2901:19 | S | +| main.rs:2932:14:2935:9 | { ... } | T.T | main.rs:2900:5:2901:19 | S | +| main.rs:2932:14:2935:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2932:14:2935:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2933:17:2933:17 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2933:17:2933:17 | x | T | main.rs:2900:5:2901:19 | S | +| main.rs:2933:17:2933:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2933:21:2933:21 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2933:21:2933:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2933:21:2933:26 | x.m2() | | main.rs:2900:5:2901:19 | S | +| main.rs:2933:21:2933:26 | x.m2() | T | main.rs:2900:5:2901:19 | S | +| main.rs:2933:21:2933:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2934:13:2934:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2934:13:2934:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2934:13:2934:23 | ...::new(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2934:13:2934:23 | ...::new(...) | T | main.rs:2900:5:2901:19 | S | +| main.rs:2934:13:2934:23 | ...::new(...) | T.T | main.rs:2900:5:2901:19 | S | +| main.rs:2934:13:2934:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2934:13:2934:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2934:22:2934:22 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2934:22:2934:22 | x | T | main.rs:2900:5:2901:19 | S | +| main.rs:2934:22:2934:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2935:16:2937:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2935:16:2937:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2935:16:2937:9 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2935:16:2937:9 | { ... } | T | main.rs:2900:5:2901:19 | S | +| main.rs:2935:16:2937:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2935:16:2937:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2936:13:2936:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:13:2936:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:13:2936:23 | ...::new(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:2936:13:2936:23 | ...::new(...) | T | main.rs:2900:5:2901:19 | S | +| main.rs:2936:13:2936:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2936:13:2936:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2936:22:2936:22 | x | | main.rs:2900:5:2901:19 | S | +| main.rs:2936:22:2936:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2942:22:2946:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2943:18:2943:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2943:33:2945:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2944:13:2944:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2944:13:2944:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:2944:17:2944:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:11:2951:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2951:30:2959:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2953:13:2953:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2953:17:2957:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2954:13:2956:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2954:16:2954:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2954:21:2956:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2955:24:2955:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2958:9:2958:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2962:20:2969:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2965:26:2965:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2967:18:2967:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2967:18:2967:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2967:18:2967:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2967:18:2967:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2968:9:2968:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2971:20:2973:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2972:16:2972:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2976:11:2976:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2976:30:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2977:13:2977:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2977:17:2981:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2978:13:2980:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2978:16:2978:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2978:21:2980:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2979:24:2979:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:18:2982:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2982:29:2982:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2988:16:3035:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2989:13:2989:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2989:13:2989:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2989:17:2989:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2989:17:2989:20 | None | T | {EXTERNAL LOCATION} | i32 | | main.rs:2990:13:2990:13 | x | | {EXTERNAL LOCATION} | Option | | main.rs:2990:13:2990:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2990:17:2990:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:17:2990:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2990:30:2990:30 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2990:30:2990:30 | x | T | {EXTERNAL LOCATION} | i32 | | main.rs:2991:13:2991:13 | x | | {EXTERNAL LOCATION} | Option | | main.rs:2991:13:2991:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:30:2991:30 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:30:2991:30 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2991:17:2991:35 | ...::None | | {EXTERNAL LOCATION} | Option | +| main.rs:2991:17:2991:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | | main.rs:2992:13:2992:13 | x | | {EXTERNAL LOCATION} | Option | | main.rs:2992:13:2992:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:17:2992:35 | ...::None | | {EXTERNAL LOCATION} | Option | -| main.rs:2992:17:2992:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2993:13:2993:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2993:13:2993:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2993:17:2993:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | -| main.rs:2993:17:2993:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2995:26:2995:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2995:26:2995:28 | opt | T | main.rs:2995:23:2995:23 | T | -| main.rs:2995:42:2995:42 | x | | main.rs:2995:23:2995:23 | T | -| main.rs:2995:48:2995:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:13:2997:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2997:13:2997:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2997:17:2997:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2997:17:2997:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2998:9:2998:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2998:20:2998:20 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2998:20:2998:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2998:23:2998:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | | main.rs:3000:9:3003:9 | MyEither | +| main.rs:2992:17:2992:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | +| main.rs:2992:17:2992:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2994:26:2994:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2994:26:2994:28 | opt | T | main.rs:2994:23:2994:23 | T | +| main.rs:2994:42:2994:42 | x | | main.rs:2994:23:2994:23 | T | +| main.rs:2994:48:2994:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2996:13:2996:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2996:13:2996:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2996:17:2996:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2996:17:2996:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2997:9:2997:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2997:20:2997:20 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2997:20:2997:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2997:23:2997:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3004:13:3004:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3004:13:3004:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3004:13:3004:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3004:17:3004:39 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3004:17:3004:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3004:17:3004:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3004:37:3004:37 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:13:3005:13 | x | | main.rs:2999:9:3002:9 | MyEither | | main.rs:3005:13:3005:13 | x | T1 | {EXTERNAL LOCATION} | i32 | | main.rs:3005:13:3005:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:17:3005:39 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3005:17:3005:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:17:3005:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:37:3005:37 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | | main.rs:3000:9:3003:9 | MyEither | +| main.rs:3005:40:3005:40 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3005:40:3005:40 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:40:3005:40 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3006:13:3006:13 | x | | main.rs:2999:9:3002:9 | MyEither | | main.rs:3006:13:3006:13 | x | T1 | {EXTERNAL LOCATION} | i32 | | main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:40:3006:40 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:40:3006:40 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:40:3006:40 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:13:3007:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:13:3007:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:17:3007:52 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:17:3007:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:17:3007:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:50:3007:50 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:13:3009:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:13:3009:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:13:3009:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3010:20:3010:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3013:29:3013:29 | e | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3013:29:3013:29 | e | T1 | main.rs:3013:26:3013:26 | T | -| main.rs:3013:29:3013:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3013:53:3013:53 | x | | main.rs:3013:26:3013:26 | T | -| main.rs:3013:59:3013:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3016:13:3016:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:13:3016:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3016:13:3016:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3016:17:3018:9 | ...::B {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:17:3018:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3016:17:3018:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3017:20:3017:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3019:9:3019:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3019:23:3019:23 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3019:23:3019:23 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3019:23:3019:23 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3019:26:3019:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:17:3006:52 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3006:17:3006:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:17:3006:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3006:50:3006:50 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3008:13:3008:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3008:13:3008:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3008:13:3008:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3008:17:3010:9 | ...::B::<...> {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3009:20:3009:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3012:29:3012:29 | e | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3012:29:3012:29 | e | T1 | main.rs:3012:26:3012:26 | T | +| main.rs:3012:29:3012:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3012:53:3012:53 | x | | main.rs:3012:26:3012:26 | T | +| main.rs:3012:59:3012:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3015:13:3015:13 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3015:13:3015:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3015:13:3015:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3015:17:3017:9 | ...::B {...} | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3015:17:3017:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3015:17:3017:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3016:20:3016:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3018:9:3018:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3018:23:3018:23 | x | | main.rs:2999:9:3002:9 | MyEither | +| main.rs:3018:23:3018:23 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3018:23:3018:23 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3018:26:3018:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3020:13:3020:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3020:13:3020:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:17:3020:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3020:17:3020:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3020:17:3020:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:28:3020:28 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:3021:13:3021:13 | x | | {EXTERNAL LOCATION} | Result | | main.rs:3021:13:3021:13 | x | E | {EXTERNAL LOCATION} | String | | main.rs:3021:13:3021:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:17:3021:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:17:3021:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:17:3021:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:28:3021:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3021:38:3021:38 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3021:38:3021:38 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3021:38:3021:38 | x | T | {EXTERNAL LOCATION} | i32 | | main.rs:3022:13:3022:13 | x | | {EXTERNAL LOCATION} | Result | | main.rs:3022:13:3022:13 | x | E | {EXTERNAL LOCATION} | String | | main.rs:3022:13:3022:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:38:3022:38 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:38:3022:38 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:38:3022:38 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3022:17:3022:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3022:17:3022:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3022:17:3022:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3022:43:3022:43 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:3023:13:3023:13 | x | | {EXTERNAL LOCATION} | Result | | main.rs:3023:13:3023:13 | x | E | {EXTERNAL LOCATION} | String | | main.rs:3023:13:3023:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:17:3023:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3023:17:3023:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3023:17:3023:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | | main.rs:3023:43:3023:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:13:3024:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3024:13:3024:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3024:13:3024:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:43:3024:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3026:29:3026:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3026:29:3026:31 | res | E | main.rs:3026:26:3026:26 | E | -| main.rs:3026:29:3026:31 | res | T | main.rs:3026:23:3026:23 | T | -| main.rs:3026:48:3026:48 | x | | main.rs:3026:26:3026:26 | E | -| main.rs:3026:54:3026:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3028:13:3028:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3028:13:3028:13 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3028:13:3028:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:17:3028:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3028:17:3028:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | -| main.rs:3028:17:3028:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:28:3028:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3029:9:3029:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3029:20:3029:20 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3029:20:3029:20 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3029:20:3029:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3029:23:3029:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3031:17:3031:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:17:3031:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:17:3031:17 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3031:21:3031:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:21:3031:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:21:3031:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3032:9:3032:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3032:9:3032:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3032:9:3032:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3032:16:3032:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:13:3034:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:17:3034:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3035:9:3035:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:9:3035:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3035:16:3035:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3042:14:3042:17 | SelfParam | | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:14:3045:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3045:14:3045:18 | SelfParam | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:21:3045:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3045:21:3045:25 | other | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3045:44:3047:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3045:44:3047:9 | { ... } | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3046:13:3046:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3046:13:3046:16 | self | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3046:13:3046:20 | self.f() | | {EXTERNAL LOCATION} | & | -| main.rs:3046:13:3046:20 | self.f() | TRef | main.rs:3040:5:3048:5 | Self [trait MyTrait] | -| main.rs:3052:14:3052:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3052:28:3054:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3053:13:3053:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3059:14:3059:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3059:28:3061:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3066:14:3066:17 | SelfParam | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3066:28:3068:9 | { ... } | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3067:13:3067:16 | self | TRef | main.rs:3064:10:3064:10 | T | -| main.rs:3071:25:3075:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3072:17:3072:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3072:17:3072:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3072:21:3072:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3072:21:3072:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3025:29:3025:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3025:29:3025:31 | res | E | main.rs:3025:26:3025:26 | E | +| main.rs:3025:29:3025:31 | res | T | main.rs:3025:23:3025:23 | T | +| main.rs:3025:48:3025:48 | x | | main.rs:3025:26:3025:26 | E | +| main.rs:3025:54:3025:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3027:13:3027:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3027:13:3027:13 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3027:13:3027:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3027:17:3027:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3027:17:3027:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | +| main.rs:3027:17:3027:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3027:28:3027:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3028:9:3028:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3028:20:3028:20 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3028:20:3028:20 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3028:20:3028:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3028:23:3028:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3030:17:3030:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3030:17:3030:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3030:17:3030:17 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3030:21:3030:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3030:21:3030:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3030:21:3030:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3031:9:3031:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3031:9:3031:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3031:9:3031:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3031:9:3031:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3031:16:3031:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3033:13:3033:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3033:17:3033:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3034:9:3034:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3034:9:3034:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3034:9:3034:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3034:9:3034:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3034:16:3034:16 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:14:3044:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3044:14:3044:18 | SelfParam | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:21:3044:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3044:21:3044:25 | other | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3044:44:3046:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3044:44:3046:9 | { ... } | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3045:13:3045:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3045:13:3045:16 | self | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3045:13:3045:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:3045:13:3045:20 | self.f() | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | +| main.rs:3051:14:3051:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3051:28:3053:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3052:13:3052:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3058:14:3058:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3058:28:3060:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3059:13:3059:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3065:14:3065:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3065:14:3065:17 | SelfParam | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3065:28:3067:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3065:28:3067:9 | { ... } | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3066:13:3066:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3066:13:3066:16 | self | TRef | main.rs:3063:10:3063:10 | T | +| main.rs:3070:25:3074:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3071:17:3071:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3071:17:3071:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3071:21:3071:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3071:21:3071:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3072:9:3072:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3072:9:3072:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3072:9:3072:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:3072:13:3072:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3072:13:3072:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3072:13:3072:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:3072:13:3072:17 | x.f() | | {EXTERNAL LOCATION} | usize | | main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3073:9:3073:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:3073:13:3073:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3073:13:3073:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3073:13:3073:17 | x.f() | | {EXTERNAL LOCATION} | i32 | -| main.rs:3073:13:3073:17 | x.f() | | {EXTERNAL LOCATION} | usize | -| main.rs:3074:9:3074:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3074:9:3074:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3077:12:3081:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3078:13:3078:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3078:24:3078:24 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3078:24:3078:24 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3079:13:3079:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3079:13:3079:13 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3079:17:3079:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3079:17:3079:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3079:18:3079:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3080:13:3080:13 | z | | {EXTERNAL LOCATION} | & | -| main.rs:3080:13:3080:13 | z | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3080:17:3080:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3080:17:3080:22 | x.g(...) | | {EXTERNAL LOCATION} | & | -| main.rs:3080:17:3080:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3080:21:3080:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3080:21:3080:21 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3089:11:3124:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3091:5:3091:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:5:3092:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:20:3092:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:41:3092:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3093:5:3093:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3109:5:3109:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3122:5:3122:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3122:5:3122:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3122:5:3122:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3122:16:3122:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3076:12:3080:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3078:13:3078:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3078:13:3078:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3078:17:3078:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3078:17:3078:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3078:18:3078:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3079:13:3079:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:3079:13:3079:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3079:17:3079:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3079:17:3079:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:3079:17:3079:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3079:21:3079:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3088:11:3123:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3089:5:3089:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3090:5:3090:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:5:3091:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:20:3091:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3091:41:3091:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3092:5:3092:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3095:5:3095:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3096:5:3096:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3108:5:3108:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3121:5:3121:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3121:5:3121:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:3121:5:3121:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3121:16:3121:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3122:5:3122:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From d2cfd53933dff96fbe5a601027f1b6031b013700 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 15 Dec 2025 14:21:16 +0100 Subject: [PATCH 154/194] Rust: Add test with wrong generated model --- .../library-tests/dataflow/models/main.rs | 14 + .../dataflow/models/models.expected | 1378 +++++++++-------- .../dataflow/models/models.ext.yml | 3 + 3 files changed, 723 insertions(+), 672 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/models/main.rs b/rust/ql/test/library-tests/dataflow/models/main.rs index 7daa883996f..66f108d1624 100644 --- a/rust/ql/test/library-tests/dataflow/models/main.rs +++ b/rust/ql/test/library-tests/dataflow/models/main.rs @@ -31,6 +31,20 @@ enum MyPosEnum { B(i64), } +// has a manual flow model with flow from second argument to the return value +// and a wrong generated model with flow from first argument to the return value +fn snd(a: i64, b: i64) -> i64 { + 0 +} + +fn test_snd() { + let s1 = source(99); + sink(snd(0, s1)); // $ hasValueFlow=99 + + let s2 = source(88); + sink(snd(s2, 0)); // $ SPURIOUS: hasValueFlow=88 +} + // has a flow model fn get_var_pos(e: MyPosEnum) -> i64 { 0 diff --git a/rust/ql/test/library-tests/dataflow/models/models.expected b/rust/ql/test/library-tests/dataflow/models/models.expected index 90133f0e6a9..734e6166dbe 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.expected +++ b/rust/ql/test/library-tests/dataflow/models/models.expected @@ -24,6 +24,8 @@ models | 23 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value | | 24 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value | | 25 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value | +| 26 | Summary: main::snd; Argument[0]; ReturnValue; value | +| 27 | Summary: main::snd; Argument[1]; ReturnValue; value | edges | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | @@ -34,284 +36,296 @@ edges | main.rs:25:9:25:9 | s | main.rs:26:17:26:17 | s | provenance | | | main.rs:25:13:25:22 | source(...) | main.rs:25:9:25:9 | s | provenance | | | main.rs:26:17:26:17 | s | main.rs:26:10:26:18 | coerce(...) | provenance | MaD:14 | -| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | | -| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | | -| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | | -| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | | -| main.rs:41:9:41:10 | e1 [A] | main.rs:42:22:42:23 | e1 [A] | provenance | | -| main.rs:41:9:41:10 | e1 [A] | main.rs:42:22:42:23 | e1 [A] | provenance | | -| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | | -| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | | -| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | | -| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | | -| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 | -| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 | -| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | | -| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | | -| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | | -| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | | -| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | | -| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | | -| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 | -| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 | -| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | | -| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | | -| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | | -| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | | -| main.rs:57:22:57:22 | i | main.rs:57:33:57:33 | i | provenance | | -| main.rs:57:22:57:22 | i | main.rs:57:33:57:33 | i | provenance | | -| main.rs:72:9:72:9 | s | main.rs:73:40:73:40 | s | provenance | | -| main.rs:72:9:72:9 | s | main.rs:73:40:73:40 | s | provenance | | -| main.rs:72:13:72:21 | source(...) | main.rs:72:9:72:9 | s | provenance | | -| main.rs:72:13:72:21 | source(...) | main.rs:72:9:72:9 | s | provenance | | -| main.rs:73:9:73:10 | e1 [C] | main.rs:74:24:74:25 | e1 [C] | provenance | | -| main.rs:73:9:73:10 | e1 [C] | main.rs:74:24:74:25 | e1 [C] | provenance | | -| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | | -| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | | -| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | | -| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | | -| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 | -| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 | -| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | | -| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | | -| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | | -| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | | -| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | | -| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | | -| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | | -| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | | -| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 | -| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 | -| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | | -| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | | -| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | | -| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | | -| main.rs:89:35:89:35 | i | main.rs:89:47:89:47 | i | provenance | | -| main.rs:89:35:89:35 | i | main.rs:89:47:89:47 | i | provenance | | -| main.rs:104:9:104:9 | s | main.rs:106:17:106:17 | s | provenance | | -| main.rs:104:9:104:9 | s | main.rs:106:17:106:17 | s | provenance | | -| main.rs:104:13:104:21 | source(...) | main.rs:104:9:104:9 | s | provenance | | -| main.rs:104:13:104:21 | source(...) | main.rs:104:9:104:9 | s | provenance | | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | main.rs:109:27:109:35 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | main.rs:109:27:109:35 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | | -| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 | -| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | | -| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | | -| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | | -| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | main.rs:129:10:129:18 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | main.rs:129:10:129:18 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | -| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | | -| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | | -| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | | -| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | | -| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | | -| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 | -| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 | -| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | | -| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | | -| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | | -| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | | -| main.rs:148:13:148:21 | source(...) | main.rs:148:9:148:9 | s | provenance | | -| main.rs:148:13:148:21 | source(...) | main.rs:148:9:148:9 | s | provenance | | -| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | | -| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | | -| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | | -| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | | -| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 | -| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 | -| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | MaD:11 | -| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | MaD:11 | -| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | | -| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | | -| main.rs:160:9:160:9 | t [tuple.0] | main.rs:161:28:161:28 | t [tuple.0] | provenance | | -| main.rs:160:9:160:9 | t [tuple.0] | main.rs:161:28:161:28 | t [tuple.0] | provenance | | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | | -| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | | -| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | | -| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 | -| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 | -| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | | -| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | | -| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | | -| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | | -| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | | -| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | | -| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | -| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | -| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | | -| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | | -| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | | -| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | | -| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | | -| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | | -| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | | -| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | | -| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 | -| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 | -| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | | -| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | | -| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | | -| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | | -| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | | -| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | | -| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | | -| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 | -| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | | -| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | | -| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | | -| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | | -| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | | -| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | | -| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | | -| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | | -| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | | -| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 | -| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | | -| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | | -| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | | -| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | | -| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | | -| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | | -| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | | -| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | | -| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | | -| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | | -| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 | -| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 | -| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | | -| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | | -| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 | -| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 | -| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | | -| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | | -| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | | -| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | | -| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | | -| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | | -| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | | -| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | | -| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | | -| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | | -| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | | -| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | | -| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 | -| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 | -| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | | -| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | | -| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | | -| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | | -| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | | -| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | | -| main.rs:261:18:261:18 | ... | main.rs:261:26:261:26 | a | provenance | | -| main.rs:261:18:261:18 | ... | main.rs:261:26:261:26 | a | provenance | | -| main.rs:262:9:262:19 | pass_source | main.rs:261:18:261:18 | ... | provenance | Src:MaD:8 | -| main.rs:262:9:262:19 | pass_source | main.rs:261:18:261:18 | ... | provenance | Src:MaD:8 | -| main.rs:264:9:264:19 | pass_source | main.rs:264:25:264:25 | ... | provenance | Src:MaD:8 | -| main.rs:264:9:264:19 | pass_source | main.rs:264:25:264:25 | ... | provenance | Src:MaD:8 | -| main.rs:264:25:264:25 | ... | main.rs:265:18:265:18 | a | provenance | | -| main.rs:264:25:264:25 | ... | main.rs:265:18:265:18 | a | provenance | | -| main.rs:268:14:268:19 | ...: i64 | main.rs:269:18:269:18 | a | provenance | | -| main.rs:268:14:268:19 | ...: i64 | main.rs:269:18:269:18 | a | provenance | | -| main.rs:271:9:271:19 | pass_source | main.rs:268:14:268:19 | ...: i64 | provenance | Src:MaD:8 | -| main.rs:271:9:271:19 | pass_source | main.rs:268:14:268:19 | ...: i64 | provenance | Src:MaD:8 | -| main.rs:273:9:273:19 | pass_source | main.rs:273:36:273:36 | ... | provenance | Src:MaD:8 | -| main.rs:273:9:273:19 | pass_source | main.rs:273:36:273:36 | ... | provenance | Src:MaD:8 | -| main.rs:273:36:273:36 | ... | main.rs:274:18:274:18 | a | provenance | | -| main.rs:273:36:273:36 | ... | main.rs:274:18:274:18 | a | provenance | | -| main.rs:283:9:283:9 | s | main.rs:284:41:284:41 | s | provenance | | -| main.rs:283:9:283:9 | s | main.rs:284:41:284:41 | s | provenance | | -| main.rs:283:13:283:22 | source(...) | main.rs:283:9:283:9 | s | provenance | | -| main.rs:283:13:283:22 | source(...) | main.rs:283:9:283:9 | s | provenance | | -| main.rs:284:15:284:43 | ...::C {...} [C] | main.rs:284:5:284:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | -| main.rs:284:15:284:43 | ...::C {...} [C] | main.rs:284:5:284:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | -| main.rs:284:41:284:41 | s | main.rs:284:15:284:43 | ...::C {...} [C] | provenance | | -| main.rs:284:41:284:41 | s | main.rs:284:15:284:43 | ...::C {...} [C] | provenance | | -| main.rs:289:9:289:9 | s | main.rs:290:39:290:39 | s | provenance | | -| main.rs:289:9:289:9 | s | main.rs:290:39:290:39 | s | provenance | | -| main.rs:289:13:289:22 | source(...) | main.rs:289:9:289:9 | s | provenance | | -| main.rs:289:13:289:22 | source(...) | main.rs:289:9:289:9 | s | provenance | | -| main.rs:290:9:290:9 | e [D] | main.rs:291:5:291:5 | e [D] | provenance | | -| main.rs:290:9:290:9 | e [D] | main.rs:291:5:291:5 | e [D] | provenance | | -| main.rs:290:13:290:41 | ...::D {...} [D] | main.rs:290:9:290:9 | e [D] | provenance | | -| main.rs:290:13:290:41 | ...::D {...} [D] | main.rs:290:9:290:9 | e [D] | provenance | | -| main.rs:290:39:290:39 | s | main.rs:290:13:290:41 | ...::D {...} [D] | provenance | | -| main.rs:290:39:290:39 | s | main.rs:290:13:290:41 | ...::D {...} [D] | provenance | | -| main.rs:291:5:291:5 | e [D] | main.rs:291:7:291:10 | sink | provenance | MaD:1 Sink:MaD:1 | -| main.rs:291:5:291:5 | e [D] | main.rs:291:7:291:10 | sink | provenance | MaD:1 Sink:MaD:1 | -| main.rs:300:9:300:9 | s | main.rs:301:10:301:10 | s | provenance | | -| main.rs:300:9:300:9 | s | main.rs:301:10:301:10 | s | provenance | | -| main.rs:300:13:300:25 | simple_source | main.rs:300:13:300:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | -| main.rs:300:13:300:25 | simple_source | main.rs:300:13:300:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | -| main.rs:300:13:300:29 | simple_source(...) | main.rs:300:9:300:9 | s | provenance | | -| main.rs:300:13:300:29 | simple_source(...) | main.rs:300:9:300:9 | s | provenance | | -| main.rs:308:9:308:9 | s | main.rs:309:17:309:17 | s | provenance | | -| main.rs:308:9:308:9 | s | main.rs:309:17:309:17 | s | provenance | | -| main.rs:308:13:308:22 | source(...) | main.rs:308:9:308:9 | s | provenance | | -| main.rs:308:13:308:22 | source(...) | main.rs:308:9:308:9 | s | provenance | | -| main.rs:309:17:309:17 | s | main.rs:309:5:309:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | -| main.rs:309:17:309:17 | s | main.rs:309:5:309:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | -| main.rs:317:5:317:14 | arg_source | main.rs:317:16:317:16 | [post] i | provenance | Src:MaD:5 MaD:5 | -| main.rs:317:5:317:14 | arg_source | main.rs:317:16:317:16 | [post] i | provenance | Src:MaD:5 MaD:5 | -| main.rs:317:16:317:16 | [post] i | main.rs:318:10:318:10 | i | provenance | | -| main.rs:317:16:317:16 | [post] i | main.rs:318:10:318:10 | i | provenance | | -| main.rs:370:9:370:10 | x1 | main.rs:371:10:371:11 | x1 | provenance | | -| main.rs:370:9:370:10 | x1 | main.rs:371:10:371:11 | x1 | provenance | | -| main.rs:370:14:370:23 | source(...) | main.rs:370:14:370:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:370:14:370:23 | source(...) | main.rs:370:14:370:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:370:14:370:30 | ... .max(...) | main.rs:370:9:370:10 | x1 | provenance | | -| main.rs:370:14:370:30 | ... .max(...) | main.rs:370:9:370:10 | x1 | provenance | | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | main.rs:381:10:381:11 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | main.rs:381:10:381:11 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | main.rs:373:9:373:10 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | main.rs:373:9:373:10 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | -| main.rs:374:17:374:26 | source(...) | main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:374:17:374:26 | source(...) | main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | main.rs:381:10:381:18 | x2.field1 | provenance | | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | main.rs:381:10:381:18 | x2.field1 | provenance | | -| main.rs:386:9:386:10 | x4 | main.rs:387:10:387:11 | x4 | provenance | | -| main.rs:386:9:386:10 | x4 | main.rs:387:10:387:11 | x4 | provenance | | -| main.rs:386:14:386:23 | source(...) | main.rs:386:14:386:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:386:14:386:23 | source(...) | main.rs:386:14:386:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:386:14:386:30 | ... .max(...) | main.rs:386:9:386:10 | x4 | provenance | | -| main.rs:386:14:386:30 | ... .max(...) | main.rs:386:9:386:10 | x4 | provenance | | -| main.rs:389:9:389:10 | x5 | main.rs:390:10:390:11 | x5 | provenance | | -| main.rs:389:14:389:23 | source(...) | main.rs:389:14:389:30 | ... .lt(...) | provenance | MaD:10 | -| main.rs:389:14:389:30 | ... .lt(...) | main.rs:389:9:389:10 | x5 | provenance | | -| main.rs:392:9:392:10 | x6 | main.rs:393:10:393:11 | x6 | provenance | | -| main.rs:392:14:392:23 | source(...) | main.rs:392:14:392:27 | ... < ... | provenance | MaD:10 | -| main.rs:392:14:392:27 | ... < ... | main.rs:392:9:392:10 | x6 | provenance | | +| main.rs:41:9:41:10 | s1 | main.rs:42:17:42:18 | s1 | provenance | | +| main.rs:41:9:41:10 | s1 | main.rs:42:17:42:18 | s1 | provenance | | +| main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | +| main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:27 | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:27 | +| main.rs:44:9:44:10 | s2 | main.rs:45:14:45:15 | s2 | provenance | | +| main.rs:44:9:44:10 | s2 | main.rs:45:14:45:15 | s2 | provenance | | +| main.rs:44:14:44:23 | source(...) | main.rs:44:9:44:10 | s2 | provenance | | +| main.rs:44:14:44:23 | source(...) | main.rs:44:9:44:10 | s2 | provenance | | +| main.rs:45:14:45:15 | s2 | main.rs:45:10:45:19 | snd(...) | provenance | MaD:26 | +| main.rs:45:14:45:15 | s2 | main.rs:45:10:45:19 | snd(...) | provenance | MaD:26 | +| main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | +| main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | +| main.rs:54:13:54:21 | source(...) | main.rs:54:9:54:9 | s | provenance | | +| main.rs:54:13:54:21 | source(...) | main.rs:54:9:54:9 | s | provenance | | +| main.rs:55:9:55:10 | e1 [A] | main.rs:56:22:56:23 | e1 [A] | provenance | | +| main.rs:55:9:55:10 | e1 [A] | main.rs:56:22:56:23 | e1 [A] | provenance | | +| main.rs:55:14:55:28 | ...::A(...) [A] | main.rs:55:9:55:10 | e1 [A] | provenance | | +| main.rs:55:14:55:28 | ...::A(...) [A] | main.rs:55:9:55:10 | e1 [A] | provenance | | +| main.rs:55:27:55:27 | s | main.rs:55:14:55:28 | ...::A(...) [A] | provenance | | +| main.rs:55:27:55:27 | s | main.rs:55:14:55:28 | ...::A(...) [A] | provenance | | +| main.rs:56:22:56:23 | e1 [A] | main.rs:56:10:56:24 | get_var_pos(...) | provenance | MaD:20 | +| main.rs:56:22:56:23 | e1 [A] | main.rs:56:10:56:24 | get_var_pos(...) | provenance | MaD:20 | +| main.rs:67:9:67:9 | s | main.rs:68:26:68:26 | s | provenance | | +| main.rs:67:9:67:9 | s | main.rs:68:26:68:26 | s | provenance | | +| main.rs:67:13:67:21 | source(...) | main.rs:67:9:67:9 | s | provenance | | +| main.rs:67:13:67:21 | source(...) | main.rs:67:9:67:9 | s | provenance | | +| main.rs:68:9:68:10 | e1 [B] | main.rs:69:11:69:12 | e1 [B] | provenance | | +| main.rs:68:9:68:10 | e1 [B] | main.rs:69:11:69:12 | e1 [B] | provenance | | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | main.rs:68:9:68:10 | e1 [B] | provenance | | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | main.rs:68:9:68:10 | e1 [B] | provenance | | +| main.rs:68:26:68:26 | s | main.rs:68:14:68:27 | set_var_pos(...) [B] | provenance | MaD:25 | +| main.rs:68:26:68:26 | s | main.rs:68:14:68:27 | set_var_pos(...) [B] | provenance | MaD:25 | +| main.rs:69:11:69:12 | e1 [B] | main.rs:71:9:71:23 | ...::B(...) [B] | provenance | | +| main.rs:69:11:69:12 | e1 [B] | main.rs:71:9:71:23 | ...::B(...) [B] | provenance | | +| main.rs:71:9:71:23 | ...::B(...) [B] | main.rs:71:22:71:22 | i | provenance | | +| main.rs:71:9:71:23 | ...::B(...) [B] | main.rs:71:22:71:22 | i | provenance | | +| main.rs:71:22:71:22 | i | main.rs:71:33:71:33 | i | provenance | | +| main.rs:71:22:71:22 | i | main.rs:71:33:71:33 | i | provenance | | +| main.rs:86:9:86:9 | s | main.rs:87:40:87:40 | s | provenance | | +| main.rs:86:9:86:9 | s | main.rs:87:40:87:40 | s | provenance | | +| main.rs:86:13:86:21 | source(...) | main.rs:86:9:86:9 | s | provenance | | +| main.rs:86:13:86:21 | source(...) | main.rs:86:9:86:9 | s | provenance | | +| main.rs:87:9:87:10 | e1 [C] | main.rs:88:24:88:25 | e1 [C] | provenance | | +| main.rs:87:9:87:10 | e1 [C] | main.rs:88:24:88:25 | e1 [C] | provenance | | +| main.rs:87:14:87:42 | ...::C {...} [C] | main.rs:87:9:87:10 | e1 [C] | provenance | | +| main.rs:87:14:87:42 | ...::C {...} [C] | main.rs:87:9:87:10 | e1 [C] | provenance | | +| main.rs:87:40:87:40 | s | main.rs:87:14:87:42 | ...::C {...} [C] | provenance | | +| main.rs:87:40:87:40 | s | main.rs:87:14:87:42 | ...::C {...} [C] | provenance | | +| main.rs:88:24:88:25 | e1 [C] | main.rs:88:10:88:26 | get_var_field(...) | provenance | MaD:19 | +| main.rs:88:24:88:25 | e1 [C] | main.rs:88:10:88:26 | get_var_field(...) | provenance | MaD:19 | +| main.rs:99:9:99:9 | s | main.rs:100:28:100:28 | s | provenance | | +| main.rs:99:9:99:9 | s | main.rs:100:28:100:28 | s | provenance | | +| main.rs:99:13:99:21 | source(...) | main.rs:99:9:99:9 | s | provenance | | +| main.rs:99:13:99:21 | source(...) | main.rs:99:9:99:9 | s | provenance | | +| main.rs:100:9:100:10 | e1 [D] | main.rs:101:11:101:12 | e1 [D] | provenance | | +| main.rs:100:9:100:10 | e1 [D] | main.rs:101:11:101:12 | e1 [D] | provenance | | +| main.rs:100:14:100:29 | set_var_field(...) [D] | main.rs:100:9:100:10 | e1 [D] | provenance | | +| main.rs:100:14:100:29 | set_var_field(...) [D] | main.rs:100:9:100:10 | e1 [D] | provenance | | +| main.rs:100:28:100:28 | s | main.rs:100:14:100:29 | set_var_field(...) [D] | provenance | MaD:24 | +| main.rs:100:28:100:28 | s | main.rs:100:14:100:29 | set_var_field(...) [D] | provenance | MaD:24 | +| main.rs:101:11:101:12 | e1 [D] | main.rs:103:9:103:37 | ...::D {...} [D] | provenance | | +| main.rs:101:11:101:12 | e1 [D] | main.rs:103:9:103:37 | ...::D {...} [D] | provenance | | +| main.rs:103:9:103:37 | ...::D {...} [D] | main.rs:103:35:103:35 | i | provenance | | +| main.rs:103:9:103:37 | ...::D {...} [D] | main.rs:103:35:103:35 | i | provenance | | +| main.rs:103:35:103:35 | i | main.rs:103:47:103:47 | i | provenance | | +| main.rs:103:35:103:35 | i | main.rs:103:47:103:47 | i | provenance | | +| main.rs:118:9:118:9 | s | main.rs:120:17:120:17 | s | provenance | | +| main.rs:118:9:118:9 | s | main.rs:120:17:120:17 | s | provenance | | +| main.rs:118:13:118:21 | source(...) | main.rs:118:9:118:9 | s | provenance | | +| main.rs:118:13:118:21 | source(...) | main.rs:118:9:118:9 | s | provenance | | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | main.rs:123:27:123:35 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | main.rs:123:27:123:35 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | main.rs:119:9:119:17 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | main.rs:119:9:119:17 | my_struct [MyStruct.field1] | provenance | | +| main.rs:120:17:120:17 | s | main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:120:17:120:17 | s | main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | main.rs:123:10:123:36 | get_struct_field(...) | provenance | MaD:17 | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | main.rs:123:10:123:36 | get_struct_field(...) | provenance | MaD:17 | +| main.rs:140:9:140:9 | s | main.rs:141:38:141:38 | s | provenance | | +| main.rs:140:9:140:9 | s | main.rs:141:38:141:38 | s | provenance | | +| main.rs:140:13:140:21 | source(...) | main.rs:140:9:140:9 | s | provenance | | +| main.rs:140:13:140:21 | source(...) | main.rs:140:9:140:9 | s | provenance | | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | main.rs:143:10:143:18 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | main.rs:143:10:143:18 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | main.rs:141:9:141:17 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | main.rs:141:9:141:17 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:38:141:38 | s | main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | +| main.rs:141:38:141:38 | s | main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | main.rs:143:10:143:25 | my_struct.field2 | provenance | | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | main.rs:143:10:143:25 | my_struct.field2 | provenance | | +| main.rs:152:9:152:9 | s | main.rs:153:29:153:29 | s | provenance | | +| main.rs:152:9:152:9 | s | main.rs:153:29:153:29 | s | provenance | | +| main.rs:152:13:152:21 | source(...) | main.rs:152:9:152:9 | s | provenance | | +| main.rs:152:13:152:21 | source(...) | main.rs:152:9:152:9 | s | provenance | | +| main.rs:153:28:153:30 | [...] [element] | main.rs:153:10:153:31 | get_array_element(...) | provenance | MaD:15 | +| main.rs:153:28:153:30 | [...] [element] | main.rs:153:10:153:31 | get_array_element(...) | provenance | MaD:15 | +| main.rs:153:29:153:29 | s | main.rs:153:28:153:30 | [...] [element] | provenance | | +| main.rs:153:29:153:29 | s | main.rs:153:28:153:30 | [...] [element] | provenance | | +| main.rs:162:9:162:9 | s | main.rs:163:33:163:33 | s | provenance | | +| main.rs:162:9:162:9 | s | main.rs:163:33:163:33 | s | provenance | | +| main.rs:162:13:162:21 | source(...) | main.rs:162:9:162:9 | s | provenance | | +| main.rs:162:13:162:21 | source(...) | main.rs:162:9:162:9 | s | provenance | | +| main.rs:163:9:163:11 | arr [element] | main.rs:164:10:164:12 | arr [element] | provenance | | +| main.rs:163:9:163:11 | arr [element] | main.rs:164:10:164:12 | arr [element] | provenance | | +| main.rs:163:15:163:34 | set_array_element(...) [element] | main.rs:163:9:163:11 | arr [element] | provenance | | +| main.rs:163:15:163:34 | set_array_element(...) [element] | main.rs:163:9:163:11 | arr [element] | provenance | | +| main.rs:163:33:163:33 | s | main.rs:163:15:163:34 | set_array_element(...) [element] | provenance | MaD:21 | +| main.rs:163:33:163:33 | s | main.rs:163:15:163:34 | set_array_element(...) [element] | provenance | MaD:21 | +| main.rs:164:10:164:12 | arr [element] | main.rs:164:10:164:15 | arr[0] | provenance | MaD:11 | +| main.rs:164:10:164:12 | arr [element] | main.rs:164:10:164:15 | arr[0] | provenance | MaD:11 | +| main.rs:173:9:173:9 | s | main.rs:174:14:174:14 | s | provenance | | +| main.rs:173:9:173:9 | s | main.rs:174:14:174:14 | s | provenance | | +| main.rs:173:13:173:22 | source(...) | main.rs:173:9:173:9 | s | provenance | | +| main.rs:173:13:173:22 | source(...) | main.rs:173:9:173:9 | s | provenance | | +| main.rs:174:9:174:9 | t [tuple.0] | main.rs:175:28:175:28 | t [tuple.0] | provenance | | +| main.rs:174:9:174:9 | t [tuple.0] | main.rs:175:28:175:28 | t [tuple.0] | provenance | | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | main.rs:174:9:174:9 | t [tuple.0] | provenance | | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | main.rs:174:9:174:9 | t [tuple.0] | provenance | | +| main.rs:174:14:174:14 | s | main.rs:174:13:174:18 | TupleExpr [tuple.0] | provenance | | +| main.rs:174:14:174:14 | s | main.rs:174:13:174:18 | TupleExpr [tuple.0] | provenance | | +| main.rs:175:28:175:28 | t [tuple.0] | main.rs:175:10:175:29 | get_tuple_element(...) | provenance | MaD:18 | +| main.rs:175:28:175:28 | t [tuple.0] | main.rs:175:10:175:29 | get_tuple_element(...) | provenance | MaD:18 | +| main.rs:186:9:186:9 | s | main.rs:187:31:187:31 | s | provenance | | +| main.rs:186:9:186:9 | s | main.rs:187:31:187:31 | s | provenance | | +| main.rs:186:13:186:22 | source(...) | main.rs:186:9:186:9 | s | provenance | | +| main.rs:186:13:186:22 | source(...) | main.rs:186:9:186:9 | s | provenance | | +| main.rs:187:9:187:9 | t [tuple.1] | main.rs:189:10:189:10 | t [tuple.1] | provenance | | +| main.rs:187:9:187:9 | t [tuple.1] | main.rs:189:10:189:10 | t [tuple.1] | provenance | | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | main.rs:187:9:187:9 | t [tuple.1] | provenance | | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | main.rs:187:9:187:9 | t [tuple.1] | provenance | | +| main.rs:187:31:187:31 | s | main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | +| main.rs:187:31:187:31 | s | main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | +| main.rs:189:10:189:10 | t [tuple.1] | main.rs:189:10:189:12 | t.1 | provenance | | +| main.rs:189:10:189:10 | t [tuple.1] | main.rs:189:10:189:12 | t.1 | provenance | | +| main.rs:201:9:201:9 | s | main.rs:206:11:206:11 | s | provenance | | +| main.rs:201:9:201:9 | s | main.rs:206:11:206:11 | s | provenance | | +| main.rs:201:13:201:22 | source(...) | main.rs:201:9:201:9 | s | provenance | | +| main.rs:201:13:201:22 | source(...) | main.rs:201:9:201:9 | s | provenance | | +| main.rs:202:14:202:14 | ... | main.rs:203:14:203:14 | n | provenance | | +| main.rs:202:14:202:14 | ... | main.rs:203:14:203:14 | n | provenance | | +| main.rs:206:11:206:11 | s | main.rs:202:14:202:14 | ... | provenance | MaD:12 | +| main.rs:206:11:206:11 | s | main.rs:202:14:202:14 | ... | provenance | MaD:12 | +| main.rs:210:13:210:22 | source(...) | main.rs:212:23:212:23 | f [captured s] | provenance | | +| main.rs:210:13:210:22 | source(...) | main.rs:212:23:212:23 | f [captured s] | provenance | | +| main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | provenance | | +| main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | provenance | | +| main.rs:212:9:212:9 | t | main.rs:213:10:213:10 | t | provenance | | +| main.rs:212:9:212:9 | t | main.rs:213:10:213:10 | t | provenance | | +| main.rs:212:13:212:24 | apply(...) | main.rs:212:9:212:9 | t | provenance | | +| main.rs:212:13:212:24 | apply(...) | main.rs:212:9:212:9 | t | provenance | | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:13 | +| main.rs:217:9:217:9 | s | main.rs:219:19:219:19 | s | provenance | | +| main.rs:217:9:217:9 | s | main.rs:219:19:219:19 | s | provenance | | +| main.rs:217:13:217:22 | source(...) | main.rs:217:9:217:9 | s | provenance | | +| main.rs:217:13:217:22 | source(...) | main.rs:217:9:217:9 | s | provenance | | +| main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | provenance | | +| main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | provenance | | +| main.rs:219:9:219:9 | t | main.rs:220:10:220:10 | t | provenance | | +| main.rs:219:9:219:9 | t | main.rs:220:10:220:10 | t | provenance | | +| main.rs:219:13:219:23 | apply(...) | main.rs:219:9:219:9 | t | provenance | | +| main.rs:219:13:219:23 | apply(...) | main.rs:219:9:219:9 | t | provenance | | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:219:13:219:23 | apply(...) | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:219:13:219:23 | apply(...) | provenance | MaD:12 | +| main.rs:229:9:229:9 | s | main.rs:230:30:230:30 | s | provenance | | +| main.rs:229:9:229:9 | s | main.rs:230:30:230:30 | s | provenance | | +| main.rs:229:13:229:22 | source(...) | main.rs:229:9:229:9 | s | provenance | | +| main.rs:229:13:229:22 | source(...) | main.rs:229:9:229:9 | s | provenance | | +| main.rs:230:9:230:9 | t | main.rs:231:10:231:10 | t | provenance | | +| main.rs:230:9:230:9 | t | main.rs:231:10:231:10 | t | provenance | | +| main.rs:230:13:230:31 | get_async_number(...) [future] | main.rs:230:13:230:37 | await ... | provenance | | +| main.rs:230:13:230:31 | get_async_number(...) [future] | main.rs:230:13:230:37 | await ... | provenance | | +| main.rs:230:13:230:37 | await ... | main.rs:230:9:230:9 | t | provenance | | +| main.rs:230:13:230:37 | await ... | main.rs:230:9:230:9 | t | provenance | | +| main.rs:230:30:230:30 | s | main.rs:230:13:230:31 | get_async_number(...) [future] | provenance | MaD:16 | +| main.rs:230:30:230:30 | s | main.rs:230:13:230:31 | get_async_number(...) [future] | provenance | MaD:16 | +| main.rs:250:9:250:9 | s [D] | main.rs:251:11:251:11 | s [D] | provenance | | +| main.rs:250:9:250:9 | s [D] | main.rs:251:11:251:11 | s [D] | provenance | | +| main.rs:250:13:250:23 | enum_source | main.rs:250:13:250:27 | enum_source(...) [D] | provenance | Src:MaD:6 | +| main.rs:250:13:250:23 | enum_source | main.rs:250:13:250:27 | enum_source(...) [D] | provenance | Src:MaD:6 | +| main.rs:250:13:250:27 | enum_source(...) [D] | main.rs:250:9:250:9 | s [D] | provenance | | +| main.rs:250:13:250:27 | enum_source(...) [D] | main.rs:250:9:250:9 | s [D] | provenance | | +| main.rs:251:11:251:11 | s [D] | main.rs:253:9:253:37 | ...::D {...} [D] | provenance | | +| main.rs:251:11:251:11 | s [D] | main.rs:253:9:253:37 | ...::D {...} [D] | provenance | | +| main.rs:253:9:253:37 | ...::D {...} [D] | main.rs:253:35:253:35 | i | provenance | | +| main.rs:253:9:253:37 | ...::D {...} [D] | main.rs:253:35:253:35 | i | provenance | | +| main.rs:253:35:253:35 | i | main.rs:253:47:253:47 | i | provenance | | +| main.rs:253:35:253:35 | i | main.rs:253:47:253:47 | i | provenance | | +| main.rs:259:9:259:9 | s [C] | main.rs:260:11:260:11 | s [C] | provenance | | +| main.rs:259:9:259:9 | s [C] | main.rs:260:11:260:11 | s [C] | provenance | | +| main.rs:259:13:259:24 | e.source(...) [C] | main.rs:259:9:259:9 | s [C] | provenance | | +| main.rs:259:13:259:24 | e.source(...) [C] | main.rs:259:9:259:9 | s [C] | provenance | | +| main.rs:259:15:259:20 | source | main.rs:259:13:259:24 | e.source(...) [C] | provenance | Src:MaD:4 | +| main.rs:259:15:259:20 | source | main.rs:259:13:259:24 | e.source(...) [C] | provenance | Src:MaD:4 | +| main.rs:260:11:260:11 | s [C] | main.rs:261:9:261:37 | ...::C {...} [C] | provenance | | +| main.rs:260:11:260:11 | s [C] | main.rs:261:9:261:37 | ...::C {...} [C] | provenance | | +| main.rs:261:9:261:37 | ...::C {...} [C] | main.rs:261:35:261:35 | i | provenance | | +| main.rs:261:9:261:37 | ...::C {...} [C] | main.rs:261:35:261:35 | i | provenance | | +| main.rs:261:35:261:35 | i | main.rs:261:47:261:47 | i | provenance | | +| main.rs:261:35:261:35 | i | main.rs:261:47:261:47 | i | provenance | | +| main.rs:275:18:275:18 | ... | main.rs:275:26:275:26 | a | provenance | | +| main.rs:275:18:275:18 | ... | main.rs:275:26:275:26 | a | provenance | | +| main.rs:276:9:276:19 | pass_source | main.rs:275:18:275:18 | ... | provenance | Src:MaD:8 | +| main.rs:276:9:276:19 | pass_source | main.rs:275:18:275:18 | ... | provenance | Src:MaD:8 | +| main.rs:278:9:278:19 | pass_source | main.rs:278:25:278:25 | ... | provenance | Src:MaD:8 | +| main.rs:278:9:278:19 | pass_source | main.rs:278:25:278:25 | ... | provenance | Src:MaD:8 | +| main.rs:278:25:278:25 | ... | main.rs:279:18:279:18 | a | provenance | | +| main.rs:278:25:278:25 | ... | main.rs:279:18:279:18 | a | provenance | | +| main.rs:282:14:282:19 | ...: i64 | main.rs:283:18:283:18 | a | provenance | | +| main.rs:282:14:282:19 | ...: i64 | main.rs:283:18:283:18 | a | provenance | | +| main.rs:285:9:285:19 | pass_source | main.rs:282:14:282:19 | ...: i64 | provenance | Src:MaD:8 | +| main.rs:285:9:285:19 | pass_source | main.rs:282:14:282:19 | ...: i64 | provenance | Src:MaD:8 | +| main.rs:287:9:287:19 | pass_source | main.rs:287:36:287:36 | ... | provenance | Src:MaD:8 | +| main.rs:287:9:287:19 | pass_source | main.rs:287:36:287:36 | ... | provenance | Src:MaD:8 | +| main.rs:287:36:287:36 | ... | main.rs:288:18:288:18 | a | provenance | | +| main.rs:287:36:287:36 | ... | main.rs:288:18:288:18 | a | provenance | | +| main.rs:297:9:297:9 | s | main.rs:298:41:298:41 | s | provenance | | +| main.rs:297:9:297:9 | s | main.rs:298:41:298:41 | s | provenance | | +| main.rs:297:13:297:22 | source(...) | main.rs:297:9:297:9 | s | provenance | | +| main.rs:297:13:297:22 | source(...) | main.rs:297:9:297:9 | s | provenance | | +| main.rs:298:15:298:43 | ...::C {...} [C] | main.rs:298:5:298:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | +| main.rs:298:15:298:43 | ...::C {...} [C] | main.rs:298:5:298:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | +| main.rs:298:41:298:41 | s | main.rs:298:15:298:43 | ...::C {...} [C] | provenance | | +| main.rs:298:41:298:41 | s | main.rs:298:15:298:43 | ...::C {...} [C] | provenance | | +| main.rs:303:9:303:9 | s | main.rs:304:39:304:39 | s | provenance | | +| main.rs:303:9:303:9 | s | main.rs:304:39:304:39 | s | provenance | | +| main.rs:303:13:303:22 | source(...) | main.rs:303:9:303:9 | s | provenance | | +| main.rs:303:13:303:22 | source(...) | main.rs:303:9:303:9 | s | provenance | | +| main.rs:304:9:304:9 | e [D] | main.rs:305:5:305:5 | e [D] | provenance | | +| main.rs:304:9:304:9 | e [D] | main.rs:305:5:305:5 | e [D] | provenance | | +| main.rs:304:13:304:41 | ...::D {...} [D] | main.rs:304:9:304:9 | e [D] | provenance | | +| main.rs:304:13:304:41 | ...::D {...} [D] | main.rs:304:9:304:9 | e [D] | provenance | | +| main.rs:304:39:304:39 | s | main.rs:304:13:304:41 | ...::D {...} [D] | provenance | | +| main.rs:304:39:304:39 | s | main.rs:304:13:304:41 | ...::D {...} [D] | provenance | | +| main.rs:305:5:305:5 | e [D] | main.rs:305:7:305:10 | sink | provenance | MaD:1 Sink:MaD:1 | +| main.rs:305:5:305:5 | e [D] | main.rs:305:7:305:10 | sink | provenance | MaD:1 Sink:MaD:1 | +| main.rs:314:9:314:9 | s | main.rs:315:10:315:10 | s | provenance | | +| main.rs:314:9:314:9 | s | main.rs:315:10:315:10 | s | provenance | | +| main.rs:314:13:314:25 | simple_source | main.rs:314:13:314:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | +| main.rs:314:13:314:25 | simple_source | main.rs:314:13:314:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | +| main.rs:314:13:314:29 | simple_source(...) | main.rs:314:9:314:9 | s | provenance | | +| main.rs:314:13:314:29 | simple_source(...) | main.rs:314:9:314:9 | s | provenance | | +| main.rs:322:9:322:9 | s | main.rs:323:17:323:17 | s | provenance | | +| main.rs:322:9:322:9 | s | main.rs:323:17:323:17 | s | provenance | | +| main.rs:322:13:322:22 | source(...) | main.rs:322:9:322:9 | s | provenance | | +| main.rs:322:13:322:22 | source(...) | main.rs:322:9:322:9 | s | provenance | | +| main.rs:323:17:323:17 | s | main.rs:323:5:323:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | +| main.rs:323:17:323:17 | s | main.rs:323:5:323:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | +| main.rs:331:5:331:14 | arg_source | main.rs:331:16:331:16 | [post] i | provenance | Src:MaD:5 MaD:5 | +| main.rs:331:5:331:14 | arg_source | main.rs:331:16:331:16 | [post] i | provenance | Src:MaD:5 MaD:5 | +| main.rs:331:16:331:16 | [post] i | main.rs:332:10:332:10 | i | provenance | | +| main.rs:331:16:331:16 | [post] i | main.rs:332:10:332:10 | i | provenance | | +| main.rs:384:9:384:10 | x1 | main.rs:385:10:385:11 | x1 | provenance | | +| main.rs:384:9:384:10 | x1 | main.rs:385:10:385:11 | x1 | provenance | | +| main.rs:384:14:384:23 | source(...) | main.rs:384:14:384:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:384:14:384:23 | source(...) | main.rs:384:14:384:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:384:14:384:30 | ... .max(...) | main.rs:384:9:384:10 | x1 | provenance | | +| main.rs:384:14:384:30 | ... .max(...) | main.rs:384:9:384:10 | x1 | provenance | | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | main.rs:395:10:395:11 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | main.rs:395:10:395:11 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | main.rs:387:9:387:10 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | main.rs:387:9:387:10 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | +| main.rs:388:17:388:26 | source(...) | main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:388:17:388:26 | source(...) | main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | main.rs:395:10:395:18 | x2.field1 | provenance | | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | main.rs:395:10:395:18 | x2.field1 | provenance | | +| main.rs:400:9:400:10 | x4 | main.rs:401:10:401:11 | x4 | provenance | | +| main.rs:400:9:400:10 | x4 | main.rs:401:10:401:11 | x4 | provenance | | +| main.rs:400:14:400:23 | source(...) | main.rs:400:14:400:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:400:14:400:23 | source(...) | main.rs:400:14:400:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:400:14:400:30 | ... .max(...) | main.rs:400:9:400:10 | x4 | provenance | | +| main.rs:400:14:400:30 | ... .max(...) | main.rs:400:9:400:10 | x4 | provenance | | +| main.rs:403:9:403:10 | x5 | main.rs:404:10:404:11 | x5 | provenance | | +| main.rs:403:14:403:23 | source(...) | main.rs:403:14:403:30 | ... .lt(...) | provenance | MaD:10 | +| main.rs:403:14:403:30 | ... .lt(...) | main.rs:403:9:403:10 | x5 | provenance | | +| main.rs:406:9:406:10 | x6 | main.rs:407:10:407:11 | x6 | provenance | | +| main.rs:406:14:406:23 | source(...) | main.rs:406:14:406:27 | ... < ... | provenance | MaD:10 | +| main.rs:406:14:406:27 | ... < ... | main.rs:406:9:406:10 | x6 | provenance | | nodes | main.rs:15:9:15:9 | s | semmle.label | s | | main.rs:15:9:15:9 | s | semmle.label | s | @@ -325,404 +339,424 @@ nodes | main.rs:25:13:25:22 | source(...) | semmle.label | source(...) | | main.rs:26:10:26:18 | coerce(...) | semmle.label | coerce(...) | | main.rs:26:17:26:17 | s | semmle.label | s | -| main.rs:40:9:40:9 | s | semmle.label | s | -| main.rs:40:9:40:9 | s | semmle.label | s | -| main.rs:40:13:40:21 | source(...) | semmle.label | source(...) | -| main.rs:40:13:40:21 | source(...) | semmle.label | source(...) | -| main.rs:41:9:41:10 | e1 [A] | semmle.label | e1 [A] | -| main.rs:41:9:41:10 | e1 [A] | semmle.label | e1 [A] | -| main.rs:41:14:41:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | -| main.rs:41:14:41:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | -| main.rs:41:27:41:27 | s | semmle.label | s | -| main.rs:41:27:41:27 | s | semmle.label | s | -| main.rs:42:10:42:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | -| main.rs:42:22:42:23 | e1 [A] | semmle.label | e1 [A] | -| main.rs:42:22:42:23 | e1 [A] | semmle.label | e1 [A] | -| main.rs:53:9:53:9 | s | semmle.label | s | -| main.rs:53:9:53:9 | s | semmle.label | s | -| main.rs:53:13:53:21 | source(...) | semmle.label | source(...) | -| main.rs:53:13:53:21 | source(...) | semmle.label | source(...) | -| main.rs:54:9:54:10 | e1 [B] | semmle.label | e1 [B] | -| main.rs:54:9:54:10 | e1 [B] | semmle.label | e1 [B] | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | -| main.rs:54:26:54:26 | s | semmle.label | s | -| main.rs:54:26:54:26 | s | semmle.label | s | -| main.rs:55:11:55:12 | e1 [B] | semmle.label | e1 [B] | -| main.rs:55:11:55:12 | e1 [B] | semmle.label | e1 [B] | -| main.rs:57:9:57:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | -| main.rs:57:9:57:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | -| main.rs:57:22:57:22 | i | semmle.label | i | -| main.rs:57:22:57:22 | i | semmle.label | i | -| main.rs:57:33:57:33 | i | semmle.label | i | -| main.rs:57:33:57:33 | i | semmle.label | i | -| main.rs:72:9:72:9 | s | semmle.label | s | -| main.rs:72:9:72:9 | s | semmle.label | s | -| main.rs:72:13:72:21 | source(...) | semmle.label | source(...) | -| main.rs:72:13:72:21 | source(...) | semmle.label | source(...) | -| main.rs:73:9:73:10 | e1 [C] | semmle.label | e1 [C] | -| main.rs:73:9:73:10 | e1 [C] | semmle.label | e1 [C] | -| main.rs:73:14:73:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:73:14:73:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:73:40:73:40 | s | semmle.label | s | -| main.rs:73:40:73:40 | s | semmle.label | s | -| main.rs:74:10:74:26 | get_var_field(...) | semmle.label | get_var_field(...) | -| main.rs:74:10:74:26 | get_var_field(...) | semmle.label | get_var_field(...) | -| main.rs:74:24:74:25 | e1 [C] | semmle.label | e1 [C] | -| main.rs:74:24:74:25 | e1 [C] | semmle.label | e1 [C] | -| main.rs:85:9:85:9 | s | semmle.label | s | -| main.rs:85:9:85:9 | s | semmle.label | s | -| main.rs:85:13:85:21 | source(...) | semmle.label | source(...) | -| main.rs:85:13:85:21 | source(...) | semmle.label | source(...) | -| main.rs:86:9:86:10 | e1 [D] | semmle.label | e1 [D] | -| main.rs:86:9:86:10 | e1 [D] | semmle.label | e1 [D] | -| main.rs:86:14:86:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | -| main.rs:86:14:86:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | -| main.rs:86:28:86:28 | s | semmle.label | s | -| main.rs:86:28:86:28 | s | semmle.label | s | -| main.rs:87:11:87:12 | e1 [D] | semmle.label | e1 [D] | -| main.rs:87:11:87:12 | e1 [D] | semmle.label | e1 [D] | -| main.rs:89:9:89:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:89:9:89:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:89:35:89:35 | i | semmle.label | i | -| main.rs:89:35:89:35 | i | semmle.label | i | -| main.rs:89:47:89:47 | i | semmle.label | i | -| main.rs:89:47:89:47 | i | semmle.label | i | -| main.rs:104:9:104:9 | s | semmle.label | s | -| main.rs:104:9:104:9 | s | semmle.label | s | -| main.rs:104:13:104:21 | source(...) | semmle.label | source(...) | -| main.rs:104:13:104:21 | source(...) | semmle.label | source(...) | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:106:17:106:17 | s | semmle.label | s | -| main.rs:106:17:106:17 | s | semmle.label | s | -| main.rs:109:10:109:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:126:9:126:9 | s | semmle.label | s | -| main.rs:126:9:126:9 | s | semmle.label | s | -| main.rs:126:13:126:21 | source(...) | semmle.label | source(...) | -| main.rs:126:13:126:21 | source(...) | semmle.label | source(...) | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | -| main.rs:127:38:127:38 | s | semmle.label | s | -| main.rs:127:38:127:38 | s | semmle.label | s | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:129:10:129:25 | my_struct.field2 | semmle.label | my_struct.field2 | -| main.rs:129:10:129:25 | my_struct.field2 | semmle.label | my_struct.field2 | -| main.rs:138:9:138:9 | s | semmle.label | s | -| main.rs:138:9:138:9 | s | semmle.label | s | -| main.rs:138:13:138:21 | source(...) | semmle.label | source(...) | -| main.rs:138:13:138:21 | source(...) | semmle.label | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | semmle.label | get_array_element(...) | -| main.rs:139:10:139:31 | get_array_element(...) | semmle.label | get_array_element(...) | -| main.rs:139:28:139:30 | [...] [element] | semmle.label | [...] [element] | -| main.rs:139:28:139:30 | [...] [element] | semmle.label | [...] [element] | -| main.rs:139:29:139:29 | s | semmle.label | s | -| main.rs:139:29:139:29 | s | semmle.label | s | -| main.rs:148:9:148:9 | s | semmle.label | s | -| main.rs:148:9:148:9 | s | semmle.label | s | -| main.rs:148:13:148:21 | source(...) | semmle.label | source(...) | -| main.rs:148:13:148:21 | source(...) | semmle.label | source(...) | -| main.rs:149:9:149:11 | arr [element] | semmle.label | arr [element] | -| main.rs:149:9:149:11 | arr [element] | semmle.label | arr [element] | -| main.rs:149:15:149:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | -| main.rs:149:15:149:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | -| main.rs:149:33:149:33 | s | semmle.label | s | -| main.rs:149:33:149:33 | s | semmle.label | s | -| main.rs:150:10:150:12 | arr [element] | semmle.label | arr [element] | -| main.rs:150:10:150:12 | arr [element] | semmle.label | arr [element] | -| main.rs:150:10:150:15 | arr[0] | semmle.label | arr[0] | -| main.rs:150:10:150:15 | arr[0] | semmle.label | arr[0] | -| main.rs:159:9:159:9 | s | semmle.label | s | -| main.rs:159:9:159:9 | s | semmle.label | s | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:160:9:160:9 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:160:9:160:9 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:160:14:160:14 | s | semmle.label | s | -| main.rs:160:14:160:14 | s | semmle.label | s | -| main.rs:161:10:161:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | -| main.rs:161:28:161:28 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:161:28:161:28 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:172:9:172:9 | s | semmle.label | s | -| main.rs:172:9:172:9 | s | semmle.label | s | -| main.rs:172:13:172:22 | source(...) | semmle.label | source(...) | -| main.rs:172:13:172:22 | source(...) | semmle.label | source(...) | -| main.rs:173:9:173:9 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:173:9:173:9 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | -| main.rs:173:31:173:31 | s | semmle.label | s | -| main.rs:173:31:173:31 | s | semmle.label | s | -| main.rs:175:10:175:10 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:175:10:175:10 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 | -| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 | -| main.rs:187:9:187:9 | s | semmle.label | s | -| main.rs:187:9:187:9 | s | semmle.label | s | -| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) | -| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) | -| main.rs:188:14:188:14 | ... | semmle.label | ... | -| main.rs:188:14:188:14 | ... | semmle.label | ... | -| main.rs:189:14:189:14 | n | semmle.label | n | -| main.rs:189:14:189:14 | n | semmle.label | n | -| main.rs:192:11:192:11 | s | semmle.label | s | -| main.rs:192:11:192:11 | s | semmle.label | s | -| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) | -| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) | -| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:197:40:197:40 | s | semmle.label | s | -| main.rs:197:40:197:40 | s | semmle.label | s | -| main.rs:198:9:198:9 | t | semmle.label | t | -| main.rs:198:9:198:9 | t | semmle.label | t | -| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) | -| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) | -| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] | -| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] | -| main.rs:199:10:199:10 | t | semmle.label | t | -| main.rs:199:10:199:10 | t | semmle.label | t | -| main.rs:203:9:203:9 | s | semmle.label | s | -| main.rs:203:9:203:9 | s | semmle.label | s | -| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) | -| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) | -| main.rs:204:14:204:14 | ... | semmle.label | ... | -| main.rs:204:14:204:14 | ... | semmle.label | ... | -| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:205:9:205:9 | t | semmle.label | t | -| main.rs:205:9:205:9 | t | semmle.label | t | -| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) | -| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) | -| main.rs:205:19:205:19 | s | semmle.label | s | -| main.rs:205:19:205:19 | s | semmle.label | s | -| main.rs:206:10:206:10 | t | semmle.label | t | -| main.rs:206:10:206:10 | t | semmle.label | t | -| main.rs:215:9:215:9 | s | semmle.label | s | -| main.rs:215:9:215:9 | s | semmle.label | s | -| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) | -| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) | -| main.rs:216:9:216:9 | t | semmle.label | t | -| main.rs:216:9:216:9 | t | semmle.label | t | -| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | -| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | -| main.rs:216:13:216:37 | await ... | semmle.label | await ... | -| main.rs:216:13:216:37 | await ... | semmle.label | await ... | -| main.rs:216:30:216:30 | s | semmle.label | s | -| main.rs:216:30:216:30 | s | semmle.label | s | -| main.rs:217:10:217:10 | t | semmle.label | t | -| main.rs:217:10:217:10 | t | semmle.label | t | -| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] | -| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] | -| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source | -| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source | -| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | -| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | -| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] | -| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] | -| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:239:35:239:35 | i | semmle.label | i | -| main.rs:239:35:239:35 | i | semmle.label | i | -| main.rs:239:47:239:47 | i | semmle.label | i | -| main.rs:239:47:239:47 | i | semmle.label | i | -| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] | -| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] | -| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | -| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | -| main.rs:245:15:245:20 | source | semmle.label | source | -| main.rs:245:15:245:20 | source | semmle.label | source | -| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] | -| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] | -| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:247:35:247:35 | i | semmle.label | i | -| main.rs:247:35:247:35 | i | semmle.label | i | -| main.rs:247:47:247:47 | i | semmle.label | i | -| main.rs:247:47:247:47 | i | semmle.label | i | -| main.rs:261:18:261:18 | ... | semmle.label | ... | -| main.rs:261:18:261:18 | ... | semmle.label | ... | -| main.rs:261:26:261:26 | a | semmle.label | a | -| main.rs:261:26:261:26 | a | semmle.label | a | -| main.rs:262:9:262:19 | pass_source | semmle.label | pass_source | -| main.rs:262:9:262:19 | pass_source | semmle.label | pass_source | -| main.rs:264:9:264:19 | pass_source | semmle.label | pass_source | -| main.rs:264:9:264:19 | pass_source | semmle.label | pass_source | -| main.rs:264:25:264:25 | ... | semmle.label | ... | -| main.rs:264:25:264:25 | ... | semmle.label | ... | -| main.rs:265:18:265:18 | a | semmle.label | a | -| main.rs:265:18:265:18 | a | semmle.label | a | -| main.rs:268:14:268:19 | ...: i64 | semmle.label | ...: i64 | -| main.rs:268:14:268:19 | ...: i64 | semmle.label | ...: i64 | -| main.rs:269:18:269:18 | a | semmle.label | a | -| main.rs:269:18:269:18 | a | semmle.label | a | -| main.rs:271:9:271:19 | pass_source | semmle.label | pass_source | -| main.rs:271:9:271:19 | pass_source | semmle.label | pass_source | -| main.rs:273:9:273:19 | pass_source | semmle.label | pass_source | -| main.rs:273:9:273:19 | pass_source | semmle.label | pass_source | -| main.rs:273:36:273:36 | ... | semmle.label | ... | -| main.rs:273:36:273:36 | ... | semmle.label | ... | -| main.rs:274:18:274:18 | a | semmle.label | a | -| main.rs:274:18:274:18 | a | semmle.label | a | -| main.rs:283:9:283:9 | s | semmle.label | s | -| main.rs:283:9:283:9 | s | semmle.label | s | -| main.rs:283:13:283:22 | source(...) | semmle.label | source(...) | -| main.rs:283:13:283:22 | source(...) | semmle.label | source(...) | -| main.rs:284:5:284:13 | enum_sink | semmle.label | enum_sink | -| main.rs:284:5:284:13 | enum_sink | semmle.label | enum_sink | -| main.rs:284:15:284:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:284:15:284:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:284:41:284:41 | s | semmle.label | s | -| main.rs:284:41:284:41 | s | semmle.label | s | -| main.rs:289:9:289:9 | s | semmle.label | s | -| main.rs:289:9:289:9 | s | semmle.label | s | -| main.rs:289:13:289:22 | source(...) | semmle.label | source(...) | -| main.rs:289:13:289:22 | source(...) | semmle.label | source(...) | -| main.rs:290:9:290:9 | e [D] | semmle.label | e [D] | -| main.rs:290:9:290:9 | e [D] | semmle.label | e [D] | -| main.rs:290:13:290:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:290:13:290:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:290:39:290:39 | s | semmle.label | s | -| main.rs:290:39:290:39 | s | semmle.label | s | -| main.rs:291:5:291:5 | e [D] | semmle.label | e [D] | -| main.rs:291:5:291:5 | e [D] | semmle.label | e [D] | -| main.rs:291:7:291:10 | sink | semmle.label | sink | -| main.rs:291:7:291:10 | sink | semmle.label | sink | -| main.rs:300:9:300:9 | s | semmle.label | s | -| main.rs:300:9:300:9 | s | semmle.label | s | -| main.rs:300:13:300:25 | simple_source | semmle.label | simple_source | -| main.rs:300:13:300:25 | simple_source | semmle.label | simple_source | -| main.rs:300:13:300:29 | simple_source(...) | semmle.label | simple_source(...) | -| main.rs:300:13:300:29 | simple_source(...) | semmle.label | simple_source(...) | -| main.rs:301:10:301:10 | s | semmle.label | s | -| main.rs:301:10:301:10 | s | semmle.label | s | -| main.rs:308:9:308:9 | s | semmle.label | s | -| main.rs:308:9:308:9 | s | semmle.label | s | -| main.rs:308:13:308:22 | source(...) | semmle.label | source(...) | -| main.rs:308:13:308:22 | source(...) | semmle.label | source(...) | -| main.rs:309:5:309:15 | simple_sink | semmle.label | simple_sink | -| main.rs:309:5:309:15 | simple_sink | semmle.label | simple_sink | -| main.rs:309:17:309:17 | s | semmle.label | s | -| main.rs:309:17:309:17 | s | semmle.label | s | -| main.rs:317:5:317:14 | arg_source | semmle.label | arg_source | -| main.rs:317:5:317:14 | arg_source | semmle.label | arg_source | -| main.rs:317:16:317:16 | [post] i | semmle.label | [post] i | -| main.rs:317:16:317:16 | [post] i | semmle.label | [post] i | -| main.rs:318:10:318:10 | i | semmle.label | i | -| main.rs:318:10:318:10 | i | semmle.label | i | -| main.rs:370:9:370:10 | x1 | semmle.label | x1 | -| main.rs:370:9:370:10 | x1 | semmle.label | x1 | -| main.rs:370:14:370:23 | source(...) | semmle.label | source(...) | -| main.rs:370:14:370:23 | source(...) | semmle.label | source(...) | -| main.rs:370:14:370:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:370:14:370:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:371:10:371:11 | x1 | semmle.label | x1 | -| main.rs:371:10:371:11 | x1 | semmle.label | x1 | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:374:17:374:26 | source(...) | semmle.label | source(...) | -| main.rs:374:17:374:26 | source(...) | semmle.label | source(...) | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:381:10:381:18 | x2.field1 | semmle.label | x2.field1 | -| main.rs:381:10:381:18 | x2.field1 | semmle.label | x2.field1 | -| main.rs:386:9:386:10 | x4 | semmle.label | x4 | -| main.rs:386:9:386:10 | x4 | semmle.label | x4 | -| main.rs:386:14:386:23 | source(...) | semmle.label | source(...) | -| main.rs:386:14:386:23 | source(...) | semmle.label | source(...) | -| main.rs:386:14:386:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:386:14:386:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:387:10:387:11 | x4 | semmle.label | x4 | -| main.rs:387:10:387:11 | x4 | semmle.label | x4 | -| main.rs:389:9:389:10 | x5 | semmle.label | x5 | -| main.rs:389:14:389:23 | source(...) | semmle.label | source(...) | -| main.rs:389:14:389:30 | ... .lt(...) | semmle.label | ... .lt(...) | -| main.rs:390:10:390:11 | x5 | semmle.label | x5 | -| main.rs:392:9:392:10 | x6 | semmle.label | x6 | -| main.rs:392:14:392:23 | source(...) | semmle.label | source(...) | -| main.rs:392:14:392:27 | ... < ... | semmle.label | ... < ... | -| main.rs:393:10:393:11 | x6 | semmle.label | x6 | +| main.rs:41:9:41:10 | s1 | semmle.label | s1 | +| main.rs:41:9:41:10 | s1 | semmle.label | s1 | +| main.rs:41:14:41:23 | source(...) | semmle.label | source(...) | +| main.rs:41:14:41:23 | source(...) | semmle.label | source(...) | +| main.rs:42:10:42:19 | snd(...) | semmle.label | snd(...) | +| main.rs:42:10:42:19 | snd(...) | semmle.label | snd(...) | +| main.rs:42:17:42:18 | s1 | semmle.label | s1 | +| main.rs:42:17:42:18 | s1 | semmle.label | s1 | +| main.rs:44:9:44:10 | s2 | semmle.label | s2 | +| main.rs:44:9:44:10 | s2 | semmle.label | s2 | +| main.rs:44:14:44:23 | source(...) | semmle.label | source(...) | +| main.rs:44:14:44:23 | source(...) | semmle.label | source(...) | +| main.rs:45:10:45:19 | snd(...) | semmle.label | snd(...) | +| main.rs:45:10:45:19 | snd(...) | semmle.label | snd(...) | +| main.rs:45:14:45:15 | s2 | semmle.label | s2 | +| main.rs:45:14:45:15 | s2 | semmle.label | s2 | +| main.rs:54:9:54:9 | s | semmle.label | s | +| main.rs:54:9:54:9 | s | semmle.label | s | +| main.rs:54:13:54:21 | source(...) | semmle.label | source(...) | +| main.rs:54:13:54:21 | source(...) | semmle.label | source(...) | +| main.rs:55:9:55:10 | e1 [A] | semmle.label | e1 [A] | +| main.rs:55:9:55:10 | e1 [A] | semmle.label | e1 [A] | +| main.rs:55:14:55:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | +| main.rs:55:14:55:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | +| main.rs:55:27:55:27 | s | semmle.label | s | +| main.rs:55:27:55:27 | s | semmle.label | s | +| main.rs:56:10:56:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | +| main.rs:56:22:56:23 | e1 [A] | semmle.label | e1 [A] | +| main.rs:56:22:56:23 | e1 [A] | semmle.label | e1 [A] | +| main.rs:67:9:67:9 | s | semmle.label | s | +| main.rs:67:9:67:9 | s | semmle.label | s | +| main.rs:67:13:67:21 | source(...) | semmle.label | source(...) | +| main.rs:67:13:67:21 | source(...) | semmle.label | source(...) | +| main.rs:68:9:68:10 | e1 [B] | semmle.label | e1 [B] | +| main.rs:68:9:68:10 | e1 [B] | semmle.label | e1 [B] | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | +| main.rs:68:26:68:26 | s | semmle.label | s | +| main.rs:68:26:68:26 | s | semmle.label | s | +| main.rs:69:11:69:12 | e1 [B] | semmle.label | e1 [B] | +| main.rs:69:11:69:12 | e1 [B] | semmle.label | e1 [B] | +| main.rs:71:9:71:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | +| main.rs:71:9:71:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | +| main.rs:71:22:71:22 | i | semmle.label | i | +| main.rs:71:22:71:22 | i | semmle.label | i | +| main.rs:71:33:71:33 | i | semmle.label | i | +| main.rs:71:33:71:33 | i | semmle.label | i | +| main.rs:86:9:86:9 | s | semmle.label | s | +| main.rs:86:9:86:9 | s | semmle.label | s | +| main.rs:86:13:86:21 | source(...) | semmle.label | source(...) | +| main.rs:86:13:86:21 | source(...) | semmle.label | source(...) | +| main.rs:87:9:87:10 | e1 [C] | semmle.label | e1 [C] | +| main.rs:87:9:87:10 | e1 [C] | semmle.label | e1 [C] | +| main.rs:87:14:87:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:87:14:87:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:87:40:87:40 | s | semmle.label | s | +| main.rs:87:40:87:40 | s | semmle.label | s | +| main.rs:88:10:88:26 | get_var_field(...) | semmle.label | get_var_field(...) | +| main.rs:88:10:88:26 | get_var_field(...) | semmle.label | get_var_field(...) | +| main.rs:88:24:88:25 | e1 [C] | semmle.label | e1 [C] | +| main.rs:88:24:88:25 | e1 [C] | semmle.label | e1 [C] | +| main.rs:99:9:99:9 | s | semmle.label | s | +| main.rs:99:9:99:9 | s | semmle.label | s | +| main.rs:99:13:99:21 | source(...) | semmle.label | source(...) | +| main.rs:99:13:99:21 | source(...) | semmle.label | source(...) | +| main.rs:100:9:100:10 | e1 [D] | semmle.label | e1 [D] | +| main.rs:100:9:100:10 | e1 [D] | semmle.label | e1 [D] | +| main.rs:100:14:100:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | +| main.rs:100:14:100:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | +| main.rs:100:28:100:28 | s | semmle.label | s | +| main.rs:100:28:100:28 | s | semmle.label | s | +| main.rs:101:11:101:12 | e1 [D] | semmle.label | e1 [D] | +| main.rs:101:11:101:12 | e1 [D] | semmle.label | e1 [D] | +| main.rs:103:9:103:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:103:9:103:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:103:35:103:35 | i | semmle.label | i | +| main.rs:103:35:103:35 | i | semmle.label | i | +| main.rs:103:47:103:47 | i | semmle.label | i | +| main.rs:103:47:103:47 | i | semmle.label | i | +| main.rs:118:9:118:9 | s | semmle.label | s | +| main.rs:118:9:118:9 | s | semmle.label | s | +| main.rs:118:13:118:21 | source(...) | semmle.label | source(...) | +| main.rs:118:13:118:21 | source(...) | semmle.label | source(...) | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:120:17:120:17 | s | semmle.label | s | +| main.rs:120:17:120:17 | s | semmle.label | s | +| main.rs:123:10:123:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:140:9:140:9 | s | semmle.label | s | +| main.rs:140:9:140:9 | s | semmle.label | s | +| main.rs:140:13:140:21 | source(...) | semmle.label | source(...) | +| main.rs:140:13:140:21 | source(...) | semmle.label | source(...) | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | +| main.rs:141:38:141:38 | s | semmle.label | s | +| main.rs:141:38:141:38 | s | semmle.label | s | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:143:10:143:25 | my_struct.field2 | semmle.label | my_struct.field2 | +| main.rs:143:10:143:25 | my_struct.field2 | semmle.label | my_struct.field2 | +| main.rs:152:9:152:9 | s | semmle.label | s | +| main.rs:152:9:152:9 | s | semmle.label | s | +| main.rs:152:13:152:21 | source(...) | semmle.label | source(...) | +| main.rs:152:13:152:21 | source(...) | semmle.label | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | semmle.label | get_array_element(...) | +| main.rs:153:10:153:31 | get_array_element(...) | semmle.label | get_array_element(...) | +| main.rs:153:28:153:30 | [...] [element] | semmle.label | [...] [element] | +| main.rs:153:28:153:30 | [...] [element] | semmle.label | [...] [element] | +| main.rs:153:29:153:29 | s | semmle.label | s | +| main.rs:153:29:153:29 | s | semmle.label | s | +| main.rs:162:9:162:9 | s | semmle.label | s | +| main.rs:162:9:162:9 | s | semmle.label | s | +| main.rs:162:13:162:21 | source(...) | semmle.label | source(...) | +| main.rs:162:13:162:21 | source(...) | semmle.label | source(...) | +| main.rs:163:9:163:11 | arr [element] | semmle.label | arr [element] | +| main.rs:163:9:163:11 | arr [element] | semmle.label | arr [element] | +| main.rs:163:15:163:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | +| main.rs:163:15:163:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | +| main.rs:163:33:163:33 | s | semmle.label | s | +| main.rs:163:33:163:33 | s | semmle.label | s | +| main.rs:164:10:164:12 | arr [element] | semmle.label | arr [element] | +| main.rs:164:10:164:12 | arr [element] | semmle.label | arr [element] | +| main.rs:164:10:164:15 | arr[0] | semmle.label | arr[0] | +| main.rs:164:10:164:15 | arr[0] | semmle.label | arr[0] | +| main.rs:173:9:173:9 | s | semmle.label | s | +| main.rs:173:9:173:9 | s | semmle.label | s | +| main.rs:173:13:173:22 | source(...) | semmle.label | source(...) | +| main.rs:173:13:173:22 | source(...) | semmle.label | source(...) | +| main.rs:174:9:174:9 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:174:9:174:9 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:174:14:174:14 | s | semmle.label | s | +| main.rs:174:14:174:14 | s | semmle.label | s | +| main.rs:175:10:175:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | +| main.rs:175:28:175:28 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:175:28:175:28 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:186:9:186:9 | s | semmle.label | s | +| main.rs:186:9:186:9 | s | semmle.label | s | +| main.rs:186:13:186:22 | source(...) | semmle.label | source(...) | +| main.rs:186:13:186:22 | source(...) | semmle.label | source(...) | +| main.rs:187:9:187:9 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:187:9:187:9 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | +| main.rs:187:31:187:31 | s | semmle.label | s | +| main.rs:187:31:187:31 | s | semmle.label | s | +| main.rs:189:10:189:10 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:189:10:189:10 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:189:10:189:12 | t.1 | semmle.label | t.1 | +| main.rs:189:10:189:12 | t.1 | semmle.label | t.1 | +| main.rs:201:9:201:9 | s | semmle.label | s | +| main.rs:201:9:201:9 | s | semmle.label | s | +| main.rs:201:13:201:22 | source(...) | semmle.label | source(...) | +| main.rs:201:13:201:22 | source(...) | semmle.label | source(...) | +| main.rs:202:14:202:14 | ... | semmle.label | ... | +| main.rs:202:14:202:14 | ... | semmle.label | ... | +| main.rs:203:14:203:14 | n | semmle.label | n | +| main.rs:203:14:203:14 | n | semmle.label | n | +| main.rs:206:11:206:11 | s | semmle.label | s | +| main.rs:206:11:206:11 | s | semmle.label | s | +| main.rs:210:13:210:22 | source(...) | semmle.label | source(...) | +| main.rs:210:13:210:22 | source(...) | semmle.label | source(...) | +| main.rs:211:17:211:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:211:17:211:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:211:40:211:40 | s | semmle.label | s | +| main.rs:211:40:211:40 | s | semmle.label | s | +| main.rs:212:9:212:9 | t | semmle.label | t | +| main.rs:212:9:212:9 | t | semmle.label | t | +| main.rs:212:13:212:24 | apply(...) | semmle.label | apply(...) | +| main.rs:212:13:212:24 | apply(...) | semmle.label | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | semmle.label | f [captured s] | +| main.rs:212:23:212:23 | f [captured s] | semmle.label | f [captured s] | +| main.rs:213:10:213:10 | t | semmle.label | t | +| main.rs:213:10:213:10 | t | semmle.label | t | +| main.rs:217:9:217:9 | s | semmle.label | s | +| main.rs:217:9:217:9 | s | semmle.label | s | +| main.rs:217:13:217:22 | source(...) | semmle.label | source(...) | +| main.rs:217:13:217:22 | source(...) | semmle.label | source(...) | +| main.rs:218:14:218:14 | ... | semmle.label | ... | +| main.rs:218:14:218:14 | ... | semmle.label | ... | +| main.rs:218:17:218:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:218:17:218:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:219:9:219:9 | t | semmle.label | t | +| main.rs:219:9:219:9 | t | semmle.label | t | +| main.rs:219:13:219:23 | apply(...) | semmle.label | apply(...) | +| main.rs:219:13:219:23 | apply(...) | semmle.label | apply(...) | +| main.rs:219:19:219:19 | s | semmle.label | s | +| main.rs:219:19:219:19 | s | semmle.label | s | +| main.rs:220:10:220:10 | t | semmle.label | t | +| main.rs:220:10:220:10 | t | semmle.label | t | +| main.rs:229:9:229:9 | s | semmle.label | s | +| main.rs:229:9:229:9 | s | semmle.label | s | +| main.rs:229:13:229:22 | source(...) | semmle.label | source(...) | +| main.rs:229:13:229:22 | source(...) | semmle.label | source(...) | +| main.rs:230:9:230:9 | t | semmle.label | t | +| main.rs:230:9:230:9 | t | semmle.label | t | +| main.rs:230:13:230:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | +| main.rs:230:13:230:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | +| main.rs:230:13:230:37 | await ... | semmle.label | await ... | +| main.rs:230:13:230:37 | await ... | semmle.label | await ... | +| main.rs:230:30:230:30 | s | semmle.label | s | +| main.rs:230:30:230:30 | s | semmle.label | s | +| main.rs:231:10:231:10 | t | semmle.label | t | +| main.rs:231:10:231:10 | t | semmle.label | t | +| main.rs:250:9:250:9 | s [D] | semmle.label | s [D] | +| main.rs:250:9:250:9 | s [D] | semmle.label | s [D] | +| main.rs:250:13:250:23 | enum_source | semmle.label | enum_source | +| main.rs:250:13:250:23 | enum_source | semmle.label | enum_source | +| main.rs:250:13:250:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | +| main.rs:250:13:250:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | +| main.rs:251:11:251:11 | s [D] | semmle.label | s [D] | +| main.rs:251:11:251:11 | s [D] | semmle.label | s [D] | +| main.rs:253:9:253:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:253:9:253:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:253:35:253:35 | i | semmle.label | i | +| main.rs:253:35:253:35 | i | semmle.label | i | +| main.rs:253:47:253:47 | i | semmle.label | i | +| main.rs:253:47:253:47 | i | semmle.label | i | +| main.rs:259:9:259:9 | s [C] | semmle.label | s [C] | +| main.rs:259:9:259:9 | s [C] | semmle.label | s [C] | +| main.rs:259:13:259:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | +| main.rs:259:13:259:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | +| main.rs:259:15:259:20 | source | semmle.label | source | +| main.rs:259:15:259:20 | source | semmle.label | source | +| main.rs:260:11:260:11 | s [C] | semmle.label | s [C] | +| main.rs:260:11:260:11 | s [C] | semmle.label | s [C] | +| main.rs:261:9:261:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:261:9:261:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:261:35:261:35 | i | semmle.label | i | +| main.rs:261:35:261:35 | i | semmle.label | i | +| main.rs:261:47:261:47 | i | semmle.label | i | +| main.rs:261:47:261:47 | i | semmle.label | i | +| main.rs:275:18:275:18 | ... | semmle.label | ... | +| main.rs:275:18:275:18 | ... | semmle.label | ... | +| main.rs:275:26:275:26 | a | semmle.label | a | +| main.rs:275:26:275:26 | a | semmle.label | a | +| main.rs:276:9:276:19 | pass_source | semmle.label | pass_source | +| main.rs:276:9:276:19 | pass_source | semmle.label | pass_source | +| main.rs:278:9:278:19 | pass_source | semmle.label | pass_source | +| main.rs:278:9:278:19 | pass_source | semmle.label | pass_source | +| main.rs:278:25:278:25 | ... | semmle.label | ... | +| main.rs:278:25:278:25 | ... | semmle.label | ... | +| main.rs:279:18:279:18 | a | semmle.label | a | +| main.rs:279:18:279:18 | a | semmle.label | a | +| main.rs:282:14:282:19 | ...: i64 | semmle.label | ...: i64 | +| main.rs:282:14:282:19 | ...: i64 | semmle.label | ...: i64 | +| main.rs:283:18:283:18 | a | semmle.label | a | +| main.rs:283:18:283:18 | a | semmle.label | a | +| main.rs:285:9:285:19 | pass_source | semmle.label | pass_source | +| main.rs:285:9:285:19 | pass_source | semmle.label | pass_source | +| main.rs:287:9:287:19 | pass_source | semmle.label | pass_source | +| main.rs:287:9:287:19 | pass_source | semmle.label | pass_source | +| main.rs:287:36:287:36 | ... | semmle.label | ... | +| main.rs:287:36:287:36 | ... | semmle.label | ... | +| main.rs:288:18:288:18 | a | semmle.label | a | +| main.rs:288:18:288:18 | a | semmle.label | a | +| main.rs:297:9:297:9 | s | semmle.label | s | +| main.rs:297:9:297:9 | s | semmle.label | s | +| main.rs:297:13:297:22 | source(...) | semmle.label | source(...) | +| main.rs:297:13:297:22 | source(...) | semmle.label | source(...) | +| main.rs:298:5:298:13 | enum_sink | semmle.label | enum_sink | +| main.rs:298:5:298:13 | enum_sink | semmle.label | enum_sink | +| main.rs:298:15:298:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:298:15:298:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:298:41:298:41 | s | semmle.label | s | +| main.rs:298:41:298:41 | s | semmle.label | s | +| main.rs:303:9:303:9 | s | semmle.label | s | +| main.rs:303:9:303:9 | s | semmle.label | s | +| main.rs:303:13:303:22 | source(...) | semmle.label | source(...) | +| main.rs:303:13:303:22 | source(...) | semmle.label | source(...) | +| main.rs:304:9:304:9 | e [D] | semmle.label | e [D] | +| main.rs:304:9:304:9 | e [D] | semmle.label | e [D] | +| main.rs:304:13:304:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:304:13:304:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:304:39:304:39 | s | semmle.label | s | +| main.rs:304:39:304:39 | s | semmle.label | s | +| main.rs:305:5:305:5 | e [D] | semmle.label | e [D] | +| main.rs:305:5:305:5 | e [D] | semmle.label | e [D] | +| main.rs:305:7:305:10 | sink | semmle.label | sink | +| main.rs:305:7:305:10 | sink | semmle.label | sink | +| main.rs:314:9:314:9 | s | semmle.label | s | +| main.rs:314:9:314:9 | s | semmle.label | s | +| main.rs:314:13:314:25 | simple_source | semmle.label | simple_source | +| main.rs:314:13:314:25 | simple_source | semmle.label | simple_source | +| main.rs:314:13:314:29 | simple_source(...) | semmle.label | simple_source(...) | +| main.rs:314:13:314:29 | simple_source(...) | semmle.label | simple_source(...) | +| main.rs:315:10:315:10 | s | semmle.label | s | +| main.rs:315:10:315:10 | s | semmle.label | s | +| main.rs:322:9:322:9 | s | semmle.label | s | +| main.rs:322:9:322:9 | s | semmle.label | s | +| main.rs:322:13:322:22 | source(...) | semmle.label | source(...) | +| main.rs:322:13:322:22 | source(...) | semmle.label | source(...) | +| main.rs:323:5:323:15 | simple_sink | semmle.label | simple_sink | +| main.rs:323:5:323:15 | simple_sink | semmle.label | simple_sink | +| main.rs:323:17:323:17 | s | semmle.label | s | +| main.rs:323:17:323:17 | s | semmle.label | s | +| main.rs:331:5:331:14 | arg_source | semmle.label | arg_source | +| main.rs:331:5:331:14 | arg_source | semmle.label | arg_source | +| main.rs:331:16:331:16 | [post] i | semmle.label | [post] i | +| main.rs:331:16:331:16 | [post] i | semmle.label | [post] i | +| main.rs:332:10:332:10 | i | semmle.label | i | +| main.rs:332:10:332:10 | i | semmle.label | i | +| main.rs:384:9:384:10 | x1 | semmle.label | x1 | +| main.rs:384:9:384:10 | x1 | semmle.label | x1 | +| main.rs:384:14:384:23 | source(...) | semmle.label | source(...) | +| main.rs:384:14:384:23 | source(...) | semmle.label | source(...) | +| main.rs:384:14:384:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:384:14:384:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:385:10:385:11 | x1 | semmle.label | x1 | +| main.rs:385:10:385:11 | x1 | semmle.label | x1 | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:388:17:388:26 | source(...) | semmle.label | source(...) | +| main.rs:388:17:388:26 | source(...) | semmle.label | source(...) | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:395:10:395:18 | x2.field1 | semmle.label | x2.field1 | +| main.rs:395:10:395:18 | x2.field1 | semmle.label | x2.field1 | +| main.rs:400:9:400:10 | x4 | semmle.label | x4 | +| main.rs:400:9:400:10 | x4 | semmle.label | x4 | +| main.rs:400:14:400:23 | source(...) | semmle.label | source(...) | +| main.rs:400:14:400:23 | source(...) | semmle.label | source(...) | +| main.rs:400:14:400:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:400:14:400:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:401:10:401:11 | x4 | semmle.label | x4 | +| main.rs:401:10:401:11 | x4 | semmle.label | x4 | +| main.rs:403:9:403:10 | x5 | semmle.label | x5 | +| main.rs:403:14:403:23 | source(...) | semmle.label | source(...) | +| main.rs:403:14:403:30 | ... .lt(...) | semmle.label | ... .lt(...) | +| main.rs:404:10:404:11 | x5 | semmle.label | x5 | +| main.rs:406:9:406:10 | x6 | semmle.label | x6 | +| main.rs:406:14:406:23 | source(...) | semmle.label | source(...) | +| main.rs:406:14:406:27 | ... < ... | semmle.label | ... < ... | +| main.rs:407:10:407:11 | x6 | semmle.label | x6 | subpaths -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | main.rs:212:13:212:24 | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | main.rs:212:13:212:24 | apply(...) | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | main.rs:219:13:219:23 | apply(...) | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | main.rs:219:13:219:23 | apply(...) | testFailures invalidSpecComponent #select | main.rs:16:10:16:20 | identity(...) | main.rs:15:13:15:21 | source(...) | main.rs:16:10:16:20 | identity(...) | $@ | main.rs:15:13:15:21 | source(...) | source(...) | | main.rs:16:10:16:20 | identity(...) | main.rs:15:13:15:21 | source(...) | main.rs:16:10:16:20 | identity(...) | $@ | main.rs:15:13:15:21 | source(...) | source(...) | | main.rs:26:10:26:18 | coerce(...) | main.rs:25:13:25:22 | source(...) | main.rs:26:10:26:18 | coerce(...) | $@ | main.rs:25:13:25:22 | source(...) | source(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | main.rs:40:13:40:21 | source(...) | main.rs:42:10:42:24 | get_var_pos(...) | $@ | main.rs:40:13:40:21 | source(...) | source(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | main.rs:40:13:40:21 | source(...) | main.rs:42:10:42:24 | get_var_pos(...) | $@ | main.rs:40:13:40:21 | source(...) | source(...) | -| main.rs:57:33:57:33 | i | main.rs:53:13:53:21 | source(...) | main.rs:57:33:57:33 | i | $@ | main.rs:53:13:53:21 | source(...) | source(...) | -| main.rs:57:33:57:33 | i | main.rs:53:13:53:21 | source(...) | main.rs:57:33:57:33 | i | $@ | main.rs:53:13:53:21 | source(...) | source(...) | -| main.rs:74:10:74:26 | get_var_field(...) | main.rs:72:13:72:21 | source(...) | main.rs:74:10:74:26 | get_var_field(...) | $@ | main.rs:72:13:72:21 | source(...) | source(...) | -| main.rs:74:10:74:26 | get_var_field(...) | main.rs:72:13:72:21 | source(...) | main.rs:74:10:74:26 | get_var_field(...) | $@ | main.rs:72:13:72:21 | source(...) | source(...) | -| main.rs:89:47:89:47 | i | main.rs:85:13:85:21 | source(...) | main.rs:89:47:89:47 | i | $@ | main.rs:85:13:85:21 | source(...) | source(...) | -| main.rs:89:47:89:47 | i | main.rs:85:13:85:21 | source(...) | main.rs:89:47:89:47 | i | $@ | main.rs:85:13:85:21 | source(...) | source(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | main.rs:104:13:104:21 | source(...) | main.rs:109:10:109:36 | get_struct_field(...) | $@ | main.rs:104:13:104:21 | source(...) | source(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | main.rs:104:13:104:21 | source(...) | main.rs:109:10:109:36 | get_struct_field(...) | $@ | main.rs:104:13:104:21 | source(...) | source(...) | -| main.rs:129:10:129:25 | my_struct.field2 | main.rs:126:13:126:21 | source(...) | main.rs:129:10:129:25 | my_struct.field2 | $@ | main.rs:126:13:126:21 | source(...) | source(...) | -| main.rs:129:10:129:25 | my_struct.field2 | main.rs:126:13:126:21 | source(...) | main.rs:129:10:129:25 | my_struct.field2 | $@ | main.rs:126:13:126:21 | source(...) | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | main.rs:138:13:138:21 | source(...) | main.rs:139:10:139:31 | get_array_element(...) | $@ | main.rs:138:13:138:21 | source(...) | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | main.rs:138:13:138:21 | source(...) | main.rs:139:10:139:31 | get_array_element(...) | $@ | main.rs:138:13:138:21 | source(...) | source(...) | -| main.rs:150:10:150:15 | arr[0] | main.rs:148:13:148:21 | source(...) | main.rs:150:10:150:15 | arr[0] | $@ | main.rs:148:13:148:21 | source(...) | source(...) | -| main.rs:150:10:150:15 | arr[0] | main.rs:148:13:148:21 | source(...) | main.rs:150:10:150:15 | arr[0] | $@ | main.rs:148:13:148:21 | source(...) | source(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:29 | get_tuple_element(...) | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:29 | get_tuple_element(...) | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) | -| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) | -| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) | -| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) | -| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) | -| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) | -| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) | -| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) | -| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) | -| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) | -| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source | -| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source | -| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source | -| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source | -| main.rs:261:26:261:26 | a | main.rs:262:9:262:19 | pass_source | main.rs:261:26:261:26 | a | $@ | main.rs:262:9:262:19 | pass_source | pass_source | -| main.rs:261:26:261:26 | a | main.rs:262:9:262:19 | pass_source | main.rs:261:26:261:26 | a | $@ | main.rs:262:9:262:19 | pass_source | pass_source | -| main.rs:265:18:265:18 | a | main.rs:264:9:264:19 | pass_source | main.rs:265:18:265:18 | a | $@ | main.rs:264:9:264:19 | pass_source | pass_source | -| main.rs:265:18:265:18 | a | main.rs:264:9:264:19 | pass_source | main.rs:265:18:265:18 | a | $@ | main.rs:264:9:264:19 | pass_source | pass_source | -| main.rs:269:18:269:18 | a | main.rs:271:9:271:19 | pass_source | main.rs:269:18:269:18 | a | $@ | main.rs:271:9:271:19 | pass_source | pass_source | -| main.rs:269:18:269:18 | a | main.rs:271:9:271:19 | pass_source | main.rs:269:18:269:18 | a | $@ | main.rs:271:9:271:19 | pass_source | pass_source | -| main.rs:274:18:274:18 | a | main.rs:273:9:273:19 | pass_source | main.rs:274:18:274:18 | a | $@ | main.rs:273:9:273:19 | pass_source | pass_source | -| main.rs:274:18:274:18 | a | main.rs:273:9:273:19 | pass_source | main.rs:274:18:274:18 | a | $@ | main.rs:273:9:273:19 | pass_source | pass_source | -| main.rs:284:5:284:13 | enum_sink | main.rs:283:13:283:22 | source(...) | main.rs:284:5:284:13 | enum_sink | $@ | main.rs:283:13:283:22 | source(...) | source(...) | -| main.rs:284:5:284:13 | enum_sink | main.rs:283:13:283:22 | source(...) | main.rs:284:5:284:13 | enum_sink | $@ | main.rs:283:13:283:22 | source(...) | source(...) | -| main.rs:291:7:291:10 | sink | main.rs:289:13:289:22 | source(...) | main.rs:291:7:291:10 | sink | $@ | main.rs:289:13:289:22 | source(...) | source(...) | -| main.rs:291:7:291:10 | sink | main.rs:289:13:289:22 | source(...) | main.rs:291:7:291:10 | sink | $@ | main.rs:289:13:289:22 | source(...) | source(...) | -| main.rs:301:10:301:10 | s | main.rs:300:13:300:25 | simple_source | main.rs:301:10:301:10 | s | $@ | main.rs:300:13:300:25 | simple_source | simple_source | -| main.rs:301:10:301:10 | s | main.rs:300:13:300:25 | simple_source | main.rs:301:10:301:10 | s | $@ | main.rs:300:13:300:25 | simple_source | simple_source | -| main.rs:309:5:309:15 | simple_sink | main.rs:308:13:308:22 | source(...) | main.rs:309:5:309:15 | simple_sink | $@ | main.rs:308:13:308:22 | source(...) | source(...) | -| main.rs:309:5:309:15 | simple_sink | main.rs:308:13:308:22 | source(...) | main.rs:309:5:309:15 | simple_sink | $@ | main.rs:308:13:308:22 | source(...) | source(...) | -| main.rs:318:10:318:10 | i | main.rs:317:5:317:14 | arg_source | main.rs:318:10:318:10 | i | $@ | main.rs:317:5:317:14 | arg_source | arg_source | -| main.rs:318:10:318:10 | i | main.rs:317:5:317:14 | arg_source | main.rs:318:10:318:10 | i | $@ | main.rs:317:5:317:14 | arg_source | arg_source | -| main.rs:371:10:371:11 | x1 | main.rs:370:14:370:23 | source(...) | main.rs:371:10:371:11 | x1 | $@ | main.rs:370:14:370:23 | source(...) | source(...) | -| main.rs:371:10:371:11 | x1 | main.rs:370:14:370:23 | source(...) | main.rs:371:10:371:11 | x1 | $@ | main.rs:370:14:370:23 | source(...) | source(...) | -| main.rs:381:10:381:18 | x2.field1 | main.rs:374:17:374:26 | source(...) | main.rs:381:10:381:18 | x2.field1 | $@ | main.rs:374:17:374:26 | source(...) | source(...) | -| main.rs:381:10:381:18 | x2.field1 | main.rs:374:17:374:26 | source(...) | main.rs:381:10:381:18 | x2.field1 | $@ | main.rs:374:17:374:26 | source(...) | source(...) | -| main.rs:387:10:387:11 | x4 | main.rs:386:14:386:23 | source(...) | main.rs:387:10:387:11 | x4 | $@ | main.rs:386:14:386:23 | source(...) | source(...) | -| main.rs:387:10:387:11 | x4 | main.rs:386:14:386:23 | source(...) | main.rs:387:10:387:11 | x4 | $@ | main.rs:386:14:386:23 | source(...) | source(...) | -| main.rs:390:10:390:11 | x5 | main.rs:389:14:389:23 | source(...) | main.rs:390:10:390:11 | x5 | $@ | main.rs:389:14:389:23 | source(...) | source(...) | -| main.rs:393:10:393:11 | x6 | main.rs:392:14:392:23 | source(...) | main.rs:393:10:393:11 | x6 | $@ | main.rs:392:14:392:23 | source(...) | source(...) | +| main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | +| main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | +| main.rs:45:10:45:19 | snd(...) | main.rs:44:14:44:23 | source(...) | main.rs:45:10:45:19 | snd(...) | $@ | main.rs:44:14:44:23 | source(...) | source(...) | +| main.rs:45:10:45:19 | snd(...) | main.rs:44:14:44:23 | source(...) | main.rs:45:10:45:19 | snd(...) | $@ | main.rs:44:14:44:23 | source(...) | source(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | +| main.rs:71:33:71:33 | i | main.rs:67:13:67:21 | source(...) | main.rs:71:33:71:33 | i | $@ | main.rs:67:13:67:21 | source(...) | source(...) | +| main.rs:71:33:71:33 | i | main.rs:67:13:67:21 | source(...) | main.rs:71:33:71:33 | i | $@ | main.rs:67:13:67:21 | source(...) | source(...) | +| main.rs:88:10:88:26 | get_var_field(...) | main.rs:86:13:86:21 | source(...) | main.rs:88:10:88:26 | get_var_field(...) | $@ | main.rs:86:13:86:21 | source(...) | source(...) | +| main.rs:88:10:88:26 | get_var_field(...) | main.rs:86:13:86:21 | source(...) | main.rs:88:10:88:26 | get_var_field(...) | $@ | main.rs:86:13:86:21 | source(...) | source(...) | +| main.rs:103:47:103:47 | i | main.rs:99:13:99:21 | source(...) | main.rs:103:47:103:47 | i | $@ | main.rs:99:13:99:21 | source(...) | source(...) | +| main.rs:103:47:103:47 | i | main.rs:99:13:99:21 | source(...) | main.rs:103:47:103:47 | i | $@ | main.rs:99:13:99:21 | source(...) | source(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | main.rs:118:13:118:21 | source(...) | main.rs:123:10:123:36 | get_struct_field(...) | $@ | main.rs:118:13:118:21 | source(...) | source(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | main.rs:118:13:118:21 | source(...) | main.rs:123:10:123:36 | get_struct_field(...) | $@ | main.rs:118:13:118:21 | source(...) | source(...) | +| main.rs:143:10:143:25 | my_struct.field2 | main.rs:140:13:140:21 | source(...) | main.rs:143:10:143:25 | my_struct.field2 | $@ | main.rs:140:13:140:21 | source(...) | source(...) | +| main.rs:143:10:143:25 | my_struct.field2 | main.rs:140:13:140:21 | source(...) | main.rs:143:10:143:25 | my_struct.field2 | $@ | main.rs:140:13:140:21 | source(...) | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | main.rs:152:13:152:21 | source(...) | main.rs:153:10:153:31 | get_array_element(...) | $@ | main.rs:152:13:152:21 | source(...) | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | main.rs:152:13:152:21 | source(...) | main.rs:153:10:153:31 | get_array_element(...) | $@ | main.rs:152:13:152:21 | source(...) | source(...) | +| main.rs:164:10:164:15 | arr[0] | main.rs:162:13:162:21 | source(...) | main.rs:164:10:164:15 | arr[0] | $@ | main.rs:162:13:162:21 | source(...) | source(...) | +| main.rs:164:10:164:15 | arr[0] | main.rs:162:13:162:21 | source(...) | main.rs:164:10:164:15 | arr[0] | $@ | main.rs:162:13:162:21 | source(...) | source(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | main.rs:173:13:173:22 | source(...) | main.rs:175:10:175:29 | get_tuple_element(...) | $@ | main.rs:173:13:173:22 | source(...) | source(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | main.rs:173:13:173:22 | source(...) | main.rs:175:10:175:29 | get_tuple_element(...) | $@ | main.rs:173:13:173:22 | source(...) | source(...) | +| main.rs:189:10:189:12 | t.1 | main.rs:186:13:186:22 | source(...) | main.rs:189:10:189:12 | t.1 | $@ | main.rs:186:13:186:22 | source(...) | source(...) | +| main.rs:189:10:189:12 | t.1 | main.rs:186:13:186:22 | source(...) | main.rs:189:10:189:12 | t.1 | $@ | main.rs:186:13:186:22 | source(...) | source(...) | +| main.rs:203:14:203:14 | n | main.rs:201:13:201:22 | source(...) | main.rs:203:14:203:14 | n | $@ | main.rs:201:13:201:22 | source(...) | source(...) | +| main.rs:203:14:203:14 | n | main.rs:201:13:201:22 | source(...) | main.rs:203:14:203:14 | n | $@ | main.rs:201:13:201:22 | source(...) | source(...) | +| main.rs:213:10:213:10 | t | main.rs:210:13:210:22 | source(...) | main.rs:213:10:213:10 | t | $@ | main.rs:210:13:210:22 | source(...) | source(...) | +| main.rs:213:10:213:10 | t | main.rs:210:13:210:22 | source(...) | main.rs:213:10:213:10 | t | $@ | main.rs:210:13:210:22 | source(...) | source(...) | +| main.rs:220:10:220:10 | t | main.rs:217:13:217:22 | source(...) | main.rs:220:10:220:10 | t | $@ | main.rs:217:13:217:22 | source(...) | source(...) | +| main.rs:220:10:220:10 | t | main.rs:217:13:217:22 | source(...) | main.rs:220:10:220:10 | t | $@ | main.rs:217:13:217:22 | source(...) | source(...) | +| main.rs:231:10:231:10 | t | main.rs:229:13:229:22 | source(...) | main.rs:231:10:231:10 | t | $@ | main.rs:229:13:229:22 | source(...) | source(...) | +| main.rs:231:10:231:10 | t | main.rs:229:13:229:22 | source(...) | main.rs:231:10:231:10 | t | $@ | main.rs:229:13:229:22 | source(...) | source(...) | +| main.rs:253:47:253:47 | i | main.rs:250:13:250:23 | enum_source | main.rs:253:47:253:47 | i | $@ | main.rs:250:13:250:23 | enum_source | enum_source | +| main.rs:253:47:253:47 | i | main.rs:250:13:250:23 | enum_source | main.rs:253:47:253:47 | i | $@ | main.rs:250:13:250:23 | enum_source | enum_source | +| main.rs:261:47:261:47 | i | main.rs:259:15:259:20 | source | main.rs:261:47:261:47 | i | $@ | main.rs:259:15:259:20 | source | source | +| main.rs:261:47:261:47 | i | main.rs:259:15:259:20 | source | main.rs:261:47:261:47 | i | $@ | main.rs:259:15:259:20 | source | source | +| main.rs:275:26:275:26 | a | main.rs:276:9:276:19 | pass_source | main.rs:275:26:275:26 | a | $@ | main.rs:276:9:276:19 | pass_source | pass_source | +| main.rs:275:26:275:26 | a | main.rs:276:9:276:19 | pass_source | main.rs:275:26:275:26 | a | $@ | main.rs:276:9:276:19 | pass_source | pass_source | +| main.rs:279:18:279:18 | a | main.rs:278:9:278:19 | pass_source | main.rs:279:18:279:18 | a | $@ | main.rs:278:9:278:19 | pass_source | pass_source | +| main.rs:279:18:279:18 | a | main.rs:278:9:278:19 | pass_source | main.rs:279:18:279:18 | a | $@ | main.rs:278:9:278:19 | pass_source | pass_source | +| main.rs:283:18:283:18 | a | main.rs:285:9:285:19 | pass_source | main.rs:283:18:283:18 | a | $@ | main.rs:285:9:285:19 | pass_source | pass_source | +| main.rs:283:18:283:18 | a | main.rs:285:9:285:19 | pass_source | main.rs:283:18:283:18 | a | $@ | main.rs:285:9:285:19 | pass_source | pass_source | +| main.rs:288:18:288:18 | a | main.rs:287:9:287:19 | pass_source | main.rs:288:18:288:18 | a | $@ | main.rs:287:9:287:19 | pass_source | pass_source | +| main.rs:288:18:288:18 | a | main.rs:287:9:287:19 | pass_source | main.rs:288:18:288:18 | a | $@ | main.rs:287:9:287:19 | pass_source | pass_source | +| main.rs:298:5:298:13 | enum_sink | main.rs:297:13:297:22 | source(...) | main.rs:298:5:298:13 | enum_sink | $@ | main.rs:297:13:297:22 | source(...) | source(...) | +| main.rs:298:5:298:13 | enum_sink | main.rs:297:13:297:22 | source(...) | main.rs:298:5:298:13 | enum_sink | $@ | main.rs:297:13:297:22 | source(...) | source(...) | +| main.rs:305:7:305:10 | sink | main.rs:303:13:303:22 | source(...) | main.rs:305:7:305:10 | sink | $@ | main.rs:303:13:303:22 | source(...) | source(...) | +| main.rs:305:7:305:10 | sink | main.rs:303:13:303:22 | source(...) | main.rs:305:7:305:10 | sink | $@ | main.rs:303:13:303:22 | source(...) | source(...) | +| main.rs:315:10:315:10 | s | main.rs:314:13:314:25 | simple_source | main.rs:315:10:315:10 | s | $@ | main.rs:314:13:314:25 | simple_source | simple_source | +| main.rs:315:10:315:10 | s | main.rs:314:13:314:25 | simple_source | main.rs:315:10:315:10 | s | $@ | main.rs:314:13:314:25 | simple_source | simple_source | +| main.rs:323:5:323:15 | simple_sink | main.rs:322:13:322:22 | source(...) | main.rs:323:5:323:15 | simple_sink | $@ | main.rs:322:13:322:22 | source(...) | source(...) | +| main.rs:323:5:323:15 | simple_sink | main.rs:322:13:322:22 | source(...) | main.rs:323:5:323:15 | simple_sink | $@ | main.rs:322:13:322:22 | source(...) | source(...) | +| main.rs:332:10:332:10 | i | main.rs:331:5:331:14 | arg_source | main.rs:332:10:332:10 | i | $@ | main.rs:331:5:331:14 | arg_source | arg_source | +| main.rs:332:10:332:10 | i | main.rs:331:5:331:14 | arg_source | main.rs:332:10:332:10 | i | $@ | main.rs:331:5:331:14 | arg_source | arg_source | +| main.rs:385:10:385:11 | x1 | main.rs:384:14:384:23 | source(...) | main.rs:385:10:385:11 | x1 | $@ | main.rs:384:14:384:23 | source(...) | source(...) | +| main.rs:385:10:385:11 | x1 | main.rs:384:14:384:23 | source(...) | main.rs:385:10:385:11 | x1 | $@ | main.rs:384:14:384:23 | source(...) | source(...) | +| main.rs:395:10:395:18 | x2.field1 | main.rs:388:17:388:26 | source(...) | main.rs:395:10:395:18 | x2.field1 | $@ | main.rs:388:17:388:26 | source(...) | source(...) | +| main.rs:395:10:395:18 | x2.field1 | main.rs:388:17:388:26 | source(...) | main.rs:395:10:395:18 | x2.field1 | $@ | main.rs:388:17:388:26 | source(...) | source(...) | +| main.rs:401:10:401:11 | x4 | main.rs:400:14:400:23 | source(...) | main.rs:401:10:401:11 | x4 | $@ | main.rs:400:14:400:23 | source(...) | source(...) | +| main.rs:401:10:401:11 | x4 | main.rs:400:14:400:23 | source(...) | main.rs:401:10:401:11 | x4 | $@ | main.rs:400:14:400:23 | source(...) | source(...) | +| main.rs:404:10:404:11 | x5 | main.rs:403:14:403:23 | source(...) | main.rs:404:10:404:11 | x5 | $@ | main.rs:403:14:403:23 | source(...) | source(...) | +| main.rs:407:10:407:11 | x6 | main.rs:406:14:406:23 | source(...) | main.rs:407:10:407:11 | x6 | $@ | main.rs:406:14:406:23 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/models/models.ext.yml b/rust/ql/test/library-tests/dataflow/models/models.ext.yml index 52342e88022..1bb53921c73 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.ext.yml +++ b/rust/ql/test/library-tests/dataflow/models/models.ext.yml @@ -20,6 +20,9 @@ extensions: extensible: summaryModel data: - ["main::coerce", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["main::snd", "Argument[1]", "ReturnValue", "value", "manual"] + # Wrong generated model which should not take effect due to the manual model above + - ["main::snd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["main::get_var_pos", "Argument[0].Field[main::MyPosEnum::A(0)]", "ReturnValue", "value", "manual"] - ["main::set_var_pos", "Argument[0]", "ReturnValue.Field[main::MyPosEnum::B(0)]", "value", "manual"] - ["main::get_var_field", "Argument[0].Field[main::MyFieldEnum::C::field_c]", "ReturnValue", "value", "manual"] From 1b70111dd256961bec3191ea04a1077bc4ad34fe Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 15 Dec 2025 14:25:49 +0100 Subject: [PATCH 155/194] Rust: Don't apply generated models for functions that have a manual model --- .../rust/dataflow/internal/ModelsAsData.qll | 9 +++++--- .../library-tests/dataflow/models/main.rs | 2 +- .../dataflow/models/models.expected | 23 +++---------------- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index a680f20d5f6..12dec7d5bd0 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -123,12 +123,15 @@ private class SummarizedCallableFromModel extends SummarizedCallable::Range { summaryModel(path, _, _, _, provenance, _) } + private predicate hasManualModel() { summaryModel(path, _, _, _, "manual", _) } + override predicate propagatesFlow( string input, string output, boolean preservesValue, string model ) { - exists(string kind, QlBuiltins::ExtensionId madId | - summaryModel(path, input, output, kind, _, madId) and - model = "MaD:" + madId.toString() + exists(string kind, string provenance, QlBuiltins::ExtensionId madId | + summaryModel(path, input, output, kind, provenance, madId) and + model = "MaD:" + madId.toString() and + (provenance = "manual" or not this.hasManualModel()) | kind = "value" and preservesValue = true diff --git a/rust/ql/test/library-tests/dataflow/models/main.rs b/rust/ql/test/library-tests/dataflow/models/main.rs index 66f108d1624..7395205a7fc 100644 --- a/rust/ql/test/library-tests/dataflow/models/main.rs +++ b/rust/ql/test/library-tests/dataflow/models/main.rs @@ -42,7 +42,7 @@ fn test_snd() { sink(snd(0, s1)); // $ hasValueFlow=99 let s2 = source(88); - sink(snd(s2, 0)); // $ SPURIOUS: hasValueFlow=88 + sink(snd(s2, 0)); } // has a flow model diff --git a/rust/ql/test/library-tests/dataflow/models/models.expected b/rust/ql/test/library-tests/dataflow/models/models.expected index 734e6166dbe..d2d5ef92255 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.expected +++ b/rust/ql/test/library-tests/dataflow/models/models.expected @@ -24,8 +24,7 @@ models | 23 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value | | 24 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value | | 25 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value | -| 26 | Summary: main::snd; Argument[0]; ReturnValue; value | -| 27 | Summary: main::snd; Argument[1]; ReturnValue; value | +| 26 | Summary: main::snd; Argument[1]; ReturnValue; value | edges | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | @@ -40,14 +39,8 @@ edges | main.rs:41:9:41:10 | s1 | main.rs:42:17:42:18 | s1 | provenance | | | main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | | main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | -| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:27 | -| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:27 | -| main.rs:44:9:44:10 | s2 | main.rs:45:14:45:15 | s2 | provenance | | -| main.rs:44:9:44:10 | s2 | main.rs:45:14:45:15 | s2 | provenance | | -| main.rs:44:14:44:23 | source(...) | main.rs:44:9:44:10 | s2 | provenance | | -| main.rs:44:14:44:23 | source(...) | main.rs:44:9:44:10 | s2 | provenance | | -| main.rs:45:14:45:15 | s2 | main.rs:45:10:45:19 | snd(...) | provenance | MaD:26 | -| main.rs:45:14:45:15 | s2 | main.rs:45:10:45:19 | snd(...) | provenance | MaD:26 | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:26 | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:26 | | main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | | main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | | main.rs:54:13:54:21 | source(...) | main.rs:54:9:54:9 | s | provenance | | @@ -347,14 +340,6 @@ nodes | main.rs:42:10:42:19 | snd(...) | semmle.label | snd(...) | | main.rs:42:17:42:18 | s1 | semmle.label | s1 | | main.rs:42:17:42:18 | s1 | semmle.label | s1 | -| main.rs:44:9:44:10 | s2 | semmle.label | s2 | -| main.rs:44:9:44:10 | s2 | semmle.label | s2 | -| main.rs:44:14:44:23 | source(...) | semmle.label | source(...) | -| main.rs:44:14:44:23 | source(...) | semmle.label | source(...) | -| main.rs:45:10:45:19 | snd(...) | semmle.label | snd(...) | -| main.rs:45:10:45:19 | snd(...) | semmle.label | snd(...) | -| main.rs:45:14:45:15 | s2 | semmle.label | s2 | -| main.rs:45:14:45:15 | s2 | semmle.label | s2 | | main.rs:54:9:54:9 | s | semmle.label | s | | main.rs:54:9:54:9 | s | semmle.label | s | | main.rs:54:13:54:21 | source(...) | semmle.label | source(...) | @@ -700,8 +685,6 @@ invalidSpecComponent | main.rs:26:10:26:18 | coerce(...) | main.rs:25:13:25:22 | source(...) | main.rs:26:10:26:18 | coerce(...) | $@ | main.rs:25:13:25:22 | source(...) | source(...) | | main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | | main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | -| main.rs:45:10:45:19 | snd(...) | main.rs:44:14:44:23 | source(...) | main.rs:45:10:45:19 | snd(...) | $@ | main.rs:44:14:44:23 | source(...) | source(...) | -| main.rs:45:10:45:19 | snd(...) | main.rs:44:14:44:23 | source(...) | main.rs:45:10:45:19 | snd(...) | $@ | main.rs:44:14:44:23 | source(...) | source(...) | | main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | | main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | | main.rs:71:33:71:33 | i | main.rs:67:13:67:21 | source(...) | main.rs:71:33:71:33 | i | $@ | main.rs:67:13:67:21 | source(...) | source(...) | From 294de742a46b807416d37afb63f3f38180850f84 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 15 Dec 2025 17:00:50 +0100 Subject: [PATCH 156/194] Swift: Update to Swift 6.2.3 --- swift/extractor/infra/SwiftTagTraits.h | 1 + swift/third_party/load.bzl | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 806ad0a5ffd..f7825043edd 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -287,6 +287,7 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::BuiltinNonDefaultDistributedActorStorageType, void) // Does not appear in AST/SIL, only used during IRGen MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) MAP(swift::BuiltinUnboundGenericType, void) // Only used during type resolution + MAP(swift::BuiltinImplicitActorType, void) // SIL type MAP(swift::TupleType, TupleTypeTag) MAP(swift::ReferenceStorageType, ReferenceStorageTypeTag) MAP(swift::WeakStorageType, WeakStorageTypeTag) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index d19345a1880..5881227d2fb 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,6 +5,10 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main + "swift-prebuilt-macOS-swift-6.2.3-RELEASE-137.tar.zst": "a96536acde3a054a2528feedbb6ffa71fb7ffa6b68f0838f2f007e7474fc0b84", + "swift-prebuilt-Linux-swift-6.2.3-RELEASE-137.tar.zst": "ad8d6611bfd3c749435e44fa25a300082efb308c21c5da1305c65bd2c5d8fec4", + "resource-dir-macOS-swift-6.2.3-RELEASE-137.zip": "e358d99dab2bf07d70a06d8d4119c05ee40e33cdc659ad787595dc56cb405755", + "resource-dir-Linux-swift-6.2.3-RELEASE-137.zip": "ab0279edb35706dbd5c238f6ea29b2a275bb837e1d6485e150801551c7f0740e", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From f6e3e192ca0dd019981969dcdc1c191d54c2fad0 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 15 Dec 2025 15:18:34 -0600 Subject: [PATCH 157/194] Clarify Path.Combine call behavior in documentation Updated the name and description to clarify the issue with Path.Combine. --- csharp/ql/src/Bad Practices/PathCombine.ql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index 24d358e83aa..0a734d45f3c 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -1,6 +1,7 @@ /** - * @name Call to System.IO.Path.Combine - * @description Finds calls to System.IO.Path's Combine method + * @name Calls to System.IO.Path.Combine may silently drop its earlier arguments + * @description Path.Combine may silently drop its earlier arguments + * if its later arguments are absolute paths. * @kind problem * @problem.severity recommendation * @precision very-high From bd9b657e91e07aa4f900c9b94deb0c4624424310 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 15 Dec 2025 15:20:52 -0600 Subject: [PATCH 158/194] Update csharp/ql/src/Bad Practices/PathCombine.ql Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- csharp/ql/src/Bad Practices/PathCombine.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index 0a734d45f3c..24f3ecc8e23 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -1,6 +1,6 @@ /** * @name Calls to System.IO.Path.Combine may silently drop its earlier arguments - * @description Path.Combine may silently drop its earlier arguments + * @description Path.Combine may silently drop its earlier arguments * if its later arguments are absolute paths. * @kind problem * @problem.severity recommendation From 477e1cd96ca139cd45afb2dbce32af869ee28d7e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 15 Dec 2025 15:40:13 +0100 Subject: [PATCH 159/194] Rust: Fix manual model for PathBuf::as_path --- rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 2 ++ rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml | 2 +- .../library-tests/dataflow/sources/file/InlineFlow.expected | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 0cdc4cc0af2..0e98723fd75 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -96,6 +96,8 @@ extensions: - ["<_ as core::iter::traits::iterator::Iterator>::take", "Argument[self]", "ReturnValue", "taint", "manual"] # Pin - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] + # This model is not precise, but helps in cases the a `Pin` is implicitly dereferenced. + - ["::new", "Argument[0].Reference", "ReturnValue", "value", "manual"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] - ["::into_inner", "Argument[0].Field[core::pin::Pin::pointer]", "ReturnValue", "value", "manual"] - ["::into_inner_unchecked", "Argument[0].Field[core::pin::Pin::pointer]", "ReturnValue", "value", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml index 076cea745fb..8be4fdc05bf 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml @@ -58,7 +58,7 @@ extensions: data: - ["std::fs::canonicalize", "Argument[0].OptionalStep[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["std::fs::canonicalize", "Argument[0].OptionalBarrier[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["::as_path", "Argument[Self]", "ReturnValue.Reference", "value", "manual"] + - ["::as_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "manual"] - ["::as_mut_os_string", "Argument[Self].Reference", "ReturnValue.Reference", "value", "manual"] - ["::into_os_string", "Argument[Self]", "ReturnValue", "value", "manual"] - ["::into_boxed_path", "Argument[Self]", "ReturnValue.Reference", "value", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index fea4ea7fbde..6f012e837a9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -35,7 +35,7 @@ models | 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | | 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | | 36 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 37 | Summary: ::as_path; Argument[self]; ReturnValue; value | +| 37 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | From 8c4b81ebc7522d8735d9c06b73df622eea771152 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 10:19:01 +0100 Subject: [PATCH 160/194] Rust: Fix typo in comment Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 0e98723fd75..5684151a37a 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -96,7 +96,7 @@ extensions: - ["<_ as core::iter::traits::iterator::Iterator>::take", "Argument[self]", "ReturnValue", "taint", "manual"] # Pin - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] - # This model is not precise, but helps in cases the a `Pin` is implicitly dereferenced. + # This model is not precise, but helps in cases where a `Pin` is implicitly dereferenced. - ["::new", "Argument[0].Reference", "ReturnValue", "value", "manual"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] - ["::into_inner", "Argument[0].Field[core::pin::Pin::pointer]", "ReturnValue", "value", "manual"] From 7df1d7a13f3f8455a2da87fc5a594bc078a506b1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 16 Dec 2025 10:21:08 +0100 Subject: [PATCH 161/194] C#: Address review comment. --- .../all-platforms/autobuild_slnx/autobuild_slnx.slnx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx index 39f589f13f1..27d7235ae8b 100644 --- a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx @@ -1,3 +1,5 @@ + From 0ea06aca0622c988b8ec1bfcd3f17cba35bd2bc1 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 12:32:40 +0100 Subject: [PATCH 162/194] Rust: Introduce more functions in Axum test --- .../web_frameworks/InlineFlow.expected | 156 +++++++++--------- .../web_frameworks/TaintSources.expected | 128 +++++++------- .../dataflow/sources/web_frameworks/test.rs | 80 ++++----- 3 files changed, 172 insertions(+), 192 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected index 8777ff626eb..dce59fc29b7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected @@ -20,36 +20,36 @@ edges | test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | provenance | | | test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | provenance | | | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | provenance | | -| test.rs:98:9:98:31 | ...: ...::Path::<...> | test.rs:100:17:100:20 | path | provenance | | -| test.rs:100:13:100:13 | a | test.rs:101:14:101:14 | a | provenance | | -| test.rs:100:13:100:13 | a | test.rs:102:14:102:14 | a | provenance | | -| test.rs:100:13:100:13 | a | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() | provenance | MaD:6 | -| test.rs:100:17:100:33 | path.into_inner() | test.rs:100:13:100:13 | a | provenance | | -| test.rs:101:14:101:14 | a | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:8 | -| test.rs:102:14:102:14 | a | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:7 | -| test.rs:109:9:109:41 | ...: ...::Path::<...> | test.rs:111:22:111:25 | path | provenance | | -| test.rs:111:13:111:18 | TuplePat | test.rs:113:14:113:14 | a | provenance | | -| test.rs:111:13:111:18 | TuplePat | test.rs:114:14:114:14 | b | provenance | | -| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() | provenance | MaD:6 | -| test.rs:111:22:111:38 | path.into_inner() | test.rs:111:13:111:18 | TuplePat | provenance | | -| test.rs:120:9:120:41 | ...: ...::Query::<...> | test.rs:122:14:122:14 | a | provenance | | -| test.rs:127:5:127:20 | to | test.rs:129:9:129:31 | ...: ...::Path::<...> | provenance | Src:MaD:4 | -| test.rs:129:9:129:31 | ...: ...::Path::<...> | test.rs:131:17:131:20 | path | provenance | | -| test.rs:131:13:131:13 | a | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() | provenance | MaD:6 | -| test.rs:131:17:131:33 | path.into_inner() | test.rs:131:13:131:13 | a | provenance | | -| test.rs:139:41:139:42 | to | test.rs:98:9:98:31 | ...: ...::Path::<...> | provenance | Src:MaD:5 | -| test.rs:140:45:140:46 | to | test.rs:109:9:109:41 | ...: ...::Path::<...> | provenance | Src:MaD:5 | -| test.rs:141:41:141:42 | to | test.rs:120:9:120:41 | ...: ...::Query::<...> | provenance | Src:MaD:5 | -| test.rs:242:33:242:35 | map | test.rs:242:38:242:46 | ...: String | provenance | Src:MaD:2 | -| test.rs:242:38:242:46 | ...: String | test.rs:244:18:244:18 | a | provenance | | -| test.rs:250:46:250:49 | then | test.rs:251:25:251:33 | ...: String | provenance | Src:MaD:3 | -| test.rs:251:25:251:33 | ...: String | test.rs:252:22:252:22 | a | provenance | | -| test.rs:259:50:259:57 | and_then | test.rs:260:26:260:32 | ...: u64 | provenance | Src:MaD:1 | -| test.rs:260:26:260:32 | ...: u64 | test.rs:263:22:263:23 | id | provenance | | -| test.rs:272:75:272:77 | map | test.rs:273:15:273:23 | ...: String | provenance | Src:MaD:2 | -| test.rs:273:15:273:23 | ...: String | test.rs:275:22:275:22 | a | provenance | | +| test.rs:97:33:97:55 | ...: ...::Path::<...> | test.rs:98:17:98:20 | path | provenance | | +| test.rs:98:13:98:13 | a | test.rs:99:14:99:14 | a | provenance | | +| test.rs:98:13:98:13 | a | test.rs:100:14:100:14 | a | provenance | | +| test.rs:98:13:98:13 | a | test.rs:101:14:101:14 | a | provenance | | +| test.rs:98:17:98:20 | path | test.rs:98:17:98:33 | path.into_inner() | provenance | MaD:6 | +| test.rs:98:17:98:33 | path.into_inner() | test.rs:98:13:98:13 | a | provenance | | +| test.rs:99:14:99:14 | a | test.rs:99:14:99:23 | a.as_str() | provenance | MaD:8 | +| test.rs:100:14:100:14 | a | test.rs:100:14:100:25 | a.as_bytes() | provenance | MaD:7 | +| test.rs:106:33:106:65 | ...: ...::Path::<...> | test.rs:107:22:107:25 | path | provenance | | +| test.rs:107:13:107:18 | TuplePat | test.rs:109:14:109:14 | a | provenance | | +| test.rs:107:13:107:18 | TuplePat | test.rs:110:14:110:14 | b | provenance | | +| test.rs:107:22:107:25 | path | test.rs:107:22:107:38 | path.into_inner() | provenance | MaD:6 | +| test.rs:107:22:107:38 | path.into_inner() | test.rs:107:13:107:18 | TuplePat | provenance | | +| test.rs:115:33:115:65 | ...: ...::Query::<...> | test.rs:116:14:116:14 | a | provenance | | +| test.rs:121:5:121:20 | to | test.rs:122:33:122:55 | ...: ...::Path::<...> | provenance | Src:MaD:4 | +| test.rs:122:33:122:55 | ...: ...::Path::<...> | test.rs:123:17:123:20 | path | provenance | | +| test.rs:123:13:123:13 | a | test.rs:124:14:124:14 | a | provenance | | +| test.rs:123:17:123:20 | path | test.rs:123:17:123:33 | path.into_inner() | provenance | MaD:6 | +| test.rs:123:17:123:33 | path.into_inner() | test.rs:123:13:123:13 | a | provenance | | +| test.rs:131:41:131:42 | to | test.rs:97:33:97:55 | ...: ...::Path::<...> | provenance | Src:MaD:5 | +| test.rs:132:45:132:46 | to | test.rs:106:33:106:65 | ...: ...::Path::<...> | provenance | Src:MaD:5 | +| test.rs:133:41:133:42 | to | test.rs:115:33:115:65 | ...: ...::Query::<...> | provenance | Src:MaD:5 | +| test.rs:222:33:222:35 | map | test.rs:222:38:222:46 | ...: String | provenance | Src:MaD:2 | +| test.rs:222:38:222:46 | ...: String | test.rs:224:18:224:18 | a | provenance | | +| test.rs:230:46:230:49 | then | test.rs:231:25:231:33 | ...: String | provenance | Src:MaD:3 | +| test.rs:231:25:231:33 | ...: String | test.rs:232:22:232:22 | a | provenance | | +| test.rs:239:50:239:57 | and_then | test.rs:240:26:240:32 | ...: u64 | provenance | Src:MaD:1 | +| test.rs:240:26:240:32 | ...: u64 | test.rs:243:22:243:23 | id | provenance | | +| test.rs:252:75:252:77 | map | test.rs:253:15:253:23 | ...: String | provenance | Src:MaD:2 | +| test.rs:253:15:253:23 | ...: String | test.rs:255:22:255:22 | a | provenance | | nodes | test.rs:11:31:11:31 | a | semmle.label | a | | test.rs:13:14:13:14 | a | semmle.label | a | @@ -68,44 +68,44 @@ nodes | test.rs:61:14:61:17 | ms.b | semmle.label | ms.b | | test.rs:68:15:68:15 | a | semmle.label | a | | test.rs:70:14:70:14 | a | semmle.label | a | -| test.rs:98:9:98:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:100:13:100:13 | a | semmle.label | a | -| test.rs:100:17:100:20 | path | semmle.label | path | -| test.rs:100:17:100:33 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:97:33:97:55 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:98:13:98:13 | a | semmle.label | a | +| test.rs:98:17:98:20 | path | semmle.label | path | +| test.rs:98:17:98:33 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:99:14:99:14 | a | semmle.label | a | +| test.rs:99:14:99:23 | a.as_str() | semmle.label | a.as_str() | +| test.rs:100:14:100:14 | a | semmle.label | a | +| test.rs:100:14:100:25 | a.as_bytes() | semmle.label | a.as_bytes() | | test.rs:101:14:101:14 | a | semmle.label | a | -| test.rs:101:14:101:23 | a.as_str() | semmle.label | a.as_str() | -| test.rs:102:14:102:14 | a | semmle.label | a | -| test.rs:102:14:102:25 | a.as_bytes() | semmle.label | a.as_bytes() | -| test.rs:103:14:103:14 | a | semmle.label | a | -| test.rs:109:9:109:41 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:111:13:111:18 | TuplePat | semmle.label | TuplePat | -| test.rs:111:22:111:25 | path | semmle.label | path | -| test.rs:111:22:111:38 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:113:14:113:14 | a | semmle.label | a | -| test.rs:114:14:114:14 | b | semmle.label | b | -| test.rs:120:9:120:41 | ...: ...::Query::<...> | semmle.label | ...: ...::Query::<...> | -| test.rs:122:14:122:14 | a | semmle.label | a | -| test.rs:127:5:127:20 | to | semmle.label | to | -| test.rs:129:9:129:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:131:13:131:13 | a | semmle.label | a | -| test.rs:131:17:131:20 | path | semmle.label | path | -| test.rs:131:17:131:33 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:132:14:132:14 | a | semmle.label | a | -| test.rs:139:41:139:42 | to | semmle.label | to | -| test.rs:140:45:140:46 | to | semmle.label | to | -| test.rs:141:41:141:42 | to | semmle.label | to | -| test.rs:242:33:242:35 | map | semmle.label | map | -| test.rs:242:38:242:46 | ...: String | semmle.label | ...: String | -| test.rs:244:18:244:18 | a | semmle.label | a | -| test.rs:250:46:250:49 | then | semmle.label | then | -| test.rs:251:25:251:33 | ...: String | semmle.label | ...: String | -| test.rs:252:22:252:22 | a | semmle.label | a | -| test.rs:259:50:259:57 | and_then | semmle.label | and_then | -| test.rs:260:26:260:32 | ...: u64 | semmle.label | ...: u64 | -| test.rs:263:22:263:23 | id | semmle.label | id | -| test.rs:272:75:272:77 | map | semmle.label | map | -| test.rs:273:15:273:23 | ...: String | semmle.label | ...: String | -| test.rs:275:22:275:22 | a | semmle.label | a | +| test.rs:106:33:106:65 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:107:13:107:18 | TuplePat | semmle.label | TuplePat | +| test.rs:107:22:107:25 | path | semmle.label | path | +| test.rs:107:22:107:38 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:109:14:109:14 | a | semmle.label | a | +| test.rs:110:14:110:14 | b | semmle.label | b | +| test.rs:115:33:115:65 | ...: ...::Query::<...> | semmle.label | ...: ...::Query::<...> | +| test.rs:116:14:116:14 | a | semmle.label | a | +| test.rs:121:5:121:20 | to | semmle.label | to | +| test.rs:122:33:122:55 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:123:13:123:13 | a | semmle.label | a | +| test.rs:123:17:123:20 | path | semmle.label | path | +| test.rs:123:17:123:33 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:124:14:124:14 | a | semmle.label | a | +| test.rs:131:41:131:42 | to | semmle.label | to | +| test.rs:132:45:132:46 | to | semmle.label | to | +| test.rs:133:41:133:42 | to | semmle.label | to | +| test.rs:222:33:222:35 | map | semmle.label | map | +| test.rs:222:38:222:46 | ...: String | semmle.label | ...: String | +| test.rs:224:18:224:18 | a | semmle.label | a | +| test.rs:230:46:230:49 | then | semmle.label | then | +| test.rs:231:25:231:33 | ...: String | semmle.label | ...: String | +| test.rs:232:22:232:22 | a | semmle.label | a | +| test.rs:239:50:239:57 | and_then | semmle.label | and_then | +| test.rs:240:26:240:32 | ...: u64 | semmle.label | ...: u64 | +| test.rs:243:22:243:23 | id | semmle.label | id | +| test.rs:252:75:252:77 | map | semmle.label | map | +| test.rs:253:15:253:23 | ...: String | semmle.label | ...: String | +| test.rs:255:22:255:22 | a | semmle.label | a | subpaths testFailures #select @@ -119,14 +119,14 @@ testFailures | test.rs:60:14:60:17 | ms.a | test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | $@ | test.rs:58:14:58:15 | ms | ms | | test.rs:61:14:61:17 | ms.b | test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | $@ | test.rs:58:14:58:15 | ms | ms | | test.rs:70:14:70:14 | a | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | $@ | test.rs:68:15:68:15 | a | a | -| test.rs:101:14:101:23 | a.as_str() | test.rs:139:41:139:42 | to | test.rs:101:14:101:23 | a.as_str() | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:102:14:102:25 | a.as_bytes() | test.rs:139:41:139:42 | to | test.rs:102:14:102:25 | a.as_bytes() | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:103:14:103:14 | a | test.rs:139:41:139:42 | to | test.rs:103:14:103:14 | a | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:113:14:113:14 | a | test.rs:140:45:140:46 | to | test.rs:113:14:113:14 | a | $@ | test.rs:140:45:140:46 | to | to | -| test.rs:114:14:114:14 | b | test.rs:140:45:140:46 | to | test.rs:114:14:114:14 | b | $@ | test.rs:140:45:140:46 | to | to | -| test.rs:122:14:122:14 | a | test.rs:141:41:141:42 | to | test.rs:122:14:122:14 | a | $@ | test.rs:141:41:141:42 | to | to | -| test.rs:132:14:132:14 | a | test.rs:127:5:127:20 | to | test.rs:132:14:132:14 | a | $@ | test.rs:127:5:127:20 | to | to | -| test.rs:244:18:244:18 | a | test.rs:242:33:242:35 | map | test.rs:244:18:244:18 | a | $@ | test.rs:242:33:242:35 | map | map | -| test.rs:252:22:252:22 | a | test.rs:250:46:250:49 | then | test.rs:252:22:252:22 | a | $@ | test.rs:250:46:250:49 | then | then | -| test.rs:263:22:263:23 | id | test.rs:259:50:259:57 | and_then | test.rs:263:22:263:23 | id | $@ | test.rs:259:50:259:57 | and_then | and_then | -| test.rs:275:22:275:22 | a | test.rs:272:75:272:77 | map | test.rs:275:22:275:22 | a | $@ | test.rs:272:75:272:77 | map | map | +| test.rs:99:14:99:23 | a.as_str() | test.rs:131:41:131:42 | to | test.rs:99:14:99:23 | a.as_str() | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:100:14:100:25 | a.as_bytes() | test.rs:131:41:131:42 | to | test.rs:100:14:100:25 | a.as_bytes() | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:101:14:101:14 | a | test.rs:131:41:131:42 | to | test.rs:101:14:101:14 | a | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:109:14:109:14 | a | test.rs:132:45:132:46 | to | test.rs:109:14:109:14 | a | $@ | test.rs:132:45:132:46 | to | to | +| test.rs:110:14:110:14 | b | test.rs:132:45:132:46 | to | test.rs:110:14:110:14 | b | $@ | test.rs:132:45:132:46 | to | to | +| test.rs:116:14:116:14 | a | test.rs:133:41:133:42 | to | test.rs:116:14:116:14 | a | $@ | test.rs:133:41:133:42 | to | to | +| test.rs:124:14:124:14 | a | test.rs:121:5:121:20 | to | test.rs:124:14:124:14 | a | $@ | test.rs:121:5:121:20 | to | to | +| test.rs:224:18:224:18 | a | test.rs:222:33:222:35 | map | test.rs:224:18:224:18 | a | $@ | test.rs:222:33:222:35 | map | map | +| test.rs:232:22:232:22 | a | test.rs:230:46:230:49 | then | test.rs:232:22:232:22 | a | $@ | test.rs:230:46:230:49 | then | then | +| test.rs:243:22:243:23 | id | test.rs:239:50:239:57 | and_then | test.rs:243:22:243:23 | id | $@ | test.rs:239:50:239:57 | and_then | and_then | +| test.rs:255:22:255:22 | a | test.rs:252:75:252:77 | map | test.rs:255:22:255:22 | a | $@ | test.rs:252:75:252:77 | map | map | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected index 20a20ce3f9b..660eb7d12fa 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected @@ -3,67 +3,67 @@ | test.rs:48:14:48:30 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs index 124f7615ef1..8033560bef5 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs @@ -94,9 +94,7 @@ mod actix_test { use super::sink; use actix_web::{get, web, App}; - async fn my_actix_handler_1( - path: web::Path, - ) -> String { + async fn my_actix_handler_1(path: web::Path) -> String { let a = path.into_inner(); sink(a.as_str()); // $ hasTaintFlow=my_actix_handler_1 sink(a.as_bytes()); // $ hasTaintFlow=my_actix_handler_1 @@ -105,9 +103,7 @@ mod actix_test { "".to_string() } - async fn my_actix_handler_2( - path: web::Path<(String, String)>, - ) -> String { + async fn my_actix_handler_2(path: web::Path<(String, String)>) -> String { let (a, b) = path.into_inner(); sink(a); // $ hasTaintFlow=my_actix_handler_2 @@ -116,18 +112,14 @@ mod actix_test { "".to_string() } - async fn my_actix_handler_3( - web::Query(a): web::Query, - ) -> String { + async fn my_actix_handler_3(web::Query(a): web::Query) -> String { sink(a); // $ hasTaintFlow=my_actix_handler_3 "".to_string() } #[get("/4/{a}")] // $ Alert[rust/summary/taint-sources] - async fn my_actix_handler_4( - path: web::Path, - ) -> String { + async fn my_actix_handler_4(path: web::Path) -> String { let a = path.into_inner(); sink(a); // $ hasTaintFlow=my_actix_handler_4 @@ -148,43 +140,35 @@ mod actix_test { mod axum_test { use super::sink; use axum::extract::{Json, Path, Query, Request}; - use axum::routing::get; + use axum::routing::{get, post, put, MethodFilter}; use axum::Router; use std::collections::HashMap; - async fn my_axum_handler_1( - Path(a): Path, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(a.as_str()); // $ MISSING: hasTaintFlow - sink(a.as_bytes()); // $ MISSING: hasTaintFlow - sink(a); // $ MISSING: hasTaintFlow + async fn my_axum_handler_1(Path(a): Path) -> &'static str { + sink(a.as_str()); // $ MISSING: hasTaintFlow=my_axum_handler_1 + sink(a.as_bytes()); // $ MISSING: hasTaintFlow=my_axum_handler_1 + sink(a); // $ MISSING: hasTaintFlow=my_axum_handler_1 "" } - async fn my_axum_handler_2( - Path((a, b)): Path<(String, String)>, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + async fn my_axum_handler_2(Path((a, b)): Path<(String, String)>) -> &'static str { + sink(a); // $ MISSING: hasTaintFlow=my_axum_handler_2 + sink(b); // $ MISSING: hasTaintFlow=my_axum_handler_2 "" } - async fn my_axum_handler_3( - Query(params): Query>, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_3(Query(params): Query>) -> &'static str { for (key, value) in params { - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ MISSING: hasTaintFlow=my_axum_handler_3 + sink(value); // $ MISSING: hasTaintFlow=my_axum_handler_3 } "" } - async fn my_axum_handler_4( - request: Request, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_4(request: Request) -> &'static str { sink(request.body()); // $ MISSING: hasTaintFlow request.headers().get("header").unwrap(); // $ MISSING: hasTaintFlow sink(request.into_body()); // $ MISSING: hasTaintFlow @@ -192,39 +176,35 @@ mod axum_test { "" } - async fn my_axum_handler_5( - Json(payload): Json, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_5(Json(payload): Json) -> &'static str { sink(payload.as_str()); // $ MISSING: hasTaintFlow - sink(payload); // $ MISSING: hasTaintFlow + sink(payload); // $ MISSING: hasTaintFlow=...::DELETE "" } - async fn my_axum_handler_6( - body: String, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow + async fn my_axum_handler_6(body: String) -> &'static str { + sink(body); // $ MISSING: hasTaintFlow=my_axum_handler_6 "" } - async fn my_axum_handler_7( - body: String, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow + async fn my_axum_handler_7(body: String) -> &'static str { + sink(body); // $ MISSING: hasTaintFlow=my_axum_handler_7 "" } async fn test_axum() { let app = Router::<()>::new() - .route("/1/{a}", get(my_axum_handler_1)) - .route("/2/{a}/{b}", get(my_axum_handler_2)) - .route("/3/:a", get(my_axum_handler_3)) - .route("/4/:a", get(my_axum_handler_4)) - .route("/5/:a", get(my_axum_handler_5)) - .route("/67/:a", get(my_axum_handler_6).get(my_axum_handler_7)); + .route("/1/{a}", get(my_axum_handler_1)) // $ MISSING: Alert[rust/summary/taint-sources]) + .route("/2/{a}/{b}", post(my_axum_handler_2)) // $ MISSING: Alert[rust/summary/taint-sources]) + .route("/3/:a", put(my_axum_handler_3)) // $ MISSING: Alert[rust/summary/taint-sources]) + .route( + "/4/:a", + get(my_axum_handler_4).on(MethodFilter::DELETE, my_axum_handler_5), // $ MISSING: Alert[rust/summary/taint-sources]) + ) + .route("/5/:a", get(my_axum_handler_6).get(my_axum_handler_7)); // $ MISSING: Alert[rust/summary/taint-sources]) // ... } From fbf9f7eda732dc7f1eb7990a85084dfc15c6e2e9 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 12:41:32 +0100 Subject: [PATCH 163/194] Rust: Add models for Axum --- .../lib/codeql/rust/frameworks/axum.model.yml | 23 ++++++ .../web_frameworks/InlineFlow.expected | 77 ++++++++++++++++--- .../web_frameworks/TaintSources.expected | 56 ++++++++++++++ .../dataflow/sources/web_frameworks/test.rs | 30 ++++---- 4 files changed, 161 insertions(+), 25 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/frameworks/axum.model.yml diff --git a/rust/ql/lib/codeql/rust/frameworks/axum.model.yml b/rust/ql/lib/codeql/rust/frameworks/axum.model.yml new file mode 100644 index 00000000000..7ae7dec3635 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/axum.model.yml @@ -0,0 +1,23 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + # Get + - ["axum::routing::method_routing::get", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::get", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Post + - ["axum::routing::method_routing::post", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::post", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Put + - ["axum::routing::method_routing::put", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::put", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Delete + - ["axum::routing::method_routing::delete", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::delete", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Patch + - ["axum::routing::method_routing::patch", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::patch", "Argument[0].Parameter[0..7]", "remote", "manual"] + # on + - ["axum::routing::method_routing::on", "Argument[1].Parameter[0..7]", "remote", "manual"] + - ["::on", "Argument[1].Parameter[0..7]", "remote", "manual"] \ No newline at end of file diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected index dce59fc29b7..4c85f166699 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected @@ -4,15 +4,20 @@ models | 3 | Source: <_ as warp::filter::Filter>::then; Argument[0].Parameter[0..7]; remote | | 4 | Source: ::to; Argument[0].Parameter[0..7]; remote | | 5 | Source: ::to; Argument[0].Parameter[0..7]; remote | -| 6 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | -| 7 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 8 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 6 | Source: ::get; Argument[0].Parameter[0..7]; remote | +| 7 | Source: ::on; Argument[1].Parameter[0..7]; remote | +| 8 | Source: axum::routing::method_routing::get; Argument[0].Parameter[0..7]; remote | +| 9 | Source: axum::routing::method_routing::post; Argument[0].Parameter[0..7]; remote | +| 10 | Source: axum::routing::method_routing::put; Argument[0].Parameter[0..7]; remote | +| 11 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | +| 12 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | +| 13 | Summary: ::as_str; Argument[self]; ReturnValue; value | edges | test.rs:11:31:11:31 | a | test.rs:13:14:13:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:14:14:14:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:15:14:15:14 | a | provenance | | -| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:8 | -| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:7 | +| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:13 | +| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:12 | | test.rs:22:14:22:19 | TuplePat | test.rs:24:14:24:14 | a | provenance | | | test.rs:22:14:22:19 | TuplePat | test.rs:25:14:25:14 | b | provenance | | | test.rs:48:14:48:30 | MyStruct {...} | test.rs:50:14:50:14 | a | provenance | | @@ -24,24 +29,42 @@ edges | test.rs:98:13:98:13 | a | test.rs:99:14:99:14 | a | provenance | | | test.rs:98:13:98:13 | a | test.rs:100:14:100:14 | a | provenance | | | test.rs:98:13:98:13 | a | test.rs:101:14:101:14 | a | provenance | | -| test.rs:98:17:98:20 | path | test.rs:98:17:98:33 | path.into_inner() | provenance | MaD:6 | +| test.rs:98:17:98:20 | path | test.rs:98:17:98:33 | path.into_inner() | provenance | MaD:11 | | test.rs:98:17:98:33 | path.into_inner() | test.rs:98:13:98:13 | a | provenance | | -| test.rs:99:14:99:14 | a | test.rs:99:14:99:23 | a.as_str() | provenance | MaD:8 | -| test.rs:100:14:100:14 | a | test.rs:100:14:100:25 | a.as_bytes() | provenance | MaD:7 | +| test.rs:99:14:99:14 | a | test.rs:99:14:99:23 | a.as_str() | provenance | MaD:13 | +| test.rs:100:14:100:14 | a | test.rs:100:14:100:25 | a.as_bytes() | provenance | MaD:12 | | test.rs:106:33:106:65 | ...: ...::Path::<...> | test.rs:107:22:107:25 | path | provenance | | | test.rs:107:13:107:18 | TuplePat | test.rs:109:14:109:14 | a | provenance | | | test.rs:107:13:107:18 | TuplePat | test.rs:110:14:110:14 | b | provenance | | -| test.rs:107:22:107:25 | path | test.rs:107:22:107:38 | path.into_inner() | provenance | MaD:6 | +| test.rs:107:22:107:25 | path | test.rs:107:22:107:38 | path.into_inner() | provenance | MaD:11 | | test.rs:107:22:107:38 | path.into_inner() | test.rs:107:13:107:18 | TuplePat | provenance | | | test.rs:115:33:115:65 | ...: ...::Query::<...> | test.rs:116:14:116:14 | a | provenance | | | test.rs:121:5:121:20 | to | test.rs:122:33:122:55 | ...: ...::Path::<...> | provenance | Src:MaD:4 | | test.rs:122:33:122:55 | ...: ...::Path::<...> | test.rs:123:17:123:20 | path | provenance | | | test.rs:123:13:123:13 | a | test.rs:124:14:124:14 | a | provenance | | -| test.rs:123:17:123:20 | path | test.rs:123:17:123:33 | path.into_inner() | provenance | MaD:6 | +| test.rs:123:17:123:20 | path | test.rs:123:17:123:33 | path.into_inner() | provenance | MaD:11 | | test.rs:123:17:123:33 | path.into_inner() | test.rs:123:13:123:13 | a | provenance | | | test.rs:131:41:131:42 | to | test.rs:97:33:97:55 | ...: ...::Path::<...> | provenance | Src:MaD:5 | | test.rs:132:45:132:46 | to | test.rs:106:33:106:65 | ...: ...::Path::<...> | provenance | Src:MaD:5 | | test.rs:133:41:133:42 | to | test.rs:115:33:115:65 | ...: ...::Query::<...> | provenance | Src:MaD:5 | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:148:14:148:14 | a | provenance | | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:149:14:149:14 | a | provenance | | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:150:14:150:14 | a | provenance | | +| test.rs:148:14:148:14 | a | test.rs:148:14:148:23 | a.as_str() | provenance | MaD:13 | +| test.rs:149:14:149:14 | a | test.rs:149:14:149:25 | a.as_bytes() | provenance | MaD:12 | +| test.rs:155:32:155:67 | ...: Path::<...> | test.rs:156:14:156:14 | a | provenance | | +| test.rs:155:32:155:67 | ...: Path::<...> | test.rs:157:14:157:14 | b | provenance | | +| test.rs:162:32:162:76 | ...: Query::<...> | test.rs:164:18:164:20 | key | provenance | | +| test.rs:162:32:162:76 | ...: Query::<...> | test.rs:165:18:165:22 | value | provenance | | +| test.rs:179:32:179:69 | ...: Json::<...> | test.rs:181:14:181:20 | payload | provenance | | +| test.rs:186:32:186:43 | ...: String | test.rs:187:14:187:17 | body | provenance | | +| test.rs:192:32:192:43 | ...: String | test.rs:193:14:193:17 | body | provenance | | +| test.rs:200:30:200:32 | get | test.rs:147:32:147:52 | ...: Path::<...> | provenance | Src:MaD:8 | +| test.rs:201:34:201:37 | post | test.rs:155:32:155:67 | ...: Path::<...> | provenance | Src:MaD:9 | +| test.rs:202:29:202:31 | put | test.rs:162:32:162:76 | ...: Query::<...> | provenance | Src:MaD:10 | +| test.rs:205:40:205:41 | on | test.rs:179:32:179:69 | ...: Json::<...> | provenance | Src:MaD:7 | +| test.rs:207:29:207:31 | get | test.rs:186:32:186:43 | ...: String | provenance | Src:MaD:8 | +| test.rs:207:52:207:54 | get | test.rs:192:32:192:43 | ...: String | provenance | Src:MaD:6 | | test.rs:222:33:222:35 | map | test.rs:222:38:222:46 | ...: String | provenance | Src:MaD:2 | | test.rs:222:38:222:46 | ...: String | test.rs:224:18:224:18 | a | provenance | | | test.rs:230:46:230:49 | then | test.rs:231:25:231:33 | ...: String | provenance | Src:MaD:3 | @@ -94,6 +117,30 @@ nodes | test.rs:131:41:131:42 | to | semmle.label | to | | test.rs:132:45:132:46 | to | semmle.label | to | | test.rs:133:41:133:42 | to | semmle.label | to | +| test.rs:147:32:147:52 | ...: Path::<...> | semmle.label | ...: Path::<...> | +| test.rs:148:14:148:14 | a | semmle.label | a | +| test.rs:148:14:148:23 | a.as_str() | semmle.label | a.as_str() | +| test.rs:149:14:149:14 | a | semmle.label | a | +| test.rs:149:14:149:25 | a.as_bytes() | semmle.label | a.as_bytes() | +| test.rs:150:14:150:14 | a | semmle.label | a | +| test.rs:155:32:155:67 | ...: Path::<...> | semmle.label | ...: Path::<...> | +| test.rs:156:14:156:14 | a | semmle.label | a | +| test.rs:157:14:157:14 | b | semmle.label | b | +| test.rs:162:32:162:76 | ...: Query::<...> | semmle.label | ...: Query::<...> | +| test.rs:164:18:164:20 | key | semmle.label | key | +| test.rs:165:18:165:22 | value | semmle.label | value | +| test.rs:179:32:179:69 | ...: Json::<...> | semmle.label | ...: Json::<...> | +| test.rs:181:14:181:20 | payload | semmle.label | payload | +| test.rs:186:32:186:43 | ...: String | semmle.label | ...: String | +| test.rs:187:14:187:17 | body | semmle.label | body | +| test.rs:192:32:192:43 | ...: String | semmle.label | ...: String | +| test.rs:193:14:193:17 | body | semmle.label | body | +| test.rs:200:30:200:32 | get | semmle.label | get | +| test.rs:201:34:201:37 | post | semmle.label | post | +| test.rs:202:29:202:31 | put | semmle.label | put | +| test.rs:205:40:205:41 | on | semmle.label | on | +| test.rs:207:29:207:31 | get | semmle.label | get | +| test.rs:207:52:207:54 | get | semmle.label | get | | test.rs:222:33:222:35 | map | semmle.label | map | | test.rs:222:38:222:46 | ...: String | semmle.label | ...: String | | test.rs:224:18:224:18 | a | semmle.label | a | @@ -126,6 +173,16 @@ testFailures | test.rs:110:14:110:14 | b | test.rs:132:45:132:46 | to | test.rs:110:14:110:14 | b | $@ | test.rs:132:45:132:46 | to | to | | test.rs:116:14:116:14 | a | test.rs:133:41:133:42 | to | test.rs:116:14:116:14 | a | $@ | test.rs:133:41:133:42 | to | to | | test.rs:124:14:124:14 | a | test.rs:121:5:121:20 | to | test.rs:124:14:124:14 | a | $@ | test.rs:121:5:121:20 | to | to | +| test.rs:148:14:148:23 | a.as_str() | test.rs:200:30:200:32 | get | test.rs:148:14:148:23 | a.as_str() | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:149:14:149:25 | a.as_bytes() | test.rs:200:30:200:32 | get | test.rs:149:14:149:25 | a.as_bytes() | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:150:14:150:14 | a | test.rs:200:30:200:32 | get | test.rs:150:14:150:14 | a | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:156:14:156:14 | a | test.rs:201:34:201:37 | post | test.rs:156:14:156:14 | a | $@ | test.rs:201:34:201:37 | post | post | +| test.rs:157:14:157:14 | b | test.rs:201:34:201:37 | post | test.rs:157:14:157:14 | b | $@ | test.rs:201:34:201:37 | post | post | +| test.rs:164:18:164:20 | key | test.rs:202:29:202:31 | put | test.rs:164:18:164:20 | key | $@ | test.rs:202:29:202:31 | put | put | +| test.rs:165:18:165:22 | value | test.rs:202:29:202:31 | put | test.rs:165:18:165:22 | value | $@ | test.rs:202:29:202:31 | put | put | +| test.rs:181:14:181:20 | payload | test.rs:205:40:205:41 | on | test.rs:181:14:181:20 | payload | $@ | test.rs:205:40:205:41 | on | on | +| test.rs:187:14:187:17 | body | test.rs:207:29:207:31 | get | test.rs:187:14:187:17 | body | $@ | test.rs:207:29:207:31 | get | get | +| test.rs:193:14:193:17 | body | test.rs:207:52:207:54 | get | test.rs:193:14:193:17 | body | $@ | test.rs:207:52:207:54 | get | get | | test.rs:224:18:224:18 | a | test.rs:222:33:222:35 | map | test.rs:224:18:224:18 | a | $@ | test.rs:222:33:222:35 | map | map | | test.rs:232:22:232:22 | a | test.rs:230:46:230:49 | then | test.rs:232:22:232:22 | a | $@ | test.rs:230:46:230:49 | then | then | | test.rs:243:22:243:23 | id | test.rs:239:50:239:57 | and_then | test.rs:243:22:243:23 | id | $@ | test.rs:239:50:239:57 | and_then | and_then | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected index 660eb7d12fa..146406e7192 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected @@ -35,6 +35,62 @@ | test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs index 8033560bef5..c6c487fed28 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs @@ -145,24 +145,24 @@ mod axum_test { use std::collections::HashMap; async fn my_axum_handler_1(Path(a): Path) -> &'static str { - sink(a.as_str()); // $ MISSING: hasTaintFlow=my_axum_handler_1 - sink(a.as_bytes()); // $ MISSING: hasTaintFlow=my_axum_handler_1 - sink(a); // $ MISSING: hasTaintFlow=my_axum_handler_1 + sink(a.as_str()); // $ hasTaintFlow=my_axum_handler_1 + sink(a.as_bytes()); // $ hasTaintFlow=my_axum_handler_1 + sink(a); // $ hasTaintFlow=my_axum_handler_1 "" } async fn my_axum_handler_2(Path((a, b)): Path<(String, String)>) -> &'static str { - sink(a); // $ MISSING: hasTaintFlow=my_axum_handler_2 - sink(b); // $ MISSING: hasTaintFlow=my_axum_handler_2 + sink(a); // $ hasTaintFlow=my_axum_handler_2 + sink(b); // $ hasTaintFlow=my_axum_handler_2 "" } async fn my_axum_handler_3(Query(params): Query>) -> &'static str { for (key, value) in params { - sink(key); // $ MISSING: hasTaintFlow=my_axum_handler_3 - sink(value); // $ MISSING: hasTaintFlow=my_axum_handler_3 + sink(key); // $ hasTaintFlow=my_axum_handler_3 + sink(value); // $ hasTaintFlow=my_axum_handler_3 } "" @@ -178,33 +178,33 @@ mod axum_test { async fn my_axum_handler_5(Json(payload): Json) -> &'static str { sink(payload.as_str()); // $ MISSING: hasTaintFlow - sink(payload); // $ MISSING: hasTaintFlow=...::DELETE + sink(payload); // $ hasTaintFlow=...::DELETE "" } async fn my_axum_handler_6(body: String) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow=my_axum_handler_6 + sink(body); // $ hasTaintFlow=my_axum_handler_6 "" } async fn my_axum_handler_7(body: String) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow=my_axum_handler_7 + sink(body); // $ hasTaintFlow=my_axum_handler_7 "" } async fn test_axum() { let app = Router::<()>::new() - .route("/1/{a}", get(my_axum_handler_1)) // $ MISSING: Alert[rust/summary/taint-sources]) - .route("/2/{a}/{b}", post(my_axum_handler_2)) // $ MISSING: Alert[rust/summary/taint-sources]) - .route("/3/:a", put(my_axum_handler_3)) // $ MISSING: Alert[rust/summary/taint-sources]) + .route("/1/{a}", get(my_axum_handler_1)) // $ Alert[rust/summary/taint-sources]) + .route("/2/{a}/{b}", post(my_axum_handler_2)) // $ Alert[rust/summary/taint-sources]) + .route("/3/:a", put(my_axum_handler_3)) // $ Alert[rust/summary/taint-sources]) .route( "/4/:a", - get(my_axum_handler_4).on(MethodFilter::DELETE, my_axum_handler_5), // $ MISSING: Alert[rust/summary/taint-sources]) + get(my_axum_handler_4).on(MethodFilter::DELETE, my_axum_handler_5), // $ Alert[rust/summary/taint-sources]) ) - .route("/5/:a", get(my_axum_handler_6).get(my_axum_handler_7)); // $ MISSING: Alert[rust/summary/taint-sources]) + .route("/5/:a", get(my_axum_handler_6).get(my_axum_handler_7)); // $ Alert[rust/summary/taint-sources]) // ... } From cbdab994979a79d556aee6b04944a3a8aef81be0 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 10:39:37 +0100 Subject: [PATCH 164/194] Rust: Add XSS sink for Axum HTML response creation --- .../codeql/rust/security/XssExtensions.qll | 10 ++++++++++ .../security/CWE-079/axum/XSS.expected | 20 +++++++++++++++++++ .../query-tests/security/CWE-079/axum/main.rs | 4 ++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/XssExtensions.qll b/rust/ql/lib/codeql/rust/security/XssExtensions.qll index cb0510cd704..97318ff8173 100644 --- a/rust/ql/lib/codeql/rust/security/XssExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/XssExtensions.qll @@ -59,4 +59,14 @@ module Xss { ) } } + + // TODO: Convert this to MaD once MaD supports sink for tuple struct expressions. + private class AxumHtmlSink extends Sink { + AxumHtmlSink() { + exists(TupleStructExpr call | + call.getResolvedTarget().getCanonicalPath() = "axum::response::Html" and + this.asExpr() = call.getSyntacticPositionalArgument(0) + ) + } + } } diff --git a/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected b/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected index 58f42bec0c8..385ce0f58c4 100644 --- a/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected +++ b/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected @@ -1,4 +1,24 @@ #select +| main.rs:10:10:10:21 | html_content | main.rs:15:51:15:53 | get | main.rs:10:10:10:21 | html_content | Cross-site scripting vulnerability due to a $@. | main.rs:15:51:15:53 | get | user-provided value | edges +| main.rs:8:24:8:59 | ...: Query::<...> | main.rs:9:32:9:63 | MacroExpr | provenance | | +| main.rs:9:9:9:20 | html_content | main.rs:10:10:10:21 | html_content | provenance | | +| main.rs:9:32:9:63 | ...::format(...) | main.rs:9:32:9:63 | { ... } | provenance | | +| main.rs:9:32:9:63 | ...::must_use(...) | main.rs:9:9:9:20 | html_content | provenance | | +| main.rs:9:32:9:63 | MacroExpr | main.rs:9:32:9:63 | ...::format(...) | provenance | MaD:2 | +| main.rs:9:32:9:63 | { ... } | main.rs:9:32:9:63 | ...::must_use(...) | provenance | MaD:3 | +| main.rs:15:51:15:53 | get | main.rs:8:24:8:59 | ...: Query::<...> | provenance | Src:MaD:1 | +models +| 1 | Source: axum::routing::method_routing::get; Argument[0].Parameter[0..7]; remote | +| 2 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 3 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes +| main.rs:8:24:8:59 | ...: Query::<...> | semmle.label | ...: Query::<...> | +| main.rs:9:9:9:20 | html_content | semmle.label | html_content | +| main.rs:9:32:9:63 | ...::format(...) | semmle.label | ...::format(...) | +| main.rs:9:32:9:63 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| main.rs:9:32:9:63 | MacroExpr | semmle.label | MacroExpr | +| main.rs:9:32:9:63 | { ... } | semmle.label | { ... } | +| main.rs:10:10:10:21 | html_content | semmle.label | html_content | +| main.rs:15:51:15:53 | get | semmle.label | get | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-079/axum/main.rs b/rust/ql/test/query-tests/security/CWE-079/axum/main.rs index 9379302a318..27807c5883d 100644 --- a/rust/ql/test/query-tests/security/CWE-079/axum/main.rs +++ b/rust/ql/test/query-tests/security/CWE-079/axum/main.rs @@ -7,12 +7,12 @@ struct GreetingParams { async fn greet_handler(Query(params): Query) -> Html { let html_content = format!("

Hello, {}!

", params.name); - Html(html_content) // $ MISSING: Alert[rust/xss] + Html(html_content) // $ Alert[rust/xss]=greet } #[tokio::main] pub async fn main() { - let app = Router::<()>::new().route("/greet", get(greet_handler)); + let app = Router::<()>::new().route("/greet", get(greet_handler)); // $ Source=greet let listener = tokio::net::TcpListener::bind("127.0.0.1:3000") .await .unwrap(); From e53bdb11be4ccb39903f729375ea87f63912965d Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 13:15:34 +0100 Subject: [PATCH 165/194] Rust: Accept changes to expected files for consistency check --- .../CONSISTENCY/TypeInferenceConsistency.expected | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected index 08edbe8c612..f1bdb2cddbd 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected @@ -1,4 +1,4 @@ nonUniqueCertainType -| test.rs:139:30:139:39 | ...::get(...) | | -| test.rs:140:34:140:43 | ...::get(...) | | -| test.rs:141:30:141:39 | ...::get(...) | | +| test.rs:131:30:131:39 | ...::get(...) | | +| test.rs:132:34:132:43 | ...::get(...) | | +| test.rs:133:30:133:39 | ...::get(...) | | From 420dd9ab61ce75c6c617a66c590198490fc03717 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 16 Dec 2025 15:15:22 +0100 Subject: [PATCH 166/194] Rust: Add change note for Axum models --- rust/ql/lib/change-notes/2025-12-16-axum-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/lib/change-notes/2025-12-16-axum-models.md diff --git a/rust/ql/lib/change-notes/2025-12-16-axum-models.md b/rust/ql/lib/change-notes/2025-12-16-axum-models.md new file mode 100644 index 00000000000..baa5910d799 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-16-axum-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added models for the Axum web application framework. \ No newline at end of file From 84a501d360f2804c71dab741c2d43a70e0a901c4 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Tue, 16 Dec 2025 09:10:39 -0600 Subject: [PATCH 167/194] Update csharp/ql/src/Bad Practices/PathCombine.ql Co-authored-by: Tom Hvitved --- csharp/ql/src/Bad Practices/PathCombine.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index 24f3ecc8e23..88965ed4328 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -1,6 +1,6 @@ /** - * @name Calls to System.IO.Path.Combine may silently drop its earlier arguments - * @description Path.Combine may silently drop its earlier arguments + * @name Call to 'System.IO.Path.Combine' may silently drop its earlier arguments + * @description 'Path.Combine' may silently drop its earlier arguments * if its later arguments are absolute paths. * @kind problem * @problem.severity recommendation From 30673a2fc8c67ea46b929a2132c3ab0d2b0f0856 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Tue, 16 Dec 2025 10:37:53 -0600 Subject: [PATCH 168/194] Enhance PathCombine metadata with detailed description Updated the `name` and `description` of PathCombine.ql to provide more details about the issue. --- .../ql/src/change-notes/2025-12-16-path-combine-metadata.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md diff --git a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md new file mode 100644 index 00000000000..19d51896ebf --- /dev/null +++ b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* Updated the `name` and `description` of PathCombine.ql to have more details about why it's a problem From 576f270753ea985e32ce04f612d3b8824fc5477e Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Tue, 16 Dec 2025 16:39:06 -0600 Subject: [PATCH 169/194] Update PathCombine.ql --- csharp/ql/src/Bad Practices/PathCombine.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index 88965ed4328..e0548b2c5e1 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -16,4 +16,4 @@ import semmle.code.csharp.frameworks.System from MethodCall call where call.getTarget().hasFullyQualifiedName("System.IO", "Path", "Combine") -select call, "Call to 'System.IO.Path.Combine'." +select call, "Call to 'System.IO.Path.Combine' may silently drop its earlier arguments" From a04b10cb861c0612e36144f08cb52a9b37d05797 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 16 Dec 2025 12:52:40 +0100 Subject: [PATCH 170/194] Swift: Fix dataset check errors by not referring to unavailable decls Test Test Test Test Test Test --- swift/extractor/translators/ExprTranslator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/translators/ExprTranslator.cpp b/swift/extractor/translators/ExprTranslator.cpp index 936bf64940f..a5ae49230b8 100644 --- a/swift/extractor/translators/ExprTranslator.cpp +++ b/swift/extractor/translators/ExprTranslator.cpp @@ -538,7 +538,7 @@ void ExprTranslator::fillSelfApplyExpr(const swift::SelfApplyExpr& expr, void ExprTranslator::fillLookupExpr(const swift::LookupExpr& expr, codeql::LookupExpr& entry) { entry.base = dispatcher.fetchLabel(expr.getBase()); - if (expr.hasDecl()) { + if (expr.hasDecl() && !expr.getDecl().getDecl()->isUnavailable()) { entry.member = dispatcher.fetchLabel(expr.getDecl().getDecl()); } } From fe0ce7a49271f651128ea414a091090ff2cfe8f5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 17 Dec 2025 10:27:26 +0100 Subject: [PATCH 171/194] Address review comments --- .../codeql/rust/internal/TypeInference.qll | 99 +++++----- .../test/library-tests/type-inference/main.rs | 4 + .../type-inference/type-inference.expected | 175 ++++++++++-------- 3 files changed, 147 insertions(+), 131 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 5f85db7056a..602f964df0f 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -240,25 +240,28 @@ private module ImplOrTraitItemNodeOption = Option; private class ImplOrTraitItemNodeOption = ImplOrTraitItemNodeOption::Option; private class FunctionDeclaration extends Function { + private ImplOrTraitItemNodeOption parent; + + FunctionDeclaration() { + not this = any(ImplOrTraitItemNode i).getAnAssocItem() and parent.isNone() + or + this = parent.asSome().getASuccessor(_) + } + /** Holds if this function is associated with `i`. */ - predicate isAssoc(ImplOrTraitItemNode i) { this = i.getASuccessor(_) } + predicate isAssoc(ImplOrTraitItemNode i) { i = parent.asSome() } /** Holds if this is a free function. */ - predicate isFree() { not this = any(ImplOrTraitItemNode i).getAnAssocItem() } + predicate isFree() { parent.isNone() } /** Holds if this function is valid for `i`. */ - predicate isDeclaration(ImplOrTraitItemNodeOption i) { - i.isNone() and - this.isFree() - or - this.isAssoc(i.asSome()) - } + predicate isFor(ImplOrTraitItemNodeOption i) { i = parent } /** * Holds if this function is valid for `i`. If `i` is a trait or `impl` block then * this function must be declared directly inside `i`. */ - predicate isDeclarationStrict(ImplOrTraitItemNodeOption i) { + predicate isDirectlyFor(ImplOrTraitItemNodeOption i) { i.isNone() and this.isFree() or @@ -266,7 +269,7 @@ private class FunctionDeclaration extends Function { } TypeParameter getTypeParameter(ImplOrTraitItemNodeOption i, TypeParameterPosition ppos) { - this.isDeclaration(i) and + i = parent and ( typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) or @@ -274,36 +277,29 @@ private class FunctionDeclaration extends Function { or ppos.isImplicit() and result = TSelfTypeParameter(i.asSome()) or - ppos.isImplicit() and - result.(AssociatedTypeTypeParameter).getTrait() = i.asSome() + ppos.isImplicit() and result.(AssociatedTypeTypeParameter).getTrait() = i.asSome() or - ppos.isImplicit() and - this = result.(ImplTraitTypeTypeParameter).getFunction() + ppos.isImplicit() and this = result.(ImplTraitTypeTypeParameter).getFunction() ) } pragma[nomagic] Type getParameterType(ImplOrTraitItemNodeOption i, FunctionPosition pos, TypePath path) { - this.isDeclaration(i) and + i = parent and ( not pos.isReturn() and result = getAssocFunctionTypeAt(this, i.asSome(), pos, path) or i.isNone() and - exists(Param p | - p = this.getParam(pos.asPosition()) and - result = p.getTypeRepr().(TypeMention).resolveTypeAt(path) - ) + result = this.getParam(pos.asPosition()).getTypeRepr().(TypeMention).resolveTypeAt(path) ) } private Type resolveRetType(ImplOrTraitItemNodeOption i, TypePath path) { - this.isDeclaration(i) and + i = parent and ( - exists(FunctionPosition pos | - result = getAssocFunctionTypeAt(this, i.asSome(), pos, path) and - pos.isReturn() - ) + result = + getAssocFunctionTypeAt(this, i.asSome(), any(FunctionPosition pos | pos.isReturn()), path) or i.isNone() and result = getReturnTypeMention(this).resolveTypeAt(path) @@ -313,7 +309,7 @@ private class FunctionDeclaration extends Function { Type getReturnType(ImplOrTraitItemNodeOption i, TypePath path) { if this.isAsync() then - this.isDeclaration(i) and + i = parent and path.isEmpty() and result = getFutureTraitType() or @@ -332,6 +328,7 @@ private class FunctionDeclaration extends Function { } string toStringExt(ImplOrTraitItemNode i) { + i = parent.asSome() and if this = i.getAnAssocItem() then result = this.toString() else @@ -417,7 +414,7 @@ module CertainTypeInference { exists(ImplOrTraitItemNodeOption i | callResolvesTo(ce, p, f) and result = f.getReturnType(i, path) and - f.isDeclarationStrict(i) + f.isDirectlyFor(i) ) } @@ -2191,29 +2188,31 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi private class MethodDeclaration extends Method, FunctionDeclaration { } private newtype TDeclaration = - MkDeclaration(ImplOrTraitItemNode i, MethodDeclaration m) { m.isAssoc(i) } + TMethodFunctionDeclaration(ImplOrTraitItemNode i, MethodDeclaration m) { m.isAssoc(i) } - final class Declaration extends MkDeclaration { - ImplOrTraitItemNode i_; - ImplOrTraitItemNodeOption somei; + final class Declaration extends TMethodFunctionDeclaration { + ImplOrTraitItemNode parent; + ImplOrTraitItemNodeOption someParent; MethodDeclaration m; Declaration() { - this = MkDeclaration(i_, m) and - somei.asSome() = i_ + this = TMethodFunctionDeclaration(parent, m) and + someParent.asSome() = parent } - predicate isMethod(ImplOrTraitItemNode i, Method method) { this = MkDeclaration(i, method) } + predicate isMethod(ImplOrTraitItemNode i, Method method) { + this = TMethodFunctionDeclaration(i, method) + } TypeParameter getTypeParameter(TypeParameterPosition ppos) { - result = m.getTypeParameter(somei, ppos) + result = m.getTypeParameter(someParent, ppos) } Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = m.getDeclaredType(somei, dpos, path) + result = m.getDeclaredType(someParent, dpos, path) } - string toString() { result = m.toStringExt(i_) } + string toString() { result = m.toStringExt(parent) } Location getLocation() { result = m.getLocation() } } @@ -2294,7 +2293,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi Declaration getTarget(string derefChainBorrow) { exists(ImplOrTraitItemNode i, Method m | m = this.getTarget(i, derefChainBorrow) and - result = MkDeclaration(i, m) + result = TMethodFunctionDeclaration(i, m) ) } @@ -2668,7 +2667,7 @@ private module NonMethodResolution { ArgsAreInstantiationsOf; } -abstract private class TupleConstructor extends Addressable { +abstract private class TupleLikeConstructor extends Addressable { abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); abstract Type getParameterType(FunctionPosition pos, TypePath path); @@ -2686,7 +2685,7 @@ abstract private class TupleConstructor extends Addressable { } } -private class TupleStruct extends TupleConstructor, Struct { +private class TupleStruct extends TupleLikeConstructor, Struct { TupleStruct() { this.isTuple() } override TypeParameter getTypeParameter(TypeParameterPosition ppos) { @@ -2709,7 +2708,7 @@ private class TupleStruct extends TupleConstructor, Struct { } } -private class TupleVariant extends TupleConstructor, Variant { +private class TupleVariant extends TupleLikeConstructor, Variant { TupleVariant() { this.isTuple() } override TypeParameter getTypeParameter(TypeParameterPosition ppos) { @@ -2748,9 +2747,9 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { private newtype TDeclaration = TNonMethodFunctionDeclaration(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f) { - f.isDeclaration(i) + f.isFor(i) } or - TTupleConstructorDeclaration(TupleConstructor tc) + TTupleLikeConstructorDeclaration(TupleLikeConstructor tc) abstract class Declaration extends TDeclaration { abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); @@ -2816,10 +2815,12 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { override Location getLocation() { result = f.getLocation() } } - private class TupleConstructorDeclaration extends Declaration, TTupleConstructorDeclaration { - TupleConstructor tc; + private class TupleLikeConstructorDeclaration extends Declaration, + TTupleLikeConstructorDeclaration + { + TupleLikeConstructor tc; - TupleConstructorDeclaration() { this = TTupleConstructorDeclaration(tc) } + TupleLikeConstructorDeclaration() { this = TTupleLikeConstructorDeclaration(tc) } override TypeParameter getTypeParameter(TypeParameterPosition ppos) { result = tc.getTypeParameter(ppos) @@ -2860,11 +2861,11 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { f = this.resolveTraitFunctionViaPathResolution(i.asSome()) or f = this.resolveCallTargetViaPathResolution() and - f.isDeclarationStrict(i) + f.isDirectlyFor(i) ) or exists(ItemNode i | i = this.resolveCallTargetViaPathResolution() | - result = TTupleConstructorDeclaration(i) + result = TTupleLikeConstructorDeclaration(i) ) } @@ -2880,7 +2881,7 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { ) or // Tuple declarations, such as `Result::Ok(...)`, may also be context typed - exists(TupleConstructor tc, TypeParameter tp | + exists(TupleLikeConstructor tc, TypeParameter tp | tc = this.resolveCallTargetViaPathResolution() and pos.isReturn() and tp = tc.getReturnType(path) and @@ -3435,7 +3436,7 @@ private Type inferStructPatType(AstNode n, TypePath path) { private module TupleStructPatMatchingInput implements MatchingInputSig { import FunctionPositionMatchingInput - class Declaration = TupleConstructor; + class Declaration = TupleLikeConstructor; class Access extends TupleStructPat { Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { none() } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index e35a8cc92fc..4a22a45dc5f 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -3077,6 +3077,10 @@ mod literal_overlap { let x: usize = 0; let y = &1; let z = x.g(y); // $ target=MyTrait::g + + let x = 0; // $ SPURIOUS: type=x:i32 $ MISSING: type=x:usize + let y: usize = 1; + let z = x.max(y); // $ target=max } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index d0521ab654e..60bd8d3d405 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -3546,54 +3546,56 @@ inferCertainType | main.rs:3066:13:3066:16 | self | | {EXTERNAL LOCATION} | & | | main.rs:3066:13:3066:16 | self | TRef | main.rs:3063:10:3063:10 | T | | main.rs:3070:25:3074:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3076:12:3080:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3076:12:3084:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | | main.rs:3078:13:3078:13 | y | | {EXTERNAL LOCATION} | & | | main.rs:3078:17:3078:18 | &1 | | {EXTERNAL LOCATION} | & | | main.rs:3079:17:3079:17 | x | | {EXTERNAL LOCATION} | usize | | main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3088:11:3123:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3089:5:3089:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:5:3091:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:20:3091:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:41:3091:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:5:3092:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3082:13:3082:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3083:23:3083:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3092:11:3127:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:5:3095:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:20:3095:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:41:3095:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3096:5:3096:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | | main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3108:5:3108:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | | main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3121:5:3121:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3121:5:3121:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:3121:5:3121:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3121:16:3121:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3122:5:3122:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3112:5:3112:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3125:5:3125:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3125:5:3125:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:3125:5:3125:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3125:16:3125:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3126:5:3126:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -11046,7 +11048,7 @@ inferType | main.rs:3072:13:3072:17 | x.f() | | {EXTERNAL LOCATION} | usize | | main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3076:12:3080:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3076:12:3084:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | | main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | usize | @@ -11062,48 +11064,57 @@ inferType | main.rs:3079:17:3079:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | | main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | | main.rs:3079:21:3079:21 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3088:11:3123:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3089:5:3089:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3090:5:3090:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:5:3091:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:20:3091:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3091:41:3091:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3092:5:3092:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3095:5:3095:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3096:5:3096:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3081:13:3081:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3081:17:3081:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3082:13:3082:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3082:24:3082:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3082:24:3082:24 | 1 | | {EXTERNAL LOCATION} | usize | +| main.rs:3083:13:3083:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:3083:17:3083:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3083:17:3083:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3083:23:3083:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3092:11:3127:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3093:5:3093:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3094:5:3094:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:5:3095:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:20:3095:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3095:41:3095:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3096:5:3096:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3097:5:3097:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3098:5:3098:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3099:5:3099:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3100:5:3100:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3101:5:3101:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3102:5:3102:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3103:5:3103:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | | main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3108:5:3108:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3105:5:3105:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3106:5:3106:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3107:5:3107:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | | main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3121:5:3121:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3121:5:3121:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:3121:5:3121:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3121:16:3121:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3122:5:3122:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3111:5:3111:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3112:5:3112:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3125:5:3125:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3125:5:3125:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | +| main.rs:3125:5:3125:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3125:16:3125:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3126:5:3126:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From 3104adbe7736979b18c7f4e7d6806a9220e58397 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 16 Dec 2025 08:37:44 +0100 Subject: [PATCH 172/194] Rust: Add type inference test --- .../PathResolutionConsistency.expected | 38 +- .../test/library-tests/type-inference/main.rs | 15 + .../type-inference/type-inference.expected | 13014 ++++++++-------- 3 files changed, 6553 insertions(+), 6514 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index b2a5e20ea94..1f15c50c53c 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -13,23 +13,25 @@ multipleResolvedTargets | dyn_type.rs:90:10:90:13 | * ... | | invalid/main.rs:69:13:69:17 | * ... | | invalid/main.rs:76:13:76:17 | * ... | -| main.rs:1077:14:1077:18 | * ... | -| main.rs:1159:26:1159:30 | * ... | -| main.rs:1503:14:1503:21 | * ... | -| main.rs:1503:16:1503:20 | * ... | -| main.rs:1508:14:1508:18 | * ... | -| main.rs:1539:27:1539:29 | * ... | -| main.rs:1653:17:1653:24 | * ... | -| main.rs:1653:18:1653:24 | * ... | -| main.rs:1791:17:1791:21 | * ... | -| main.rs:1806:28:1806:32 | * ... | -| main.rs:2439:13:2439:18 | * ... | -| main.rs:2633:13:2633:31 | ...::from(...) | -| main.rs:2634:13:2634:31 | ...::from(...) | -| main.rs:2635:13:2635:31 | ...::from(...) | -| main.rs:2641:13:2641:31 | ...::from(...) | -| main.rs:2642:13:2642:31 | ...::from(...) | -| main.rs:2643:13:2643:31 | ...::from(...) | -| main.rs:3072:13:3072:17 | x.f() | +| main.rs:841:9:841:14 | x.m2() | +| main.rs:842:9:842:14 | y.m2() | +| main.rs:1092:14:1092:18 | * ... | +| main.rs:1174:26:1174:30 | * ... | +| main.rs:1518:14:1518:21 | * ... | +| main.rs:1518:16:1518:20 | * ... | +| main.rs:1523:14:1523:18 | * ... | +| main.rs:1554:27:1554:29 | * ... | +| main.rs:1668:17:1668:24 | * ... | +| main.rs:1668:18:1668:24 | * ... | +| main.rs:1806:17:1806:21 | * ... | +| main.rs:1821:28:1821:32 | * ... | +| main.rs:2454:13:2454:18 | * ... | +| main.rs:2648:13:2648:31 | ...::from(...) | +| main.rs:2649:13:2649:31 | ...::from(...) | +| main.rs:2650:13:2650:31 | ...::from(...) | +| main.rs:2656:13:2656:31 | ...::from(...) | +| main.rs:2657:13:2657:31 | ...::from(...) | +| main.rs:2658:13:2658:31 | ...::from(...) | +| main.rs:3087:13:3087:17 | x.f() | | pattern_matching.rs:273:13:273:27 | * ... | | pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 4a22a45dc5f..168c8cbcd56 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -827,6 +827,21 @@ mod function_trait_bounds { } } + trait MyTrait2 { + // MyTrait2::m2 + fn m2(self); + } + + trait MyTrait3 { + // MyTrait3::m2 + fn m2(&self); + } + + fn bound_overlap(x: T, y: &T) { + x.m2(); // $ target=MyTrait2::m2 $ SPURIOUS: target=MyTrait3::m2 + y.m2(); // $ target=MyTrait3::m2 $ SPURIOUS: target=MyTrait2::m2 + } + pub fn f() { let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 60bd8d3d405..1c69fe5a44b 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1322,2280 +1322,2290 @@ inferCertainType | main.rs:825:32:827:9 | { ... } | | main.rs:820:10:820:10 | T | | main.rs:826:13:826:13 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:826:13:826:13 | x | T | main.rs:820:10:820:10 | T | -| main.rs:830:16:888:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:831:13:831:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:17:831:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:13:832:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:17:832:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:834:18:834:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:834:18:834:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:834:18:834:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:834:18:834:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:834:26:834:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:835:18:835:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:835:18:835:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:835:18:835:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:835:18:835:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:835:26:835:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:13:837:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:17:837:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:13:838:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:17:838:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:840:18:840:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:840:18:840:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:840:18:840:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:840:18:840:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:840:26:840:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:841:18:841:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:841:18:841:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:841:18:841:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:841:18:841:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:841:26:841:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:13:843:14 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:18:843:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:13:844:14 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:18:844:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:846:31:846:32 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:847:18:847:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:847:18:847:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:847:18:847:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:847:18:847:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:848:33:848:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:832:15:832:18 | SelfParam | | main.rs:830:5:833:5 | Self [trait MyTrait2] | +| main.rs:837:15:837:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:837:15:837:19 | SelfParam | TRef | main.rs:835:5:838:5 | Self [trait MyTrait3] | +| main.rs:840:46:840:46 | x | | main.rs:840:22:840:43 | T | +| main.rs:840:52:840:52 | y | | {EXTERNAL LOCATION} | & | +| main.rs:840:52:840:52 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:840:59:843:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:841:9:841:9 | x | | main.rs:840:22:840:43 | T | +| main.rs:842:9:842:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:842:9:842:9 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:845:16:903:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:846:13:846:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:17:846:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:17:847:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:849:18:849:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:849:18:849:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:850:33:850:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:851:18:851:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:851:18:851:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:851:18:851:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:851:18:851:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:852:31:852:32 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:853:18:853:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:853:18:853:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:853:18:853:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:853:18:853:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:854:33:854:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:18:850:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:13:852:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:17:852:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:13:853:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:17:853:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:855:18:855:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:855:18:855:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:856:33:856:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:857:18:857:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:857:18:857:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:857:18:857:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:857:18:857:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:858:36:858:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:859:18:859:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:859:18:859:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:859:18:859:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:859:18:859:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:860:36:860:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:861:18:861:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:861:18:861:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:861:18:861:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:861:18:861:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:862:36:862:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:863:18:863:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:863:18:863:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:863:18:863:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:863:18:863:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:864:36:864:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:865:18:865:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:865:18:865:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:865:18:865:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:865:18:865:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:867:13:867:14 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:868:16:868:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:871:16:871:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:875:18:875:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:875:18:875:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:875:18:875:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:875:18:875:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:876:39:876:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:877:18:877:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:877:18:877:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:877:18:877:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:877:18:877:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:878:39:878:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:879:18:879:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:879:18:879:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:879:18:879:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:879:18:879:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:880:37:880:38 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:881:18:881:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:881:18:881:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:881:18:881:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:881:18:881:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:882:39:882:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:883:18:883:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:883:18:883:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:883:18:883:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:883:18:883:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:884:39:884:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:885:18:885:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:885:18:885:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:885:18:885:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:885:18:885:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:887:13:887:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:898:19:898:22 | SelfParam | | main.rs:892:5:895:5 | Wrapper | -| main.rs:898:19:898:22 | SelfParam | A | main.rs:897:10:897:10 | A | -| main.rs:898:30:900:9 | { ... } | | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:16 | self | | main.rs:892:5:895:5 | Wrapper | -| main.rs:899:13:899:16 | self | A | main.rs:897:10:897:10 | A | -| main.rs:907:15:907:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:909:15:909:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:913:9:916:9 | { ... } | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:914:13:914:16 | self | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:923:19:923:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:923:19:923:23 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:923:26:923:26 | a | | main.rs:923:16:923:16 | A | -| main.rs:925:22:925:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:925:22:925:26 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:925:29:925:29 | a | | main.rs:925:19:925:19 | A | -| main.rs:925:35:925:35 | b | | main.rs:925:19:925:19 | A | -| main.rs:925:75:928:9 | { ... } | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:13:926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:926:13:926:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:926:22:926:22 | a | | main.rs:925:19:925:19 | A | -| main.rs:927:13:927:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:927:13:927:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:927:22:927:22 | b | | main.rs:925:19:925:19 | A | -| main.rs:936:21:936:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:936:21:936:25 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:938:20:938:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:20:938:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:940:20:940:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:20:940:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:956:15:956:18 | SelfParam | | main.rs:943:5:944:13 | S | -| main.rs:956:45:958:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:966:19:966:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:966:19:966:23 | SelfParam | TRef | main.rs:943:5:944:13 | S | -| main.rs:966:26:966:26 | a | | main.rs:966:16:966:16 | A | -| main.rs:966:46:968:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:966:46:968:9 | { ... } | A | main.rs:966:16:966:16 | A | -| main.rs:967:13:967:32 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:967:30:967:30 | a | | main.rs:966:16:966:16 | A | -| main.rs:975:15:975:18 | SelfParam | | main.rs:946:5:947:14 | S2 | -| main.rs:975:45:977:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:975:45:977:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:13:976:35 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:976:30:976:33 | self | | main.rs:946:5:947:14 | S2 | -| main.rs:982:30:984:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:982:30:984:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:13:983:33 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:989:22:989:26 | thing | | main.rs:989:10:989:19 | T | -| main.rs:990:9:990:13 | thing | | main.rs:989:10:989:19 | T | -| main.rs:997:21:997:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:997:21:997:25 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:997:34:999:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:1001:20:1001:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1001:20:1001:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1001:43:1003:9 | { ... } | | main.rs:943:5:944:13 | S | -| main.rs:1005:20:1005:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1005:20:1005:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1005:43:1007:9 | { ... } | | main.rs:946:5:947:14 | S2 | -| main.rs:1010:16:1038:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1013:18:1013:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1013:18:1013:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1018:18:1018:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1018:18:1018:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1022:18:1022:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1022:18:1022:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1025:18:1025:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:856:18:856:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:13:858:14 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:18:858:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:13:859:14 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:18:859:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:861:31:861:32 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:862:18:862:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:863:33:863:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:864:18:864:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:865:33:865:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:866:18:866:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:867:31:867:32 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:868:18:868:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:869:33:869:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:870:18:870:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:871:33:871:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:872:18:872:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:873:36:873:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:874:18:874:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:875:36:875:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:876:18:876:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:877:36:877:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:878:18:878:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:879:36:879:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:880:18:880:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:883:16:883:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:886:16:886:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:890:18:890:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:891:39:891:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:892:18:892:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:893:39:893:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:894:18:894:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:895:37:895:38 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:896:18:896:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:897:39:897:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:898:18:898:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:899:39:899:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:900:18:900:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | +| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | +| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | +| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | +| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | +| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | +| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | +| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | +| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | +| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | +| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | +| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | +| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | +| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | +| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | +| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | +| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | +| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | +| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1031:18:1031:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1045:19:1045:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1045:19:1045:23 | SelfParam | TRef | main.rs:1042:5:1046:5 | Self [trait Supertrait] | -| main.rs:1045:26:1045:32 | content | | main.rs:1043:9:1043:21 | Content | -| main.rs:1050:24:1050:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1050:24:1050:28 | SelfParam | TRef | main.rs:1048:5:1051:5 | Self [trait Subtrait] | -| main.rs:1059:23:1059:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1059:23:1059:27 | SelfParam | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1059:68:1062:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1060:13:1060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1060:13:1060:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1061:13:1061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1061:13:1061:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1069:19:1069:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1069:19:1069:23 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1069:19:1069:23 | SelfParam | TRef.T | main.rs:1067:10:1067:10 | T | -| main.rs:1069:26:1069:33 | _content | | main.rs:1067:10:1067:10 | T | -| main.rs:1069:51:1071:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1070:22:1070:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1076:24:1076:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1076:24:1076:28 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1076:24:1076:28 | SelfParam | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:15:1077:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1077:15:1077:18 | self | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:15:1077:18 | self | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1081:33:1081:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1081:33:1081:36 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1082:9:1082:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1082:9:1082:12 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1085:35:1085:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1085:35:1085:38 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1085:93:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1086:9:1086:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1086:9:1086:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1087:9:1087:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1087:9:1087:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1090:15:1096:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:28:1091:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1094:28:1094:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1095:37:1095:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1112:15:1112:18 | SelfParam | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1112:15:1112:18 | SelfParam | A | main.rs:1111:10:1111:10 | T | -| main.rs:1112:26:1117:9 | { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:19:1113:22 | self | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1113:19:1113:22 | self | A | main.rs:1111:10:1111:10 | T | -| main.rs:1115:17:1115:32 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1120:16:1126:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1122:13:1122:13 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:17:1122:36 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1124:18:1124:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1124:18:1124:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1124:18:1124:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1124:18:1124:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1125:18:1125:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1125:18:1125:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:26:1125:26 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1147:15:1147:18 | SelfParam | | main.rs:1145:5:1148:5 | Self [trait MyTrait1] | -| main.rs:1152:15:1152:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1152:15:1152:19 | SelfParam | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1155:9:1161:9 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1157:17:1157:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1157:17:1157:20 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1159:27:1159:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1159:27:1159:30 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1166:15:1166:18 | SelfParam | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1169:9:1175:9 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:20 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1173:26:1173:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1173:27:1173:30 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1180:15:1180:18 | SelfParam | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1180:15:1180:18 | SelfParam | A | main.rs:1178:10:1178:10 | T | -| main.rs:1180:26:1182:9 | { ... } | | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:16 | self | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1181:13:1181:16 | self | A | main.rs:1178:10:1178:10 | T | -| main.rs:1189:15:1189:18 | SelfParam | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1189:15:1189:18 | SelfParam | A | main.rs:1187:10:1187:10 | T | -| main.rs:1189:35:1191:9 | { ... } | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1189:35:1191:9 | { ... } | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:13:1190:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1190:26:1190:29 | self | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1190:26:1190:29 | self | A | main.rs:1187:10:1187:10 | T | -| main.rs:1198:44:1198:44 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1198:57:1200:5 | { ... } | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1199:9:1199:9 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1202:56:1202:56 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1202:62:1206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1204:17:1204:17 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1205:18:1205:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1205:18:1205:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1205:18:1205:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1205:18:1205:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1208:16:1232:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1209:13:1209:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:17:1209:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:13:1210:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:17:1210:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1212:18:1212:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1212:18:1212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1212:18:1212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1212:18:1212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1212:26:1212:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1213:18:1213:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1213:18:1213:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1213:26:1213:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:13:1215:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:17:1215:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:13:1216:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:17:1216:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1218:18:1218:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1218:18:1218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1218:18:1218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1218:18:1218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1218:26:1218:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1219:18:1219:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1219:18:1219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1219:18:1219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1219:18:1219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:26:1219:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1221:13:1221:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:13:1222:13 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1224:18:1224:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1224:18:1224:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:26:1224:26 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1225:18:1225:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1225:18:1225:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1225:18:1225:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1225:26:1225:26 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1227:13:1227:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:17:1227:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1228:31:1228:31 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1230:13:1230:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1231:31:1231:31 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1248:22:1248:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1248:22:1248:22 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1248:35:1250:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1248:35:1250:5 | { ... } | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1249:9:1249:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1249:9:1249:9 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1253:17:1253:20 | SelfParam | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1253:29:1255:9 | { ... } | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1258:21:1258:21 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1261:5:1263:5 | { ... } | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1262:9:1262:9 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1265:16:1281:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1267:18:1267:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1267:18:1267:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:26:1267:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1267:29:1267:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1270:18:1270:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1270:18:1270:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1270:26:1270:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1270:26:1270:37 | id::<...>(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:35:1270:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1274:18:1274:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1274:18:1274:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1274:26:1274:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1274:26:1274:44 | id::<...>(...) | TRef | main.rs:1244:5:1244:25 | dyn Trait | -| main.rs:1274:42:1274:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1277:9:1277:25 | into::<...>(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:13:1280:13 | y | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1294:22:1294:25 | SelfParam | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1294:22:1294:25 | SelfParam | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1294:22:1294:25 | SelfParam | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1294:35:1301:9 | { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:19:1295:22 | self | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1295:19:1295:22 | self | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1295:19:1295:22 | self | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:43:1296:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1296:50:1296:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1297:43:1297:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1297:50:1297:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1325:10:1325:10 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1325:30:1328:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1326:17:1326:17 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1327:18:1327:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1327:18:1327:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1342:22:1342:25 | SelfParam | | main.rs:1340:5:1343:5 | Self [trait TraitWithAssocType] | -| main.rs:1350:22:1350:25 | SelfParam | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1350:22:1350:25 | SelfParam | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1350:44:1352:9 | { ... } | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:19 | self | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1351:16:1351:19 | self | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1355:16:1377:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1357:13:1357:14 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:13:1357:14 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:13:1357:14 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1358:18:1358:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1358:18:1358:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1358:18:1358:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1358:18:1358:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1358:26:1358:27 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1358:26:1358:27 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1358:26:1358:27 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:13:1361:14 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:13:1361:14 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:13:1361:14 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1362:18:1362:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1362:18:1362:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1362:18:1362:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1362:18:1362:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1362:26:1362:27 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1362:26:1362:27 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1362:26:1362:27 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:13:1365:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1366:18:1366:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1366:18:1366:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1366:18:1366:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1366:18:1366:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1366:26:1366:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1366:26:1366:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:13:1369:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1370:18:1370:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1370:18:1370:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1370:18:1370:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1370:18:1370:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1370:26:1370:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1370:26:1370:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1370:26:1370:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:9:1372:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1374:13:1374:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1374:13:1374:13 | x | E | main.rs:1304:5:1305:14 | S1 | -| main.rs:1374:13:1374:13 | x | T | main.rs:1330:5:1330:34 | S4 | -| main.rs:1374:13:1374:13 | x | T.T41 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1374:13:1374:13 | x | T.T42 | main.rs:1332:5:1332:22 | S5 | -| main.rs:1374:13:1374:13 | x | T.T42.T5 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1376:22:1376:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1389:16:1389:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1389:16:1389:24 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1389:27:1389:31 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:21:1391:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1391:21:1391:29 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1391:32:1391:36 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:42:1393:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1392:13:1392:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1392:13:1392:16 | self | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1392:22:1392:26 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1398:16:1398:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1398:16:1398:24 | SelfParam | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1398:16:1398:24 | SelfParam | TRef.T | main.rs:1396:10:1396:10 | T | -| main.rs:1398:27:1398:31 | value | | main.rs:1396:10:1396:10 | T | -| main.rs:1398:37:1398:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1402:26:1404:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1402:26:1404:9 | { ... } | T | main.rs:1401:10:1401:10 | T | -| main.rs:1408:20:1408:23 | SelfParam | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1408:41:1413:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:41:1413:9 | { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:19:1409:22 | self | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1464:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:18:1420:37 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1421:18:1421:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1421:18:1421:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1421:18:1421:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1421:18:1421:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1421:26:1421:27 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1421:26:1421:27 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:17:1423:18 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:22:1423:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1424:9:1424:10 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1425:18:1425:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1425:18:1425:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1425:18:1425:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1427:17:1427:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1427:22:1427:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:9:1428:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:18:1429:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1429:18:1429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1429:18:1429:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1429:18:1429:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1429:26:1429:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1431:17:1431:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1431:22:1431:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:9:1432:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1432:23:1432:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1432:28:1432:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:18:1433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1433:18:1433:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1433:18:1433:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:18:1433:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1433:26:1433:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | +| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | +| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | +| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | +| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | +| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | +| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | +| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | +| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | +| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | +| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | +| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | +| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | +| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | +| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | +| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | +| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | +| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | +| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | +| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1404:16:1404:24 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1406:21:1406:29 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1407:13:1407:16 | self | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1413:16:1413:24 | SelfParam | TRef | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRef.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | +| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | +| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1436:18:1436:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1439:18:1439:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1439:18:1439:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1439:18:1439:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1439:18:1439:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1439:26:1439:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:26:1439:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1447:18:1447:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:18:1447:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1451:13:1451:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1452:13:1452:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1454:18:1454:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1457:30:1462:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1458:13:1460:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1458:22:1460:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1463:18:1463:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1463:18:1463:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1463:18:1463:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1463:18:1463:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1481:15:1481:18 | SelfParam | | main.rs:1469:5:1470:19 | S | -| main.rs:1481:15:1481:18 | SelfParam | T | main.rs:1480:10:1480:10 | T | -| main.rs:1481:26:1483:9 | { ... } | | main.rs:1480:10:1480:10 | T | -| main.rs:1482:13:1482:16 | self | | main.rs:1469:5:1470:19 | S | -| main.rs:1482:13:1482:16 | self | T | main.rs:1480:10:1480:10 | T | -| main.rs:1485:15:1485:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1485:15:1485:19 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1485:15:1485:19 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1485:28:1487:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1485:28:1487:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1486:13:1486:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1486:14:1486:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1486:14:1486:17 | self | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1486:14:1486:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1489:15:1489:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1489:15:1489:25 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1489:15:1489:25 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1489:34:1491:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1489:34:1491:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1490:13:1490:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1490:14:1490:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1490:14:1490:17 | self | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1490:14:1490:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1495:29:1495:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1495:29:1495:33 | SelfParam | TRef | main.rs:1494:5:1497:5 | Self [trait ATrait] | -| main.rs:1496:33:1496:36 | SelfParam | | main.rs:1494:5:1497:5 | Self [trait ATrait] | -| main.rs:1502:29:1502:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1502:29:1502:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1502:29:1502:33 | SelfParam | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1502:43:1504:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1503:17:1503:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1503:17:1503:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:17:1503:20 | self | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1507:33:1507:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1507:33:1507:36 | SelfParam | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1507:46:1509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1508:15:1508:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1508:15:1508:18 | self | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1512:16:1562:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1514:18:1514:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1514:18:1514:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1514:18:1514:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1514:18:1514:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1518:18:1518:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1518:18:1518:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1518:18:1518:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1518:18:1518:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1523:18:1523:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1523:18:1523:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1523:18:1523:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1523:18:1523:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1523:26:1523:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1523:26:1523:41 | ...::m2(...) | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1523:38:1523:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m3(...) | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1526:13:1526:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1526:18:1526:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1528:18:1528:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1528:18:1528:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1528:18:1528:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1528:18:1528:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1528:26:1528:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | +| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | +| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | +| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1531:13:1531:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1531:18:1531:23 | &... | | {EXTERNAL LOCATION} | & | | main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1533:26:1533:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1536:13:1536:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1536:18:1536:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | | main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1539:18:1539:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1539:28:1539:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1541:20:1541:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1545:18:1545:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1545:18:1545:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1545:18:1545:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1545:18:1545:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1547:13:1547:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1547:26:1547:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1547:26:1547:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1551:17:1551:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1553:13:1553:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1553:24:1553:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1553:25:1553:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1555:17:1555:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1556:18:1556:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1556:18:1556:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1556:18:1556:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1556:18:1556:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1559:13:1559:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1559:24:1559:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1559:25:1559:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1560:17:1560:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1561:18:1561:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1561:18:1561:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1561:18:1561:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1561:18:1561:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1568:16:1568:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1568:16:1568:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1571:16:1571:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1571:16:1571:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1571:32:1573:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1571:32:1573:9 | { ... } | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1572:13:1572:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1572:13:1572:16 | self | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1580:16:1580:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1580:16:1580:20 | SelfParam | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1580:36:1582:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1580:36:1582:9 | { ... } | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1581:13:1581:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1581:13:1581:16 | self | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1585:16:1588:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1597:16:1597:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1597:16:1597:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1597:16:1597:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1597:32:1599:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1597:32:1599:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1597:32:1599:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1598:13:1598:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1598:13:1598:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1598:13:1598:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:16:1601:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1601:16:1601:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:16:1601:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:23:1601:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1601:23:1601:23 | x | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:23:1601:23 | x | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:42:1603:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1601:42:1603:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:42:1603:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1602:13:1602:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1602:13:1602:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1602:13:1602:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1606:16:1612:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1611:15:1611:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1611:16:1611:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1622:17:1622:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1622:17:1622:25 | SelfParam | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1622:28:1624:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1623:13:1623:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1623:13:1623:16 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1623:26:1623:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1623:26:1623:29 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1630:15:1630:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1630:15:1630:19 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1630:31:1632:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1630:31:1632:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:13:1631:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1631:14:1631:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1631:16:1631:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1631:16:1631:19 | self | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1634:15:1634:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1634:15:1634:25 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1634:37:1636:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1634:37:1636:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:13:1635:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1635:14:1635:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1635:16:1635:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1635:16:1635:19 | self | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1638:15:1638:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1638:15:1638:15 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1638:34:1640:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1638:34:1640:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1639:13:1639:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:13:1639:13 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1642:15:1642:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1642:15:1642:15 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1642:34:1644:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1642:34:1644:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:13:1643:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1643:14:1643:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:16:1643:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:16:1643:16 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1647:16:1660:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1648:13:1648:13 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1648:17:1648:20 | S {...} | | main.rs:1627:5:1627:13 | S | -| main.rs:1649:9:1649:9 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1651:9:1651:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1651:9:1651:17 | ...::f3(...) | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1651:15:1651:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1651:16:1651:16 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1653:19:1653:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1653:20:1653:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1653:21:1653:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1658:9:1658:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1658:22:1658:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1659:18:1659:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1659:18:1659:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1659:18:1659:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:18:1659:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1674:43:1677:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1674:43:1677:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1674:43:1677:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1681:46:1685:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1681:46:1685:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1681:46:1685:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1689:40:1694:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1689:40:1694:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1689:40:1694:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:30:1698:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1698:30:1698:34 | input | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:30:1698:34 | input | T | main.rs:1698:20:1698:27 | T | -| main.rs:1698:69:1705:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1698:69:1705:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:69:1705:5 | { ... } | T | main.rs:1698:20:1698:27 | T | -| main.rs:1699:21:1699:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:21:1699:25 | input | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1699:21:1699:25 | input | T | main.rs:1698:20:1698:27 | T | -| main.rs:1701:22:1701:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1701:22:1701:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1701:22:1701:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1701:22:1701:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1708:16:1724:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1709:9:1711:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1709:37:1709:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1709:37:1709:52 | try_same_error(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:37:1709:52 | try_same_error(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:54:1711:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:22:1710:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1710:22:1710:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1710:22:1710:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1710:22:1710:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1713:9:1715:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1713:37:1713:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:37:1713:55 | try_convert_error(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1713:37:1713:55 | try_convert_error(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1713:57:1715:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1714:22:1714:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1714:22:1714:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1714:22:1714:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1714:22:1714:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1717:9:1719:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1717:37:1717:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1717:37:1717:49 | try_chained(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1717:37:1717:49 | try_chained(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1717:51:1719:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1718:22:1718:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1718:22:1718:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1718:22:1718:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1718:22:1718:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1721:9:1723:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1721:37:1721:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1721:37:1721:63 | try_complex(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:65:1723:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1722:22:1722:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1722:22:1722:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1722:22:1722:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1722:22:1722:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1728:16:1819:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:13:1729:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:17:1731:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:13:1733:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1733:17:1733:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1734:13:1734:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1734:13:1734:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1734:21:1734:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1734:21:1734:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:13:1735:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1735:17:1735:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:13:1736:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1736:17:1736:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:13:1737:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1740:26:1740:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1740:26:1740:30 | SelfParam | TRef | main.rs:1739:9:1743:9 | Self [trait MyTrait] | -| main.rs:1746:26:1746:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1746:26:1746:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1746:26:1746:30 | SelfParam | TRef.TArray | main.rs:1745:14:1745:23 | T | -| main.rs:1746:39:1748:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1746:39:1748:13 | { ... } | TRef | main.rs:1745:14:1745:23 | T | -| main.rs:1747:17:1747:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1747:17:1747:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:17:1747:20 | self | TRef.TArray | main.rs:1745:14:1745:23 | T | -| main.rs:1750:31:1752:13 | { ... } | | main.rs:1745:14:1745:23 | T | -| main.rs:1755:17:1755:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1756:13:1756:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1756:17:1756:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1756:37:1756:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1756:38:1756:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:17:1757:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1760:26:1760:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1760:26:1760:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1760:26:1760:30 | SelfParam | TRef.TSlice | main.rs:1759:14:1759:23 | T | -| main.rs:1760:39:1762:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1760:39:1762:13 | { ... } | TRef | main.rs:1759:14:1759:23 | T | -| main.rs:1761:17:1761:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1761:17:1761:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:17:1761:20 | self | TRef.TSlice | main.rs:1759:14:1759:23 | T | -| main.rs:1764:31:1766:13 | { ... } | | main.rs:1759:14:1759:23 | T | -| main.rs:1769:13:1769:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1769:13:1769:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1769:13:1769:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:25:1769:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1769:26:1769:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:17:1770:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:17:1770:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:17:1770:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1637:17:1637:25 | SelfParam | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1638:13:1638:16 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1638:26:1638:29 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | & | +| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | +| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | +| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | +| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | +| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | +| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | | main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1771:34:1771:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:34:1771:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:34:1771:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | | main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1775:26:1775:30 | SelfParam | TRef.T0 | main.rs:1774:14:1774:23 | T | -| main.rs:1775:26:1775:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | | main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:17:1776:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1776:18:1776:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1776:18:1776:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:18:1776:21 | self | TRef.T0 | main.rs:1774:14:1774:23 | T | -| main.rs:1776:18:1776:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | | main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | -| main.rs:1784:13:1784:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1784:17:1784:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1786:37:1786:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1786:38:1786:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | | main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | | main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | | main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | -| main.rs:1799:13:1799:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1799:17:1799:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | | main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1801:33:1801:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1801:34:1801:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | | main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1805:26:1805:30 | SelfParam | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | | main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:26:1806:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1806:29:1806:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1806:29:1806:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:29:1806:32 | self | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | | main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | -| main.rs:1815:13:1815:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1815:13:1815:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:27:1815:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1816:26:1816:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:26:1816:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1817:46:1817:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1817:47:1817:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:47:1817:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:17:1818:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1824:16:1836:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1825:13:1825:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:17:1825:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:17:1825:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:25:1825:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:13:1826:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:17:1832:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1832:16:1834:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1849:30:1851:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1850:13:1850:31 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1857:16:1857:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1857:22:1857:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1857:41:1862:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1858:13:1861:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1859:20:1859:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1859:29:1859:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1860:20:1860:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1867:23:1867:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1867:23:1867:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1867:34:1867:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1867:45:1870:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1868:13:1868:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1868:13:1868:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1868:23:1868:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1875:16:1875:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1875:22:1875:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1875:41:1880:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1876:13:1879:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1877:20:1877:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1877:29:1877:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1878:20:1878:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1885:23:1885:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1885:23:1885:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1885:34:1885:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1885:45:1888:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1886:13:1886:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1886:13:1886:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1886:23:1886:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1893:22:1893:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1893:41:1898:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1895:20:1895:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1895:29:1895:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1896:20:1896:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1902:23:1902:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1902:23:1902:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1902:34:1902:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1902:45:1905:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1903:13:1903:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1903:13:1903:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1903:23:1903:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1910:16:1910:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1910:22:1910:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1910:41:1915:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1911:13:1914:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1912:20:1912:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1912:29:1912:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1913:20:1913:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1919:23:1919:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1919:23:1919:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1919:34:1919:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1919:45:1922:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1920:13:1920:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1920:13:1920:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1920:23:1920:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1927:16:1927:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1927:22:1927:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1927:41:1932:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1928:13:1931:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1929:20:1929:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1929:29:1929:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1930:20:1930:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1936:23:1936:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1936:23:1936:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1936:34:1936:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1936:45:1939:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1937:13:1937:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1937:13:1937:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1937:23:1937:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1944:19:1944:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1944:25:1944:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1944:44:1949:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1945:13:1948:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1946:20:1946:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1946:29:1946:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1947:20:1947:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1953:26:1953:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1953:26:1953:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1953:37:1953:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1953:48:1956:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1954:13:1954:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1954:13:1954:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1954:23:1954:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1961:18:1961:21 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1961:24:1961:26 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1961:43:1966:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1962:13:1965:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1963:20:1963:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1963:29:1963:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1964:20:1964:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1970:25:1970:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1970:25:1970:33 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1970:36:1970:38 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1970:47:1973:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1971:13:1971:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1971:13:1971:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1971:23:1971:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1978:19:1978:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1978:25:1978:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1978:44:1983:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1979:13:1982:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1980:20:1980:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1980:29:1980:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1981:20:1981:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1987:26:1987:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1987:26:1987:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1987:37:1987:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1987:48:1990:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1988:13:1988:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1988:13:1988:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1988:23:1988:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1995:16:1995:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1995:22:1995:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1995:40:2000:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1996:13:1999:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1997:20:1997:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1997:30:1997:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1998:20:1998:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2004:23:2004:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2004:23:2004:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2004:34:2004:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2004:44:2007:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2005:13:2005:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2005:13:2005:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2005:24:2005:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2012:16:2012:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2012:22:2012:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2012:40:2017:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2013:13:2016:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2014:20:2014:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2014:30:2014:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2015:20:2015:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:23:2021:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2021:23:2021:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2021:34:2021:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:44:2024:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2022:13:2022:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2022:13:2022:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2022:24:2022:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2029:16:2029:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2029:30:2034:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2030:13:2033:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2031:21:2031:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2032:21:2032:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2039:16:2039:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2039:30:2044:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2040:13:2043:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2041:21:2041:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2042:21:2042:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2048:15:2048:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2048:15:2048:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2048:22:2048:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2048:22:2048:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2048:44:2050:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:13:2049:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2049:13:2049:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:13:2049:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:13:2049:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:23:2049:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:23:2049:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:34:2049:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2049:34:2049:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:34:2049:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:44:2049:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:44:2049:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2052:15:2052:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2052:15:2052:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2052:22:2052:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2052:22:2052:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2052:44:2054:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:13:2053:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2053:13:2053:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:13:2053:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:13:2053:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:23:2053:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:23:2053:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:34:2053:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2053:34:2053:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:34:2053:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:44:2053:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:44:2053:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2058:24:2058:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2058:24:2058:28 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2058:31:2058:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2058:31:2058:35 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2058:75:2060:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2058:75:2060:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2059:14:2059:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2059:14:2059:17 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:23:2059:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2059:23:2059:26 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:43:2059:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2059:45:2059:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:45:2059:49 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:55:2059:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:55:2059:59 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2062:15:2062:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2062:15:2062:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2062:22:2062:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2062:22:2062:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2062:44:2064:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:13:2063:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2063:13:2063:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:13:2063:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:13:2063:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | +| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | & | +| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1882:23:1882:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1883:13:1883:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1884:13:1884:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1900:23:1900:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1901:13:1901:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1902:13:1902:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1917:23:1917:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1918:13:1918:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1919:13:1919:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1934:23:1934:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1935:13:1935:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1936:13:1936:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1951:23:1951:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1952:13:1952:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1953:13:1953:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1968:26:1968:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1969:13:1969:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1970:13:1970:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1985:25:1985:33 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1986:13:1986:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1987:13:1987:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2002:26:2002:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2003:13:2003:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2004:13:2004:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2019:23:2019:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2020:13:2020:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2021:13:2021:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2036:23:2036:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2037:13:2037:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2038:13:2038:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:33:2063:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2063:33:2063:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:33:2063:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:42:2063:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:42:2063:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2066:15:2066:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2066:15:2066:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2066:22:2066:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2066:22:2066:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2066:44:2068:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:13:2067:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2067:13:2067:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:13:2067:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:13:2067:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:23:2067:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:23:2067:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:34:2067:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2067:34:2067:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:34:2067:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:44:2067:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:44:2067:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2070:15:2070:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2070:15:2070:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2070:22:2070:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2070:22:2070:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2070:44:2072:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:13:2071:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2071:13:2071:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:13:2071:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:13:2071:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:33:2071:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2071:33:2071:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:33:2071:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:42:2071:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:42:2071:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2074:15:2074:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2074:15:2074:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2074:22:2074:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:22:2074:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2074:44:2076:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:13:2075:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2075:13:2075:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:13:2075:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:13:2075:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:23:2075:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:23:2075:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:34:2075:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2075:34:2075:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:34:2075:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:44:2075:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:44:2075:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2079:26:2079:26 | a | | main.rs:2079:18:2079:23 | T | -| main.rs:2079:32:2079:32 | b | | main.rs:2079:18:2079:23 | T | -| main.rs:2080:9:2080:9 | a | | main.rs:2079:18:2079:23 | T | -| main.rs:2080:13:2080:13 | b | | main.rs:2079:18:2079:23 | T | -| main.rs:2083:16:2214:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2087:23:2087:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2087:31:2087:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:23:2088:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:31:2088:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:30:2089:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:31:2090:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:30:2091:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:32:2092:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:23:2095:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:31:2095:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:39:2100:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:45:2100:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:17:2103:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:34:2103:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:9:2104:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:27:2104:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:17:2106:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:34:2106:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:9:2107:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:27:2107:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2109:17:2109:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2109:34:2109:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:9:2110:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:27:2110:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:17:2112:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:34:2112:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:9:2113:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:27:2113:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:17:2115:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:34:2115:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:9:2116:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:27:2116:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:26:2119:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:34:2119:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:25:2120:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:33:2120:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:26:2121:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:34:2121:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:23:2122:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:32:2122:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2126:17:2126:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2126:37:2126:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:9:2127:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:30:2127:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:17:2129:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:36:2129:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:9:2130:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:29:2130:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2132:17:2132:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2132:37:2132:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:9:2133:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:30:2133:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:17:2135:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:34:2135:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:9:2136:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:28:2136:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:17:2138:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:34:2138:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:9:2139:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:28:2139:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:24:2141:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:13:2145:14 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2145:18:2145:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2146:13:2146:14 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2149:23:2149:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2149:29:2149:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2151:28:2151:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2152:29:2152:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2153:28:2153:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2154:29:2154:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:24:2157:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:29:2157:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2164:17:2164:31 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2164:35:2164:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2165:9:2165:23 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2165:28:2165:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2167:17:2167:31 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2167:35:2167:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2168:9:2168:23 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2168:28:2168:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2170:17:2170:31 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2170:35:2170:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2171:9:2171:23 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2171:28:2171:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2173:17:2173:31 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2173:35:2173:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2174:9:2174:23 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2174:28:2174:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2176:17:2176:31 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2176:35:2176:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2177:9:2177:23 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2177:28:2177:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:27:2180:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:32:2180:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:26:2181:27 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:31:2181:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:27:2182:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:32:2182:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:24:2183:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:30:2183:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2187:17:2187:34 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2187:38:2187:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2188:9:2188:26 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2188:31:2188:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2190:17:2190:33 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2190:37:2190:38 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2191:9:2191:25 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2191:30:2191:31 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2193:17:2193:34 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2193:38:2193:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2194:9:2194:26 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2194:31:2194:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2196:17:2196:31 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2196:35:2196:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2197:9:2197:23 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2197:29:2197:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2199:17:2199:31 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2199:35:2199:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2200:9:2200:23 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2200:29:2200:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2203:25:2203:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2208:30:2208:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2213:30:2213:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2223:18:2223:21 | SelfParam | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2223:24:2223:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2226:25:2228:5 | { ... } | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2231:9:2231:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:9:2235:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:9:2235:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2244:13:2244:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2244:13:2244:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2244:13:2244:42 | SelfParam | Ptr.TRef | main.rs:2238:5:2238:14 | S2 | -| main.rs:2245:13:2245:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2246:44:2248:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2246:44:2248:9 | { ... } | T | main.rs:2220:5:2220:14 | S1 | -| main.rs:2255:22:2263:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2256:9:2256:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2256:9:2256:12 | f1(...) | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2257:9:2257:12 | f2(...) | | main.rs:2230:16:2230:39 | impl ... | -| main.rs:2258:9:2258:12 | f3(...) | | main.rs:2234:16:2234:39 | impl ... | -| main.rs:2259:9:2259:12 | f4(...) | | main.rs:2251:16:2251:39 | impl ... | -| main.rs:2261:13:2261:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2261:17:2261:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:9:2262:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2273:15:2273:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2273:15:2273:19 | SelfParam | TRef | main.rs:2272:5:2274:5 | Self [trait Trait1] | -| main.rs:2273:22:2273:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2277:15:2277:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2277:15:2277:19 | SelfParam | TRef | main.rs:2276:5:2278:5 | Self [trait Trait2] | -| main.rs:2277:22:2277:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2281:15:2281:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2281:15:2281:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2281:22:2281:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2285:15:2285:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2285:15:2285:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2285:22:2285:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2293:18:2293:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2293:18:2293:22 | SelfParam | TRef | main.rs:2292:5:2294:5 | Self [trait MyTrait] | -| main.rs:2297:18:2297:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2297:18:2297:22 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2297:31:2299:9 | { ... } | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2303:18:2303:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2303:18:2303:22 | SelfParam | TRef | main.rs:2270:5:2270:22 | S3 | -| main.rs:2303:18:2303:22 | SelfParam | TRef.T3 | main.rs:2302:10:2302:17 | T | -| main.rs:2303:30:2306:9 | { ... } | | main.rs:2302:10:2302:17 | T | -| main.rs:2304:25:2304:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2304:25:2304:28 | self | TRef | main.rs:2270:5:2270:22 | S3 | -| main.rs:2304:25:2304:28 | self | TRef.T3 | main.rs:2302:10:2302:17 | T | -| main.rs:2313:41:2313:41 | t | | main.rs:2313:26:2313:38 | B | -| main.rs:2313:52:2315:5 | { ... } | | main.rs:2313:23:2313:23 | A | -| main.rs:2314:9:2314:9 | t | | main.rs:2313:26:2313:38 | B | -| main.rs:2317:34:2317:34 | x | | main.rs:2317:24:2317:31 | T | -| main.rs:2317:59:2319:5 | { ... } | | main.rs:2317:43:2317:57 | impl ... | -| main.rs:2317:59:2319:5 | { ... } | impl(T) | main.rs:2317:24:2317:31 | T | -| main.rs:2318:12:2318:12 | x | | main.rs:2317:24:2317:31 | T | -| main.rs:2321:34:2321:34 | x | | main.rs:2321:24:2321:31 | T | -| main.rs:2321:67:2323:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2321:67:2323:5 | { ... } | T | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2321:67:2323:5 | { ... } | T.impl(T) | main.rs:2321:24:2321:31 | T | -| main.rs:2322:17:2322:17 | x | | main.rs:2321:24:2321:31 | T | -| main.rs:2325:34:2325:34 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2325:78:2327:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2325:78:2327:5 | { ... } | T0 | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2325:78:2327:5 | { ... } | T0.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2325:78:2327:5 | { ... } | T1 | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2325:78:2327:5 | { ... } | T1.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:9:2326:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:13:2326:13 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2326:28:2326:28 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2329:26:2329:26 | t | | main.rs:2329:29:2329:43 | impl ... | -| main.rs:2329:51:2331:5 | { ... } | | main.rs:2329:23:2329:23 | A | -| main.rs:2330:9:2330:9 | t | | main.rs:2329:29:2329:43 | impl ... | -| main.rs:2333:16:2347:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2334:13:2334:13 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2334:17:2334:20 | f1(...) | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2335:9:2335:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2336:9:2336:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2337:13:2337:13 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2337:17:2337:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2338:32:2338:32 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2339:13:2339:13 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2339:17:2339:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2340:32:2340:32 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | | main.rs:2317:43:2317:57 | impl ... | -| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0 | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1 | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2357:16:2357:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2357:16:2357:20 | SelfParam | TRef | main.rs:2353:5:2354:13 | S | -| main.rs:2357:31:2359:9 | { ... } | | main.rs:2353:5:2354:13 | S | -| main.rs:2368:26:2370:9 | { ... } | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2368:26:2370:9 | { ... } | T | main.rs:2367:10:2367:10 | T | -| main.rs:2369:13:2369:38 | MyVec {...} | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2369:27:2369:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2369:27:2369:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2372:17:2372:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2372:17:2372:25 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2372:17:2372:25 | SelfParam | TRef.T | main.rs:2367:10:2367:10 | T | -| main.rs:2372:28:2372:32 | value | | main.rs:2367:10:2367:10 | T | -| main.rs:2372:38:2374:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2373:13:2373:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2373:13:2373:16 | self | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2373:13:2373:16 | self | TRef.T | main.rs:2367:10:2367:10 | T | -| main.rs:2373:28:2373:32 | value | | main.rs:2367:10:2367:10 | T | -| main.rs:2381:18:2381:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2381:18:2381:22 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2381:18:2381:22 | SelfParam | TRef.T | main.rs:2377:10:2377:10 | T | -| main.rs:2381:25:2381:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2381:56:2383:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2381:56:2383:9 | { ... } | TRef | main.rs:2377:10:2377:10 | T | -| main.rs:2382:13:2382:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2382:14:2382:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2382:14:2382:17 | self | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2382:14:2382:17 | self | TRef.T | main.rs:2377:10:2377:10 | T | -| main.rs:2382:24:2382:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2386:22:2386:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2386:22:2386:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2386:22:2386:26 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | -| main.rs:2386:35:2388:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2387:17:2387:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:17:2387:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:17:2387:21 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | -| main.rs:2390:37:2390:37 | a | | main.rs:2390:20:2390:34 | T | -| main.rs:2390:43:2390:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2394:9:2394:9 | a | | main.rs:2390:20:2390:34 | T | -| main.rs:2394:11:2394:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2397:16:2408:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2398:17:2398:19 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2398:23:2398:34 | ...::new(...) | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2399:9:2399:11 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2402:13:2402:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2402:13:2402:14 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2402:26:2402:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:17:2403:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:17:2403:18 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2405:29:2405:31 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2407:9:2407:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2407:23:2407:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2407:24:2407:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2407:24:2407:25 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2412:16:2414:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2413:25:2413:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2413:25:2413:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2413:25:2413:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2413:38:2413:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2413:38:2413:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2422:19:2422:22 | SelfParam | | main.rs:2418:5:2423:5 | Self [trait MyAdd] | -| main.rs:2422:25:2422:27 | rhs | | main.rs:2418:17:2418:26 | Rhs | -| main.rs:2429:19:2429:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:25:2429:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:45:2431:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:13:2430:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:19:2438:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:25:2438:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2438:25:2438:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:46:2440:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:14:2439:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:14:2439:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2447:19:2447:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2447:25:2447:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2447:46:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:16:2448:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2462:19:2462:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2462:19:2462:22 | SelfParam | T | main.rs:2458:10:2458:17 | T | -| main.rs:2462:25:2462:29 | other | | main.rs:2456:5:2456:19 | S | -| main.rs:2462:25:2462:29 | other | T | main.rs:2458:10:2458:17 | T | -| main.rs:2462:54:2464:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:16:2463:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:16:2463:19 | self | T | main.rs:2458:10:2458:17 | T | -| main.rs:2463:31:2463:35 | other | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:31:2463:35 | other | T | main.rs:2458:10:2458:17 | T | -| main.rs:2471:19:2471:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2471:19:2471:22 | SelfParam | T | main.rs:2467:10:2467:17 | T | -| main.rs:2471:25:2471:29 | other | | main.rs:2467:10:2467:17 | T | -| main.rs:2471:51:2473:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2472:16:2472:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2472:16:2472:19 | self | T | main.rs:2467:10:2467:17 | T | -| main.rs:2472:31:2472:35 | other | | main.rs:2467:10:2467:17 | T | -| main.rs:2483:19:2483:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2483:19:2483:22 | SelfParam | T | main.rs:2476:14:2476:14 | T | -| main.rs:2483:25:2483:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2483:25:2483:29 | other | TRef | main.rs:2476:14:2476:14 | T | -| main.rs:2483:55:2485:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2484:16:2484:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2484:16:2484:19 | self | T | main.rs:2476:14:2476:14 | T | -| main.rs:2484:31:2484:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:31:2484:35 | other | TRef | main.rs:2476:14:2476:14 | T | -| main.rs:2490:20:2490:24 | value | | main.rs:2488:18:2488:18 | T | -| main.rs:2495:20:2495:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2495:40:2497:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:13:2496:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2502:20:2502:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2502:41:2508:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:16:2503:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2513:21:2513:25 | value | | main.rs:2511:19:2511:19 | T | -| main.rs:2513:31:2513:31 | x | | main.rs:2511:5:2514:5 | Self [trait MyFrom2] | -| main.rs:2518:21:2518:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:33:2518:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:48:2520:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2519:13:2519:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2525:21:2525:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2525:34:2525:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2525:49:2531:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2526:16:2526:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2536:15:2536:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | -| main.rs:2539:15:2539:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | -| main.rs:2544:15:2544:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2544:31:2546:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:13:2545:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2549:15:2549:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2549:32:2551:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:13:2550:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2556:15:2556:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2556:31:2558:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2561:15:2561:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2561:32:2563:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:13:2562:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2566:16:2591:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2567:13:2567:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:9:2568:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:18:2568:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2569:19:2569:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2572:11:2572:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2572:26:2572:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:24:2573:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2574:25:2574:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:13:2576:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:17:2576:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:30:2576:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2578:13:2578:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:38:2578:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:9:2579:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2579:23:2579:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:30:2579:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2580:29:2580:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:27:2581:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:34:2581:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:9:2583:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:17:2583:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRef | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | & | +| main.rs:2260:13:2260:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | +| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | +| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | +| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | +| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | +| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | +| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | +| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | +| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | +| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | +| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | +| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2387:17:2387:25 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2388:13:2388:16 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | +| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | +| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | +| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | +| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | +| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | +| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | +| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | +| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | +| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | | main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2586:9:2586:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:25:2587:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2598:26:2600:9 | { ... } | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2599:13:2599:25 | MyCallable {...} | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2602:17:2602:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2602:17:2602:21 | SelfParam | TRef | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2602:31:2604:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2607:16:2714:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2610:9:2610:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2610:18:2610:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2610:28:2610:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:43:2611:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:40:2612:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2614:13:2614:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2614:21:2614:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2614:22:2614:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:9:2615:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:18:2615:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:24:2615:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2617:13:2617:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2617:21:2617:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2617:22:2617:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:9:2618:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:18:2618:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:24:2618:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2620:13:2620:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2620:13:2620:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2620:31:2620:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:9:2621:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:18:2621:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:18:2621:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:24:2621:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2623:13:2623:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2623:13:2623:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2623:31:2623:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:9:2624:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:18:2624:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:18:2624:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:24:2624:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:17:2626:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:28:2626:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:29:2626:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:29:2626:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:36:2626:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:36:2626:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:43:2626:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:43:2626:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:9:2627:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:18:2627:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2627:19:2627:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:28:2627:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:9:2628:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:18:2628:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:23:2628:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:32:2628:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:18:2629:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:27:2629:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2631:13:2631:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:9:2636:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:13:2633:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2633:26:2633:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2633:26:2633:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2637:9:2637:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2637:18:2637:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2637:27:2637:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2639:13:2639:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2640:9:2644:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2640:10:2644:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:13:2641:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2641:26:2641:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:26:2641:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2645:9:2645:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2645:18:2645:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2645:27:2645:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2647:13:2647:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:25:2647:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:26:2647:42 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:45:2647:61 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:64:2647:80 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2648:9:2652:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2649:12:2649:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2650:9:2652:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2656:9:2656:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2656:18:2656:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2656:24:2656:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:9:2657:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:18:2657:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2657:19:2657:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:19:2657:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:28:2657:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:13:2658:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:21:2658:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:9:2659:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:18:2659:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:24:2659:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:13:2660:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2660:26:2660:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:9:2661:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:18:2661:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2661:19:2661:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2661:20:2661:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:26:2661:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:32:2661:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:38:2661:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:50:2661:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2663:13:2663:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2664:9:2667:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2665:20:2665:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2666:18:2666:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2668:9:2668:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2668:18:2668:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2668:25:2668:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:9:2673:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:24:2673:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2675:13:2675:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2675:13:2675:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2675:13:2675:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2675:32:2675:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2675:33:2675:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:9:2676:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:18:2676:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:18:2676:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:18:2676:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:25:2676:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2678:22:2678:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2678:23:2678:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:9:2679:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:25:2679:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2681:13:2681:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2681:21:2681:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2681:31:2681:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2681:32:2681:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:9:2682:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:18:2682:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:24:2682:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2684:13:2684:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2684:13:2684:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2684:13:2684:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2684:13:2684:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2684:32:2684:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2684:33:2684:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:9:2685:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:18:2685:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:18:2685:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:18:2685:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:18:2685:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:24:2685:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2687:17:2687:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:17:2687:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:25:2687:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:25:2687:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:9:2688:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:9:2688:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:20:2688:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2689:18:2689:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:18:2689:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:24:2689:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2693:17:2696:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:13:2695:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:29:2695:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2698:17:2698:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2698:17:2698:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2698:24:2698:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2698:24:2698:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:9:2699:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:9:2699:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:24:2699:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2699:24:2699:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:33:2699:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2699:33:2699:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:33:2700:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2701:20:2701:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:20:2701:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:32:2701:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:9:2702:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:22:2702:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:22:2702:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:36:2702:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:13:2703:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2703:29:2703:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:29:2703:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:41:2703:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2704:29:2704:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2704:30:2704:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:30:2704:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:35:2704:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2708:17:2708:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2710:17:2713:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2710:23:2710:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:9:2713:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2712:13:2712:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2724:40:2726:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2724:40:2726:9 | { ... } | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2724:40:2726:9 | { ... } | T.T | main.rs:2723:10:2723:19 | T | -| main.rs:2728:30:2730:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2728:30:2730:9 | { ... } | T | main.rs:2723:10:2723:19 | T | -| main.rs:2732:19:2732:22 | SelfParam | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2732:19:2732:22 | SelfParam | T | main.rs:2723:10:2723:19 | T | -| main.rs:2732:33:2734:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2732:33:2734:9 | { ... } | T | main.rs:2723:10:2723:19 | T | -| main.rs:2733:13:2733:16 | self | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2733:13:2733:16 | self | T | main.rs:2723:10:2723:19 | T | -| main.rs:2745:15:2745:15 | x | | main.rs:2745:12:2745:12 | T | -| main.rs:2745:26:2747:5 | { ... } | | main.rs:2745:12:2745:12 | T | -| main.rs:2746:9:2746:9 | x | | main.rs:2745:12:2745:12 | T | -| main.rs:2749:16:2771:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2750:13:2750:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2750:13:2750:14 | x1 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2750:13:2750:14 | x1 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2751:13:2751:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x2 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2751:13:2751:14 | x2 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2752:13:2752:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x3 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2752:13:2752:14 | x3 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:13:2753:14 | x4 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2753:13:2753:14 | x4 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:18:2753:48 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2753:18:2753:48 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:35:2753:47 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:13:2754:14 | x5 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:13:2754:14 | x5 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2754:18:2754:42 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:18:2754:42 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2754:29:2754:41 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2758:21:2758:33 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2759:13:2759:15 | x10 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2759:13:2759:15 | x10 | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2759:19:2762:9 | S5::<...> {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2759:19:2762:9 | S5::<...> {...} | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2763:13:2763:15 | x11 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2763:19:2763:34 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2764:13:2764:15 | x12 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2764:19:2764:33 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2765:13:2765:15 | x13 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2765:19:2768:9 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2767:20:2767:32 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2769:13:2769:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2769:19:2769:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:13:2770:15 | x15 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2770:13:2770:15 | x15 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2770:19:2770:37 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2770:19:2770:37 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2779:35:2781:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2779:35:2781:9 | { ... } | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2779:35:2781:9 | { ... } | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:13:2780:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:14:2780:18 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:21:2780:25 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2782:16:2782:19 | SelfParam | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2782:22:2782:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2785:16:2819:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:13:2786:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2786:13:2786:13 | a | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:13:2786:13 | a | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:17:2787:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:17 | b | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:17:2787:17 | b | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:13:2788:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:13:2789:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:13:2790:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2792:9:2792:9 | a | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:9 | a | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2793:9:2793:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | b | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2793:9:2793:9 | b | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2806:13:2806:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2806:20:2806:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:13:2807:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:22:2807:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:13:2808:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2808:23:2808:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2810:20:2810:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2812:13:2812:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2812:30:2812:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2812:30:2812:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2812:30:2812:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2812:30:2812:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2813:25:2813:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:25:2813:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:25:2813:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:25:2813:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2817:13:2817:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2817:17:2817:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2818:9:2818:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2824:27:2846:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2825:13:2825:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2825:13:2825:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2825:27:2825:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2825:27:2825:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2825:36:2825:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2828:15:2828:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2828:15:2828:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2829:24:2831:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2830:26:2830:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2830:26:2830:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2830:26:2830:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2830:26:2830:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2832:22:2835:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2834:26:2834:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2834:26:2834:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2839:13:2839:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:13:2839:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:26:2839:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:26:2839:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:35:2839:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:35:2839:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:44:2839:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:15:2840:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:15:2840:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:26:2844:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2843:26:2843:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2843:26:2843:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2855:36:2857:9 | { ... } | | main.rs:2852:5:2852:22 | Path | -| main.rs:2856:13:2856:19 | Path {...} | | main.rs:2852:5:2852:22 | Path | -| main.rs:2859:29:2859:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2859:29:2859:33 | SelfParam | TRef | main.rs:2852:5:2852:22 | Path | -| main.rs:2859:59:2861:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2859:59:2861:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2859:59:2861:9 | { ... } | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2860:16:2860:29 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2867:39:2869:9 | { ... } | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2868:13:2868:22 | PathBuf {...} | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2877:18:2877:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2877:18:2877:22 | SelfParam | TRef | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2877:34:2881:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2877:34:2881:9 | { ... } | TRef | main.rs:2852:5:2852:22 | Path | -| main.rs:2879:33:2879:43 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | -| main.rs:2880:13:2880:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2884:16:2892:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2885:13:2885:17 | path1 | | main.rs:2852:5:2852:22 | Path | -| main.rs:2885:21:2885:31 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | -| main.rs:2886:21:2886:25 | path1 | | main.rs:2852:5:2852:22 | Path | -| main.rs:2889:13:2889:20 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2889:24:2889:37 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2890:24:2890:31 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2897:14:2897:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2897:14:2897:18 | SelfParam | TRef | main.rs:2896:5:2898:5 | Self [trait MyTrait] | -| main.rs:2904:14:2904:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2904:14:2904:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2904:14:2904:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2904:28:2906:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:13:2905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2905:13:2905:16 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2905:13:2905:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2910:14:2910:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2910:14:2910:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2910:14:2910:18 | SelfParam | TRef.T | main.rs:2900:5:2901:19 | S | -| main.rs:2910:14:2910:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2910:28:2912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:13:2911:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2911:13:2911:16 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2911:13:2911:16 | self | TRef.T | main.rs:2900:5:2901:19 | S | -| main.rs:2911:13:2911:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2916:15:2916:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2916:15:2916:19 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2916:15:2916:19 | SelfParam | TRef.T | main.rs:2915:10:2915:16 | T | -| main.rs:2916:33:2918:9 | { ... } | | main.rs:2900:5:2901:19 | S | -| main.rs:2916:33:2918:9 | { ... } | T | main.rs:2900:5:2901:19 | S | -| main.rs:2916:33:2918:9 | { ... } | T.T | main.rs:2915:10:2915:16 | T | -| main.rs:2917:17:2917:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2917:17:2917:20 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2917:17:2917:20 | self | TRef.T | main.rs:2915:10:2915:16 | T | -| main.rs:2921:14:2921:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2921:48:2938:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2921:48:2938:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2921:48:2938:5 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2921:48:2938:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2922:20:2922:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2932:12:2932:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2934:13:2934:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2934:13:2934:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:13:2936:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:13:2936:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2942:22:2946:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2943:18:2943:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2943:33:2945:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:13:2944:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2951:11:2951:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2951:30:2959:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2954:13:2956:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2954:16:2954:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2954:21:2956:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2962:20:2969:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2967:18:2967:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2967:18:2967:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2967:18:2967:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2967:18:2967:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2971:20:2973:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2976:11:2976:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2976:30:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:13:2977:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2977:17:2981:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2978:13:2980:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2978:16:2978:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2978:21:2980:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2982:18:2982:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2982:18:2982:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | +| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | +| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | +| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | +| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2982:29:2982:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2988:16:3035:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2990:13:2990:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:13:2990:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2994:26:2994:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2994:26:2994:28 | opt | T | main.rs:2994:23:2994:23 | T | -| main.rs:2994:42:2994:42 | x | | main.rs:2994:23:2994:23 | T | -| main.rs:2994:48:2994:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:9:2997:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3004:13:3004:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3004:17:3004:39 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3005:13:3005:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3005:13:3005:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:40:3005:40 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3006:13:3006:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:17:3006:52 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3006:17:3006:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3008:13:3008:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3008:13:3008:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3008:17:3010:9 | ...::B::<...> {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:20:3009:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3012:29:3012:29 | e | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3012:29:3012:29 | e | T1 | main.rs:3012:26:3012:26 | T | -| main.rs:3012:29:3012:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3012:53:3012:53 | x | | main.rs:3012:26:3012:26 | T | -| main.rs:3012:59:3012:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3015:13:3015:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3015:17:3017:9 | ...::B {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3016:20:3016:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3018:9:3018:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3018:23:3018:23 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3021:13:3021:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:13:3021:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:13:3021:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3025:29:3025:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3025:29:3025:31 | res | E | main.rs:3025:26:3025:26 | E | -| main.rs:3025:29:3025:31 | res | T | main.rs:3025:23:3025:23 | T | -| main.rs:3025:48:3025:48 | x | | main.rs:3025:26:3025:26 | E | -| main.rs:3025:54:3025:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3028:9:3028:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3028:23:3028:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3030:17:3030:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3030:17:3030:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3030:21:3030:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3030:21:3030:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:9:3031:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:9:3031:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3034:9:3034:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3034:9:3034:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:14:3044:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3044:14:3044:18 | SelfParam | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:21:3044:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3044:21:3044:25 | other | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:44:3046:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3044:44:3046:9 | { ... } | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3045:13:3045:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3045:13:3045:16 | self | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3051:14:3051:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3051:28:3053:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3052:13:3052:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3058:14:3058:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3058:28:3060:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3059:13:3059:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3065:14:3065:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3065:14:3065:17 | SelfParam | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3065:28:3067:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3065:28:3067:9 | { ... } | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3066:13:3066:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3066:13:3066:16 | self | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3070:25:3074:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3076:12:3084:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3078:13:3078:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3078:17:3078:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3079:17:3079:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3082:13:3082:13 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3083:23:3083:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3092:11:3127:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:5:3095:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:20:3095:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:41:3095:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3096:5:3096:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3112:5:3112:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3123:5:3123:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3124:5:3124:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3125:5:3125:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3125:5:3125:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3125:5:3125:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:3125:5:3125:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3125:16:3125:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3126:5:3126:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | +| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | +| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | +| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | +| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | +| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | +| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | +| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -6783,4338 +6793,4350 @@ inferType | main.rs:826:13:826:13 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:826:13:826:13 | x | T | main.rs:820:10:820:10 | T | | main.rs:826:13:826:15 | x.a | | main.rs:820:10:820:10 | T | -| main.rs:830:16:888:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:831:13:831:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:13:831:13 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:831:17:831:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:17:831:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:831:30:831:31 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:832:13:832:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:13:832:13 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:832:17:832:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:17:832:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:832:30:832:31 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:834:18:834:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:834:18:834:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:834:18:834:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:834:18:834:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:834:26:834:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:834:26:834:26 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:834:26:834:31 | x.m1() | | main.rs:743:5:744:14 | S1 | -| main.rs:835:18:835:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:835:18:835:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:835:18:835:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:835:18:835:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:835:26:835:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:835:26:835:26 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:835:26:835:31 | y.m1() | | main.rs:745:5:746:14 | S2 | -| main.rs:837:13:837:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:13:837:13 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:837:17:837:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:17:837:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:837:30:837:31 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:838:13:838:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:13:838:13 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:838:17:838:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:17:838:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:838:30:838:31 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:840:18:840:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:840:18:840:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:840:18:840:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:840:18:840:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:840:26:840:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:840:26:840:26 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:840:26:840:31 | x.m2() | | main.rs:743:5:744:14 | S1 | -| main.rs:841:18:841:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:841:18:841:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:841:18:841:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:841:18:841:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:841:26:841:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:841:26:841:26 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:841:26:841:31 | y.m2() | | main.rs:745:5:746:14 | S2 | -| main.rs:843:13:843:14 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:13:843:14 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:843:18:843:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:18:843:34 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:843:31:843:32 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:844:13:844:14 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:13:844:14 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:844:18:844:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:18:844:34 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:844:31:844:32 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:846:13:846:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:846:17:846:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:846:31:846:32 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:846:31:846:32 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:847:18:847:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:847:18:847:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:847:18:847:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:847:18:847:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:847:26:847:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:848:13:848:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:848:17:848:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:848:33:848:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:848:33:848:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:832:15:832:18 | SelfParam | | main.rs:830:5:833:5 | Self [trait MyTrait2] | +| main.rs:837:15:837:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:837:15:837:19 | SelfParam | TRef | main.rs:835:5:838:5 | Self [trait MyTrait3] | +| main.rs:840:46:840:46 | x | | main.rs:840:22:840:43 | T | +| main.rs:840:52:840:52 | y | | {EXTERNAL LOCATION} | & | +| main.rs:840:52:840:52 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:840:59:843:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:841:9:841:9 | x | | main.rs:840:22:840:43 | T | +| main.rs:841:9:841:14 | x.m2() | | {EXTERNAL LOCATION} | () | +| main.rs:842:9:842:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:842:9:842:9 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:842:9:842:14 | y.m2() | | {EXTERNAL LOCATION} | () | +| main.rs:845:16:903:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:846:13:846:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:13:846:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:846:17:846:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:17:846:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:846:30:846:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:847:13:847:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:847:17:847:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:17:847:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:847:30:847:31 | S2 | | main.rs:745:5:746:14 | S2 | | main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:849:18:849:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:849:18:849:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:849:26:849:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:850:13:850:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:850:17:850:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:850:33:850:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:850:33:850:34 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:851:18:851:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:851:18:851:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:851:18:851:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:851:18:851:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:851:26:851:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:852:13:852:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:852:17:852:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:852:31:852:32 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:852:31:852:32 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:853:18:853:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:853:18:853:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:853:18:853:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:853:18:853:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:853:26:853:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:854:13:854:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:854:17:854:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:854:33:854:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:854:33:854:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:849:26:849:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:849:26:849:31 | x.m1() | | main.rs:743:5:744:14 | S1 | +| main.rs:850:18:850:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:26:850:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:850:26:850:31 | y.m1() | | main.rs:745:5:746:14 | S2 | +| main.rs:852:13:852:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:13:852:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:852:17:852:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:17:852:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:852:30:852:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:853:13:853:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:13:853:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:853:17:853:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:17:853:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:853:30:853:31 | S2 | | main.rs:745:5:746:14 | S2 | | main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:855:18:855:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:855:18:855:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:855:26:855:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:856:13:856:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:856:17:856:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:856:33:856:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:856:33:856:34 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:857:18:857:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:857:18:857:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:857:18:857:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:857:18:857:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:857:26:857:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:858:13:858:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:858:17:858:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:858:36:858:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:858:36:858:37 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:859:18:859:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:859:18:859:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:859:18:859:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:859:18:859:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:859:26:859:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:860:13:860:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:860:17:860:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:860:36:860:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:860:36:860:37 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:861:18:861:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:861:18:861:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:861:18:861:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:861:18:861:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:861:26:861:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:862:13:862:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:862:17:862:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:862:36:862:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:862:36:862:37 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:863:18:863:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:863:18:863:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:863:18:863:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:863:18:863:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:863:26:863:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:864:13:864:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:864:17:864:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:864:36:864:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:864:36:864:37 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:865:18:865:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:865:18:865:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:865:18:865:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:865:18:865:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:865:26:865:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:867:13:867:14 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:13:867:14 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:867:13:867:14 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:867:18:869:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:868:16:868:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:868:16:868:32 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:868:29:868:30 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:870:13:870:14 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:870:18:872:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:871:16:871:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:871:16:871:32 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:871:29:871:30 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:874:13:874:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:874:17:874:39 | call_trait_thing_m1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:874:37:874:38 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:875:18:875:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:875:18:875:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:875:18:875:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:875:18:875:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:875:26:875:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:876:13:876:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:876:17:876:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:876:39:876:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:876:39:876:40 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:876:39:876:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:877:18:877:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:877:18:877:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:877:18:877:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:877:18:877:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:877:26:877:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:878:13:878:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:878:17:878:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:878:39:878:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:878:39:878:40 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:878:39:878:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:879:18:879:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:879:18:879:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:879:18:879:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:879:18:879:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:879:26:879:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:880:13:880:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:880:17:880:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:880:37:880:38 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:880:37:880:38 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:880:37:880:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:881:18:881:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:881:18:881:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:881:18:881:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:881:18:881:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:881:26:881:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:882:13:882:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:882:17:882:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:882:39:882:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:882:39:882:40 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:882:39:882:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:883:18:883:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:883:18:883:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:883:18:883:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:883:18:883:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:883:26:883:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:884:13:884:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:884:17:884:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:884:39:884:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:884:39:884:40 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:884:39:884:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:885:18:885:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:885:18:885:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:885:18:885:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:885:18:885:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:885:26:885:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:886:13:886:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:886:17:886:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:886:24:886:25 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:887:13:887:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:887:22:887:31 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:887:29:887:30 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:898:19:898:22 | SelfParam | | main.rs:892:5:895:5 | Wrapper | -| main.rs:898:19:898:22 | SelfParam | A | main.rs:897:10:897:10 | A | -| main.rs:898:30:900:9 | { ... } | | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:16 | self | | main.rs:892:5:895:5 | Wrapper | -| main.rs:899:13:899:16 | self | A | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:22 | self.field | | main.rs:897:10:897:10 | A | -| main.rs:907:15:907:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:909:15:909:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:913:9:916:9 | { ... } | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:914:13:914:16 | self | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:914:13:914:21 | self.m1() | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:915:13:915:43 | ...::default(...) | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:923:19:923:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:923:19:923:23 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:923:26:923:26 | a | | main.rs:923:16:923:16 | A | -| main.rs:925:22:925:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:925:22:925:26 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:925:29:925:29 | a | | main.rs:925:19:925:19 | A | -| main.rs:925:35:925:35 | b | | main.rs:925:19:925:19 | A | -| main.rs:925:75:928:9 | { ... } | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:13:926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:926:13:926:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:926:13:926:23 | self.put(...) | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:22:926:22 | a | | main.rs:925:19:925:19 | A | -| main.rs:927:13:927:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:927:13:927:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:927:13:927:23 | self.put(...) | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:927:22:927:22 | b | | main.rs:925:19:925:19 | A | -| main.rs:936:21:936:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:936:21:936:25 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:938:20:938:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:20:938:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:940:20:940:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:20:940:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:956:15:956:18 | SelfParam | | main.rs:943:5:944:13 | S | -| main.rs:956:45:958:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:957:13:957:14 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:966:19:966:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:966:19:966:23 | SelfParam | TRef | main.rs:943:5:944:13 | S | -| main.rs:966:26:966:26 | a | | main.rs:966:16:966:16 | A | -| main.rs:966:46:968:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:966:46:968:9 | { ... } | A | main.rs:966:16:966:16 | A | -| main.rs:967:13:967:32 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:967:13:967:32 | Wrapper {...} | A | main.rs:966:16:966:16 | A | -| main.rs:967:30:967:30 | a | | main.rs:966:16:966:16 | A | -| main.rs:975:15:975:18 | SelfParam | | main.rs:946:5:947:14 | S2 | -| main.rs:975:45:977:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:975:45:977:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:13:976:35 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:976:13:976:35 | Wrapper {...} | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:30:976:33 | self | | main.rs:946:5:947:14 | S2 | -| main.rs:982:30:984:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:982:30:984:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:13:983:33 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:983:13:983:33 | Wrapper {...} | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:30:983:31 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:989:22:989:26 | thing | | main.rs:989:10:989:19 | T | -| main.rs:990:9:990:13 | thing | | main.rs:989:10:989:19 | T | -| main.rs:997:21:997:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:997:21:997:25 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:997:34:999:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:998:13:998:14 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1001:20:1001:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1001:20:1001:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1001:43:1003:9 | { ... } | | main.rs:943:5:944:13 | S | -| main.rs:1002:13:1002:13 | S | | main.rs:943:5:944:13 | S | -| main.rs:1005:20:1005:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1005:20:1005:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1005:43:1007:9 | { ... } | | main.rs:946:5:947:14 | S2 | -| main.rs:1006:13:1006:14 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:1010:16:1038:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1011:13:1011:14 | x1 | | main.rs:943:5:944:13 | S | -| main.rs:1011:18:1011:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1013:18:1013:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1013:18:1013:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1013:18:1013:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1013:26:1013:27 | x1 | | main.rs:943:5:944:13 | S | -| main.rs:1013:26:1013:32 | x1.m1() | | main.rs:949:5:950:14 | AT | -| main.rs:1015:13:1015:14 | x2 | | main.rs:943:5:944:13 | S | -| main.rs:1015:18:1015:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1017:13:1017:13 | y | | main.rs:949:5:950:14 | AT | -| main.rs:1017:17:1017:18 | x2 | | main.rs:943:5:944:13 | S | -| main.rs:1017:17:1017:23 | x2.m2() | | main.rs:949:5:950:14 | AT | -| main.rs:1018:18:1018:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1018:18:1018:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1018:18:1018:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1018:26:1018:26 | y | | main.rs:949:5:950:14 | AT | -| main.rs:1020:13:1020:14 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1020:18:1020:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1022:18:1022:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1022:18:1022:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1022:18:1022:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1022:26:1022:27 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1022:26:1022:34 | x3.put(...) | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1022:26:1022:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:1022:26:1022:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1022:33:1022:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1025:18:1025:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1025:26:1025:27 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1025:26:1025:40 | x3.putTwo(...) | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1025:36:1025:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1025:39:1025:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1027:20:1027:20 | S | | main.rs:943:5:944:13 | S | +| main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:855:26:855:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:855:26:855:31 | x.m2() | | main.rs:743:5:744:14 | S1 | +| main.rs:856:18:856:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:856:26:856:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:856:26:856:31 | y.m2() | | main.rs:745:5:746:14 | S2 | +| main.rs:858:13:858:14 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:13:858:14 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:858:18:858:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:18:858:34 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:858:31:858:32 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:859:13:859:14 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:13:859:14 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:859:18:859:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:18:859:34 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:859:31:859:32 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:861:13:861:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:861:17:861:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:861:31:861:32 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:861:31:861:32 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:862:18:862:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:862:26:862:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:863:13:863:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:863:17:863:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:863:33:863:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:863:33:863:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:864:18:864:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:864:26:864:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:865:13:865:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:865:17:865:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:865:33:865:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:865:33:865:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:866:18:866:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:866:26:866:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:867:13:867:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:867:17:867:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:867:31:867:32 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:867:31:867:32 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:868:18:868:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:868:26:868:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:869:13:869:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:869:17:869:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:869:33:869:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:869:33:869:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:870:18:870:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:870:26:870:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:871:13:871:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:871:17:871:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:871:33:871:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:871:33:871:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:872:18:872:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:872:26:872:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:873:13:873:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:873:17:873:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:873:36:873:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:873:36:873:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:874:18:874:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:874:26:874:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:875:13:875:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:875:17:875:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:875:36:875:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:875:36:875:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:876:18:876:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:876:26:876:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:877:13:877:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:877:17:877:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:877:36:877:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:877:36:877:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:878:18:878:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:878:26:878:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:879:13:879:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:879:17:879:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:879:36:879:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:879:36:879:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:880:18:880:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:880:26:880:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:13:882:14 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:882:13:882:14 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:882:18:884:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:883:16:883:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:883:16:883:32 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:883:29:883:30 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:885:13:885:14 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:885:18:887:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:886:16:886:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:886:16:886:32 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:886:29:886:30 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:889:13:889:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:889:17:889:39 | call_trait_thing_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:889:37:889:38 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:890:18:890:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:890:26:890:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:891:13:891:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:891:17:891:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:891:39:891:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:891:39:891:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:891:39:891:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:892:18:892:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:892:26:892:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:893:13:893:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:893:17:893:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:893:39:893:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:893:39:893:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:893:39:893:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:894:18:894:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:894:26:894:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:895:13:895:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:895:17:895:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:895:37:895:38 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:895:37:895:38 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:895:37:895:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:896:18:896:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:896:26:896:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:897:13:897:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:897:17:897:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:897:39:897:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:897:39:897:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:897:39:897:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:898:18:898:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:898:26:898:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:899:13:899:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:899:17:899:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:899:39:899:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:899:39:899:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:899:39:899:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:900:18:900:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:900:26:900:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:901:13:901:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:901:17:901:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:901:24:901:25 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:902:22:902:31 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:902:29:902:30 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | +| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | +| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | +| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:22 | self.field | | main.rs:912:10:912:10 | A | +| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:929:13:929:21 | self.m1() | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:930:13:930:43 | ...::default(...) | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | +| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | +| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | +| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:941:13:941:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | +| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:942:13:942:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | +| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | +| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:972:13:972:14 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | +| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | +| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | +| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:982:13:982:32 | Wrapper {...} | A | main.rs:981:16:981:16 | A | +| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | +| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | +| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:991:13:991:35 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | +| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:998:13:998:33 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:30:998:31 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:1013:13:1013:14 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | +| main.rs:1017:13:1017:13 | S | | main.rs:958:5:959:13 | S | +| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | +| main.rs:1021:13:1021:14 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:13:1026:14 | x1 | | main.rs:958:5:959:13 | S | +| main.rs:1026:18:1026:18 | S | | main.rs:958:5:959:13 | S | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1030:13:1030:14 | x5 | | main.rs:946:5:947:14 | S2 | -| main.rs:1030:18:1030:19 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1031:18:1031:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1031:26:1031:27 | x5 | | main.rs:946:5:947:14 | S2 | -| main.rs:1031:26:1031:32 | x5.m1() | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1031:26:1031:32 | x5.m1() | A | main.rs:946:5:947:14 | S2 | -| main.rs:1032:13:1032:14 | x6 | | main.rs:946:5:947:14 | S2 | -| main.rs:1032:18:1032:19 | S2 | | main.rs:946:5:947:14 | S2 | +| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1028:26:1028:27 | x1 | | main.rs:958:5:959:13 | S | +| main.rs:1028:26:1028:32 | x1.m1() | | main.rs:964:5:965:14 | AT | +| main.rs:1030:13:1030:14 | x2 | | main.rs:958:5:959:13 | S | +| main.rs:1030:18:1030:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1032:13:1032:13 | y | | main.rs:964:5:965:14 | AT | +| main.rs:1032:17:1032:18 | x2 | | main.rs:958:5:959:13 | S | +| main.rs:1032:17:1032:23 | x2.m2() | | main.rs:964:5:965:14 | AT | | main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1033:26:1033:27 | x6 | | main.rs:946:5:947:14 | S2 | -| main.rs:1033:26:1033:32 | x6.m2() | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1033:26:1033:32 | x6.m2() | A | main.rs:946:5:947:14 | S2 | -| main.rs:1035:13:1035:22 | assoc_zero | | main.rs:949:5:950:14 | AT | -| main.rs:1035:26:1035:27 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1035:26:1035:38 | AT.get_zero() | | main.rs:949:5:950:14 | AT | -| main.rs:1036:13:1036:21 | assoc_one | | main.rs:943:5:944:13 | S | -| main.rs:1036:25:1036:26 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1036:25:1036:36 | AT.get_one() | | main.rs:943:5:944:13 | S | -| main.rs:1037:13:1037:21 | assoc_two | | main.rs:946:5:947:14 | S2 | -| main.rs:1037:25:1037:26 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1037:25:1037:36 | AT.get_two() | | main.rs:946:5:947:14 | S2 | -| main.rs:1045:19:1045:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1045:19:1045:23 | SelfParam | TRef | main.rs:1042:5:1046:5 | Self [trait Supertrait] | -| main.rs:1045:26:1045:32 | content | | main.rs:1043:9:1043:21 | Content | -| main.rs:1050:24:1050:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1050:24:1050:28 | SelfParam | TRef | main.rs:1048:5:1051:5 | Self [trait Subtrait] | -| main.rs:1059:23:1059:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1059:23:1059:27 | SelfParam | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1059:68:1062:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1060:13:1060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1060:13:1060:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1060:13:1060:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1061:13:1061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1061:13:1061:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1061:13:1061:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1069:19:1069:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1069:19:1069:23 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1069:19:1069:23 | SelfParam | TRef.T | main.rs:1067:10:1067:10 | T | -| main.rs:1069:26:1069:33 | _content | | main.rs:1067:10:1067:10 | T | -| main.rs:1069:51:1071:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1070:22:1070:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1076:24:1076:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1076:24:1076:28 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1076:24:1076:28 | SelfParam | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1076:48:1078:9 | { ... } | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:19 | (...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:13:1077:19 | (...) | T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:21 | ... .0 | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:29 | ... .clone() | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:14:1077:18 | * ... | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:14:1077:18 | * ... | T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:15:1077:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1077:15:1077:18 | self | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:15:1077:18 | self | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1081:33:1081:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1081:33:1081:36 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1082:9:1082:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1082:9:1082:12 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1085:35:1085:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1085:35:1085:38 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1085:93:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1086:9:1086:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1086:9:1086:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1086:9:1086:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1087:9:1087:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1087:9:1087:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1087:9:1087:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1090:15:1096:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:13:1091:17 | item1 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1091:13:1091:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1091:21:1091:33 | MyType(...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1091:21:1091:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1091:28:1091:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1092:25:1092:29 | item1 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1092:25:1092:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1094:13:1094:17 | item2 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1094:13:1094:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1094:21:1094:32 | MyType(...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1094:21:1094:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:1094:28:1094:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1095:37:1095:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1095:37:1095:42 | &item2 | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1095:37:1095:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| main.rs:1095:38:1095:42 | item2 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1095:38:1095:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1112:15:1112:18 | SelfParam | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1112:15:1112:18 | SelfParam | A | main.rs:1111:10:1111:10 | T | -| main.rs:1112:26:1117:9 | { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:13:1116:13 | match self { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:19:1113:22 | self | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1113:19:1113:22 | self | A | main.rs:1111:10:1111:10 | T | -| main.rs:1114:17:1114:29 | ...::C1(...) | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1114:17:1114:29 | ...::C1(...) | A | main.rs:1111:10:1111:10 | T | -| main.rs:1114:28:1114:28 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1114:34:1114:34 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1115:17:1115:32 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1115:17:1115:32 | ...::C2 {...} | A | main.rs:1111:10:1111:10 | T | -| main.rs:1115:30:1115:30 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1115:37:1115:37 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1120:16:1126:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1121:13:1121:13 | x | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1121:13:1121:13 | x | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1121:17:1121:30 | ...::C1(...) | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1121:17:1121:30 | ...::C1(...) | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1121:28:1121:29 | S1 | | main.rs:1106:5:1107:14 | S1 | -| main.rs:1122:13:1122:13 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:13:1122:13 | y | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1122:17:1122:36 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:17:1122:36 | ...::C2 {...} | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1122:33:1122:34 | S2 | | main.rs:1108:5:1109:14 | S2 | -| main.rs:1124:18:1124:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1124:18:1124:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1124:18:1124:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1124:18:1124:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1124:26:1124:26 | x | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1124:26:1124:26 | x | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1124:26:1124:31 | x.m1() | | main.rs:1106:5:1107:14 | S1 | -| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1125:18:1125:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1125:18:1125:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:26:1125:26 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1125:26:1125:26 | y | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1125:26:1125:31 | y.m1() | | main.rs:1108:5:1109:14 | S2 | -| main.rs:1147:15:1147:18 | SelfParam | | main.rs:1145:5:1148:5 | Self [trait MyTrait1] | -| main.rs:1152:15:1152:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1152:15:1152:19 | SelfParam | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1155:9:1161:9 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1156:13:1160:13 | if ... {...} else {...} | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1156:16:1156:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1156:16:1156:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1156:20:1156:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1156:22:1158:13 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1157:17:1157:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1157:17:1157:20 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1157:17:1157:25 | self.m1() | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1158:20:1160:13 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1159:17:1159:31 | ...::m1(...) | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1159:26:1159:30 | * ... | | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1159:27:1159:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1159:27:1159:30 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1166:15:1166:18 | SelfParam | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1169:9:1175:9 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1170:13:1174:13 | if ... {...} else {...} | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1170:16:1170:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1170:16:1170:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1170:20:1170:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1170:22:1172:13 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:20 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1171:17:1171:25 | self.m2() | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1171:17:1171:25 | self.m2() | A | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:27 | ... .a | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1172:20:1174:13 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:17:1173:31 | ...::m2(...) | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1173:17:1173:31 | ...::m2(...) | A | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:17:1173:33 | ... .a | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:26:1173:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1173:26:1173:30 | &self | TRef | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1173:27:1173:30 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1180:15:1180:18 | SelfParam | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1180:15:1180:18 | SelfParam | A | main.rs:1178:10:1178:10 | T | -| main.rs:1180:26:1182:9 | { ... } | | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:16 | self | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1181:13:1181:16 | self | A | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:18 | self.a | | main.rs:1178:10:1178:10 | T | -| main.rs:1189:15:1189:18 | SelfParam | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1189:15:1189:18 | SelfParam | A | main.rs:1187:10:1187:10 | T | -| main.rs:1189:35:1191:9 | { ... } | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1189:35:1191:9 | { ... } | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:13:1190:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1190:13:1190:33 | MyThing {...} | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:26:1190:29 | self | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1190:26:1190:29 | self | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:26:1190:31 | self.a | | main.rs:1187:10:1187:10 | T | -| main.rs:1198:44:1198:44 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1198:57:1200:5 | { ... } | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1199:9:1199:9 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1199:9:1199:14 | x.m1() | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1202:56:1202:56 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1202:62:1206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1204:13:1204:13 | a | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1204:13:1204:13 | a | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1204:17:1204:17 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1204:17:1204:22 | x.m1() | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1204:17:1204:22 | x.m1() | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1205:18:1205:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1205:18:1205:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1205:18:1205:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1205:18:1205:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1205:26:1205:26 | a | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1205:26:1205:26 | a | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1208:16:1232:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1209:13:1209:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:13:1209:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1209:17:1209:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:17:1209:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1209:30:1209:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1210:13:1210:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:13:1210:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1210:17:1210:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:17:1210:33 | MyThing {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1210:30:1210:31 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1212:18:1212:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1212:18:1212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1212:18:1212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1212:18:1212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1212:26:1212:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1212:26:1212:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1212:26:1212:31 | x.m1() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1213:18:1213:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1213:18:1213:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1213:26:1213:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1213:26:1213:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1213:26:1213:31 | y.m1() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1215:13:1215:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:13:1215:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1215:17:1215:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:17:1215:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1215:30:1215:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1216:13:1216:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:13:1216:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1216:17:1216:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:17:1216:33 | MyThing {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1216:30:1216:31 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1218:18:1218:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1218:18:1218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1218:18:1218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1218:18:1218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1218:26:1218:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1218:26:1218:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1218:26:1218:31 | x.m2() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1219:18:1219:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1219:18:1219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1219:18:1219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1219:18:1219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:26:1219:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1219:26:1219:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1219:26:1219:31 | y.m2() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1221:13:1221:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:13:1221:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1221:31:1221:32 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1222:13:1222:13 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:13:1222:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1222:31:1222:32 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1224:18:1224:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1224:18:1224:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:26:1224:26 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1224:26:1224:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1224:26:1224:31 | x.m3() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1225:18:1225:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1225:18:1225:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1225:18:1225:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1225:26:1225:26 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1225:26:1225:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1225:26:1225:31 | y.m3() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1227:13:1227:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:13:1227:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1227:17:1227:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:17:1227:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1227:30:1227:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:13:1228:13 | s | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:17:1228:32 | call_trait_m1(...) | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:31:1228:31 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1228:31:1228:31 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1230:13:1230:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:13:1230:13 | x | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1230:31:1230:32 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:13:1231:13 | s | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1231:13:1231:13 | s | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:17:1231:32 | call_trait_m1(...) | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1231:17:1231:32 | call_trait_m1(...) | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:31:1231:31 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1231:31:1231:31 | x | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1248:22:1248:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1248:22:1248:22 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1248:35:1250:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1248:35:1250:5 | { ... } | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1249:9:1249:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1249:9:1249:9 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1253:17:1253:20 | SelfParam | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1253:29:1255:9 | { ... } | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1254:13:1254:14 | S2 | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1258:21:1258:21 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1261:5:1263:5 | { ... } | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1262:9:1262:9 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1262:9:1262:16 | x.into() | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1265:16:1281:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1266:13:1266:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1266:17:1266:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:18:1267:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1267:18:1267:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1267:18:1267:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:26:1267:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1267:26:1267:31 | id(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:29:1267:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1267:29:1267:30 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:30:1267:30 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1269:13:1269:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1269:17:1269:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:18:1270:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1270:18:1270:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1270:18:1270:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1270:26:1270:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1270:26:1270:37 | id::<...>(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:35:1270:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1270:35:1270:36 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:36:1270:36 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1272:13:1272:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1272:17:1272:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1274:18:1274:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1274:18:1274:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1274:18:1274:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1274:26:1274:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1274:26:1274:44 | id::<...>(...) | TRef | main.rs:1244:5:1244:25 | dyn Trait | -| main.rs:1274:42:1274:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1274:42:1274:43 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1274:43:1274:43 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1276:13:1276:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1276:17:1276:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1277:9:1277:25 | into::<...>(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1277:24:1277:24 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1279:13:1279:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1279:17:1279:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1280:13:1280:13 | y | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:21:1280:27 | into(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:26:1280:26 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1294:22:1294:25 | SelfParam | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1294:22:1294:25 | SelfParam | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1294:22:1294:25 | SelfParam | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1294:35:1301:9 | { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:13:1300:13 | match self { ... } | | file://:0:0:0:0 | ! | -| main.rs:1295:13:1300:13 | match self { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:19:1295:22 | self | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1295:19:1295:22 | self | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1295:19:1295:22 | self | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:43:1296:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1296:50:1296:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1296:50:1296:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1297:37:1297:37 | _ | | main.rs:1293:10:1293:12 | Fst | -| main.rs:1297:43:1297:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1297:50:1297:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1297:50:1297:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1298:37:1298:39 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1298:45:1298:47 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:38:1299:38 | _ | | main.rs:1293:10:1293:12 | Fst | -| main.rs:1299:41:1299:43 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:49:1299:51 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1325:10:1325:10 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1325:30:1328:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1326:13:1326:13 | x | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:17 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:41 | ... .unwrapSnd() | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1327:18:1327:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1327:18:1327:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1327:26:1327:26 | x | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1342:22:1342:25 | SelfParam | | main.rs:1340:5:1343:5 | Self [trait TraitWithAssocType] | -| main.rs:1350:22:1350:25 | SelfParam | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1350:22:1350:25 | SelfParam | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1350:44:1352:9 | { ... } | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:13:1351:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1351:13:1351:22 | Ok(...) | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:13:1351:22 | Ok(...) | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:19 | self | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1351:16:1351:19 | self | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:21 | self.0 | | main.rs:1345:10:1345:15 | Output | -| main.rs:1355:16:1377:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1357:13:1357:14 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:13:1357:14 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:13:1357:14 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1357:47:1357:48 | S1 | | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:51:1357:52 | S2 | | main.rs:1307:5:1308:14 | S2 | -| main.rs:1358:18:1358:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1358:18:1358:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1358:18:1358:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1358:18:1358:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1358:26:1358:27 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1358:26:1358:27 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1358:26:1358:27 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:13:1361:14 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:13:1361:14 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:13:1361:14 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1362:18:1362:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1362:18:1362:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1362:18:1362:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1362:18:1362:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1362:26:1362:27 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1362:26:1362:27 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1362:26:1362:27 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:13:1365:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1365:54:1365:55 | S3 | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1366:18:1366:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1366:18:1366:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1366:18:1366:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1366:18:1366:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1366:26:1366:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1366:26:1366:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1366:26:1366:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1369:13:1369:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:13:1369:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1370:18:1370:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1370:18:1370:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1370:18:1370:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1370:18:1370:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1370:26:1370:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1370:26:1370:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1370:26:1370:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:9:1372:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:51:1372:52 | S3 | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1374:13:1374:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1374:13:1374:13 | x | E | main.rs:1304:5:1305:14 | S1 | -| main.rs:1374:13:1374:13 | x | T | main.rs:1330:5:1330:34 | S4 | -| main.rs:1374:13:1374:13 | x | T.T41 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1374:13:1374:13 | x | T.T42 | main.rs:1332:5:1332:22 | S5 | -| main.rs:1374:13:1374:13 | x | T.T42.T5 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1376:13:1376:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1376:13:1376:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1376:13:1376:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:26 | GenS(...) | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1376:17:1376:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1376:17:1376:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1376:22:1376:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1389:16:1389:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1389:16:1389:24 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1389:27:1389:31 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:21:1391:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1391:21:1391:29 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1391:32:1391:36 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:42:1393:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1392:13:1392:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1392:13:1392:16 | self | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1392:13:1392:27 | self.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1392:22:1392:26 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1398:16:1398:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1398:16:1398:24 | SelfParam | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1398:16:1398:24 | SelfParam | TRef.T | main.rs:1396:10:1396:10 | T | -| main.rs:1398:27:1398:31 | value | | main.rs:1396:10:1396:10 | T | -| main.rs:1398:37:1398:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1402:26:1404:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1402:26:1404:9 | { ... } | T | main.rs:1401:10:1401:10 | T | -| main.rs:1403:13:1403:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1403:13:1403:30 | ...::MyNone(...) | T | main.rs:1401:10:1401:10 | T | -| main.rs:1408:20:1408:23 | SelfParam | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1408:41:1413:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:41:1413:9 | { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:13:1412:13 | match self { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:13:1412:13 | match self { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:19:1409:22 | self | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1410:39:1410:56 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:39:1410:56 | ...::MyNone(...) | T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:17:1411:35 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:17:1411:35 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:17:1411:35 | ...::MySome(...) | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:34:1411:34 | x | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:34:1411:34 | x | T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:40:1411:40 | x | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:40:1411:40 | x | T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1464:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:18:1420:37 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1421:18:1421:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1421:18:1421:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1421:18:1421:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1421:18:1421:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1421:26:1421:27 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1421:26:1421:27 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:17:1423:18 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:17:1423:18 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:22:1423:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:22:1423:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1424:9:1424:10 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1424:9:1424:10 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1424:9:1424:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1424:16:1424:16 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1425:18:1425:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1425:18:1425:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1425:18:1425:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1425:26:1425:27 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1427:17:1427:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1427:17:1427:18 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1427:22:1427:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1427:22:1427:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1428:9:1428:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:9:1428:10 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1428:9:1428:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1428:21:1428:21 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1429:18:1429:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1429:18:1429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1429:18:1429:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1429:18:1429:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1429:26:1429:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:26:1429:27 | x3 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1431:17:1431:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1431:17:1431:18 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1431:22:1431:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1431:22:1431:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:9:1432:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1432:23:1432:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1432:23:1432:29 | &mut x4 | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:23:1432:29 | &mut x4 | TRef.T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:28:1432:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:28:1432:29 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:32:1432:32 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1433:18:1433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1433:18:1433:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1433:18:1433:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:18:1433:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1433:26:1433:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:26:1433:27 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1435:13:1435:14 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1435:13:1435:14 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1435:13:1435:14 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1435:18:1435:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1435:18:1435:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1435:18:1435:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1435:35:1435:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1435:35:1435:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1033:26:1033:26 | y | | main.rs:964:5:965:14 | AT | +| main.rs:1035:13:1035:14 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1035:18:1035:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1037:26:1037:27 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1037:26:1037:34 | x3.put(...) | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1037:26:1037:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| main.rs:1037:26:1037:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1037:33:1037:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1040:26:1040:27 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1040:26:1040:40 | x3.putTwo(...) | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1040:36:1040:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1040:39:1040:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1042:20:1042:20 | S | | main.rs:958:5:959:13 | S | +| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1045:13:1045:14 | x5 | | main.rs:961:5:962:14 | S2 | +| main.rs:1045:18:1045:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1046:26:1046:27 | x5 | | main.rs:961:5:962:14 | S2 | +| main.rs:1046:26:1046:32 | x5.m1() | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1046:26:1046:32 | x5.m1() | A | main.rs:961:5:962:14 | S2 | +| main.rs:1047:13:1047:14 | x6 | | main.rs:961:5:962:14 | S2 | +| main.rs:1047:18:1047:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1048:26:1048:27 | x6 | | main.rs:961:5:962:14 | S2 | +| main.rs:1048:26:1048:32 | x6.m2() | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1048:26:1048:32 | x6.m2() | A | main.rs:961:5:962:14 | S2 | +| main.rs:1050:13:1050:22 | assoc_zero | | main.rs:964:5:965:14 | AT | +| main.rs:1050:26:1050:27 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1050:26:1050:38 | AT.get_zero() | | main.rs:964:5:965:14 | AT | +| main.rs:1051:13:1051:21 | assoc_one | | main.rs:958:5:959:13 | S | +| main.rs:1051:25:1051:26 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1051:25:1051:36 | AT.get_one() | | main.rs:958:5:959:13 | S | +| main.rs:1052:13:1052:21 | assoc_two | | main.rs:961:5:962:14 | S2 | +| main.rs:1052:25:1052:26 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1052:25:1052:36 | AT.get_two() | | main.rs:961:5:962:14 | S2 | +| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | +| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | +| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | +| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1075:13:1075:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1076:13:1076:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | +| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | +| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1091:48:1093:9 | { ... } | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:19 | (...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:13:1092:19 | (...) | T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:21 | ... .0 | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:29 | ... .clone() | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:14:1092:18 | * ... | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:14:1092:18 | * ... | T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1101:9:1101:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1102:9:1102:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1106:13:1106:17 | item1 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1106:13:1106:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1106:21:1106:33 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1106:21:1106:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1107:25:1107:29 | item1 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1107:25:1107:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1109:13:1109:17 | item2 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1109:13:1109:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1109:21:1109:32 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1109:21:1109:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | +| main.rs:1110:37:1110:42 | &item2 | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1110:37:1110:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| main.rs:1110:38:1110:42 | item2 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1110:38:1110:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | +| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:13:1131:13 | match self { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | +| main.rs:1129:17:1129:29 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1129:17:1129:29 | ...::C1(...) | A | main.rs:1126:10:1126:10 | T | +| main.rs:1129:28:1129:28 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1129:34:1129:34 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1130:17:1130:32 | ...::C2 {...} | A | main.rs:1126:10:1126:10 | T | +| main.rs:1130:30:1130:30 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1130:37:1130:37 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1136:13:1136:13 | x | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1136:13:1136:13 | x | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1136:17:1136:30 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1136:17:1136:30 | ...::C1(...) | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1136:28:1136:29 | S1 | | main.rs:1121:5:1122:14 | S1 | +| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:13:1137:13 | y | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:17:1137:36 | ...::C2 {...} | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1137:33:1137:34 | S2 | | main.rs:1123:5:1124:14 | S2 | +| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1139:26:1139:26 | x | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1139:26:1139:26 | x | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1139:26:1139:31 | x.m1() | | main.rs:1121:5:1122:14 | S1 | +| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1140:26:1140:26 | y | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1140:26:1140:31 | y.m1() | | main.rs:1123:5:1124:14 | S2 | +| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | +| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1171:13:1175:13 | if ... {...} else {...} | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1171:16:1171:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1171:16:1171:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1171:20:1171:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1171:22:1173:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1172:17:1172:25 | self.m1() | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1173:20:1175:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1174:17:1174:31 | ...::m1(...) | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1174:26:1174:30 | * ... | | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1185:13:1189:13 | if ... {...} else {...} | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1185:16:1185:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1185:16:1185:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1185:20:1185:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1185:22:1187:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1186:17:1186:25 | self.m2() | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1186:17:1186:25 | self.m2() | A | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:27 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1187:20:1189:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:17:1188:31 | ...::m2(...) | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1188:17:1188:31 | ...::m2(...) | A | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:17:1188:33 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1188:26:1188:30 | &self | TRef | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | +| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:18 | self.a | | main.rs:1193:10:1193:10 | T | +| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | +| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1205:13:1205:33 | MyThing {...} | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:26:1205:31 | self.a | | main.rs:1202:10:1202:10 | T | +| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1214:9:1214:14 | x.m1() | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1219:13:1219:13 | a | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1219:13:1219:13 | a | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1219:17:1219:22 | x.m1() | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1219:17:1219:22 | x.m1() | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1220:26:1220:26 | a | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1220:26:1220:26 | a | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:13:1224:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:17:1224:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1224:30:1224:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:13:1225:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:17:1225:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1225:30:1225:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1227:26:1227:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1227:26:1227:31 | x.m1() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1228:26:1228:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1228:26:1228:31 | y.m1() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:13:1230:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:17:1230:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1230:30:1230:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:13:1231:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:17:1231:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1231:30:1231:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1233:26:1233:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1233:26:1233:31 | x.m2() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1234:26:1234:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1234:26:1234:31 | y.m2() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:13:1236:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1236:31:1236:32 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:13:1237:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1237:31:1237:32 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1239:26:1239:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1239:26:1239:31 | x.m3() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1240:26:1240:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1240:26:1240:31 | y.m3() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:13:1242:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:17:1242:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1242:30:1242:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:13:1243:13 | s | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:17:1243:32 | call_trait_m1(...) | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1243:31:1243:31 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:13:1245:13 | x | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1245:31:1245:32 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:13:1246:13 | s | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1246:13:1246:13 | s | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:17:1246:32 | call_trait_m1(...) | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1246:17:1246:32 | call_trait_m1(...) | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1246:31:1246:31 | x | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1269:13:1269:14 | S2 | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1277:9:1277:16 | x.into() | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1281:13:1281:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1281:17:1281:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1282:26:1282:31 | id(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1282:29:1282:30 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:30:1282:30 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1284:13:1284:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1284:17:1284:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1285:35:1285:36 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:36:1285:36 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1287:13:1287:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1287:17:1287:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | +| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1289:42:1289:43 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1289:43:1289:43 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1291:13:1291:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1291:17:1291:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1292:24:1292:24 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1294:13:1294:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1294:17:1294:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:21:1295:27 | into(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:26:1295:26 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:13:1315:13 | match self { ... } | | file://:0:0:0:0 | ! | +| main.rs:1310:13:1315:13 | match self { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1312:37:1312:37 | _ | | main.rs:1308:10:1308:12 | Fst | +| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1313:37:1313:39 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1313:45:1313:47 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:38:1314:38 | _ | | main.rs:1308:10:1308:12 | Fst | +| main.rs:1314:41:1314:43 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:49:1314:51 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1341:13:1341:13 | x | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:41 | ... .unwrapSnd() | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1342:26:1342:26 | x | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | +| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:13:1366:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1366:13:1366:22 | Ok(...) | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:13:1366:22 | Ok(...) | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:21 | self.0 | | main.rs:1360:10:1360:15 | Output | +| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1372:47:1372:48 | S1 | | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:51:1372:52 | S2 | | main.rs:1322:5:1323:14 | S2 | +| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1380:54:1380:55 | S3 | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1381:26:1381:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:51:1387:52 | S3 | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | +| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | +| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | +| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1391:13:1391:13 | y | | {EXTERNAL LOCATION} | Result | +| main.rs:1391:13:1391:13 | y | E | {EXTERNAL LOCATION} | bool | +| main.rs:1391:13:1391:13 | y | T | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:26 | GenS(...) | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1391:17:1391:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| main.rs:1391:17:1391:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1404:16:1404:24 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1406:21:1406:29 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1407:13:1407:16 | self | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:13:1407:27 | self.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1413:16:1413:24 | SelfParam | TRef | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRef.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | +| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | +| main.rs:1418:13:1418:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1418:13:1418:30 | ...::MyNone(...) | T | main.rs:1416:10:1416:10 | T | +| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:13:1427:13 | match self { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:13:1427:13 | match self { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1425:39:1425:56 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:39:1425:56 | ...::MyNone(...) | T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:17:1426:35 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:17:1426:35 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:17:1426:35 | ...::MySome(...) | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:34:1426:34 | x | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:34:1426:34 | x | T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:40:1426:40 | x | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:40:1426:40 | x | T | main.rs:1422:10:1422:10 | T | +| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1436:18:1436:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1436:26:1436:27 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:26:1436:27 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:26:1436:27 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:26:1436:37 | x5.flatten() | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:26:1436:37 | x5.flatten() | T | main.rs:1416:5:1417:13 | S | -| main.rs:1438:13:1438:14 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1438:13:1438:14 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1438:13:1438:14 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1438:18:1438:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1438:18:1438:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1438:18:1438:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1438:35:1438:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1438:35:1438:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:18:1439:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1439:18:1439:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1439:18:1439:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1439:18:1439:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1439:26:1439:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:26:1439:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:59:1439:60 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:59:1439:60 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:59:1439:60 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1442:13:1442:19 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1442:13:1442:19 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1442:23:1446:9 | if ... {...} else {...} | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1442:23:1446:9 | if ... {...} else {...} | T | main.rs:1416:5:1417:13 | S | -| main.rs:1442:26:1442:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1442:26:1442:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1442:30:1442:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1442:32:1444:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1442:32:1444:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:13:1443:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:13:1443:30 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1444:16:1446:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1444:16:1446:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1445:13:1445:31 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1445:13:1445:31 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1445:30:1445:30 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1447:18:1447:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:18:1447:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1447:26:1447:32 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1447:26:1447:32 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1450:13:1450:22 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1450:13:1450:22 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1450:26:1453:9 | match ... { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1450:26:1453:9 | match ... { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1450:32:1450:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1450:32:1450:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1450:36:1450:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1451:13:1451:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1451:21:1451:38 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1451:21:1451:38 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1452:13:1452:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1452:22:1452:40 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1452:22:1452:40 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1452:39:1452:39 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:17:1438:18 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:22:1438:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1439:9:1439:10 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1439:9:1439:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1439:16:1439:16 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1440:26:1440:27 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:17:1442:18 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:22:1442:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1443:9:1443:10 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1443:9:1443:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1443:21:1443:21 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1444:26:1444:27 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:17:1446:18 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:22:1446:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1447:23:1447:29 | &mut x4 | TRef | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:23:1447:29 | &mut x4 | TRef.T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:28:1447:29 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:32:1447:32 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1448:26:1448:27 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:13:1450:14 | x5 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:13:1450:14 | x5 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:13:1450:14 | x5 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:18:1450:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:18:1450:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:18:1450:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:35:1450:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:35:1450:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1451:26:1451:27 | x5 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:27 | x5 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:27 | x5 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1451:26:1451:37 | x5.flatten() | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:37 | x5.flatten() | T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:13:1453:14 | x6 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:13:1453:14 | x6 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:13:1453:14 | x6 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:18:1453:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:18:1453:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:18:1453:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:35:1453:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:35:1453:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1454:18:1454:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1454:26:1454:35 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1454:26:1454:35 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1457:13:1457:21 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1457:13:1457:21 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1457:25:1462:9 | loop { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1457:25:1462:9 | loop { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1457:30:1462:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1458:13:1460:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1458:16:1458:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1458:16:1458:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1458:20:1458:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1458:22:1460:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1459:23:1459:40 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1459:23:1459:40 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1461:19:1461:37 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1461:19:1461:37 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1461:36:1461:36 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1463:18:1463:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1463:18:1463:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1463:18:1463:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1463:18:1463:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1463:26:1463:34 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1463:26:1463:34 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1481:15:1481:18 | SelfParam | | main.rs:1469:5:1470:19 | S | -| main.rs:1481:15:1481:18 | SelfParam | T | main.rs:1480:10:1480:10 | T | -| main.rs:1481:26:1483:9 | { ... } | | main.rs:1480:10:1480:10 | T | -| main.rs:1482:13:1482:16 | self | | main.rs:1469:5:1470:19 | S | -| main.rs:1482:13:1482:16 | self | T | main.rs:1480:10:1480:10 | T | -| main.rs:1482:13:1482:18 | self.0 | | main.rs:1480:10:1480:10 | T | -| main.rs:1485:15:1485:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1485:15:1485:19 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1485:15:1485:19 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1485:28:1487:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1485:28:1487:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1486:13:1486:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1486:13:1486:19 | &... | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1486:14:1486:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1486:14:1486:17 | self | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1486:14:1486:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1486:14:1486:19 | self.0 | | main.rs:1480:10:1480:10 | T | -| main.rs:1489:15:1489:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1489:15:1489:25 | SelfParam | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1489:15:1489:25 | SelfParam | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1489:34:1491:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1489:34:1491:9 | { ... } | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1490:13:1490:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1490:13:1490:19 | &... | TRef | main.rs:1480:10:1480:10 | T | -| main.rs:1490:14:1490:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1490:14:1490:17 | self | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1490:14:1490:17 | self | TRef.T | main.rs:1480:10:1480:10 | T | -| main.rs:1490:14:1490:19 | self.0 | | main.rs:1480:10:1480:10 | T | -| main.rs:1495:29:1495:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1495:29:1495:33 | SelfParam | TRef | main.rs:1494:5:1497:5 | Self [trait ATrait] | -| main.rs:1496:33:1496:36 | SelfParam | | main.rs:1494:5:1497:5 | Self [trait ATrait] | -| main.rs:1502:29:1502:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1502:29:1502:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1502:29:1502:33 | SelfParam | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1502:43:1504:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1503:13:1503:22 | (...) | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1503:13:1503:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1503:14:1503:21 | * ... | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1503:15:1503:21 | (...) | | {EXTERNAL LOCATION} | & | -| main.rs:1503:15:1503:21 | (...) | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1503:16:1503:20 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1503:16:1503:20 | * ... | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1503:17:1503:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1503:17:1503:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:17:1503:20 | self | TRef.TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1507:33:1507:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1507:33:1507:36 | SelfParam | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1507:46:1509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1508:13:1508:19 | (...) | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1508:13:1508:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1508:14:1508:18 | * ... | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1508:15:1508:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1508:15:1508:18 | self | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1512:16:1562:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1513:13:1513:14 | x1 | | main.rs:1469:5:1470:19 | S | -| main.rs:1513:13:1513:14 | x1 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1513:18:1513:22 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1513:18:1513:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1513:20:1513:21 | S2 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1514:18:1514:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1514:18:1514:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1514:18:1514:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1514:18:1514:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1514:26:1514:27 | x1 | | main.rs:1469:5:1470:19 | S | -| main.rs:1514:26:1514:27 | x1 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1514:26:1514:32 | x1.m1() | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1516:13:1516:14 | x2 | | main.rs:1469:5:1470:19 | S | -| main.rs:1516:13:1516:14 | x2 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1516:18:1516:22 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1516:18:1516:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1516:20:1516:21 | S2 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1518:18:1518:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1518:18:1518:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1518:18:1518:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1518:18:1518:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1518:26:1518:27 | x2 | | main.rs:1469:5:1470:19 | S | -| main.rs:1518:26:1518:27 | x2 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1518:26:1518:32 | x2.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1518:26:1518:32 | x2.m2() | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1519:26:1519:27 | x2 | | main.rs:1469:5:1470:19 | S | -| main.rs:1519:26:1519:27 | x2 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1519:26:1519:32 | x2.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1519:26:1519:32 | x2.m3() | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1521:13:1521:14 | x3 | | main.rs:1469:5:1470:19 | S | -| main.rs:1521:13:1521:14 | x3 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1521:18:1521:22 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1521:18:1521:22 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1521:20:1521:21 | S2 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1523:18:1523:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1523:18:1523:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1523:18:1523:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1523:18:1523:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1523:26:1523:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1523:26:1523:41 | ...::m2(...) | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1523:38:1523:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1523:38:1523:40 | &x3 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1523:38:1523:40 | &x3 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1523:39:1523:40 | x3 | | main.rs:1469:5:1470:19 | S | -| main.rs:1523:39:1523:40 | x3 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m3(...) | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1524:38:1524:40 | &x3 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1524:38:1524:40 | &x3 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1524:39:1524:40 | x3 | | main.rs:1469:5:1470:19 | S | -| main.rs:1524:39:1524:40 | x3 | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1526:13:1526:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1526:13:1526:14 | x4 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1526:13:1526:14 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1526:18:1526:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1526:18:1526:23 | &... | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1526:18:1526:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1526:19:1526:23 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1526:19:1526:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1526:21:1526:22 | S2 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1528:18:1528:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1528:18:1528:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1528:18:1528:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1528:18:1528:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1528:26:1528:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1528:26:1528:27 | x4 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1528:26:1528:27 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1528:26:1528:32 | x4.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1528:26:1528:32 | x4.m2() | TRef | main.rs:1472:5:1473:14 | S2 | +| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1454:59:1454:60 | x6 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:59:1454:60 | x6 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:59:1454:60 | x6 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:13:1457:19 | from_if | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:13:1457:19 | from_if | T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:23:1461:9 | if ... {...} else {...} | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:23:1461:9 | if ... {...} else {...} | T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:26:1457:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1457:26:1457:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1457:30:1457:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1457:32:1459:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:32:1459:9 | { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1458:13:1458:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1458:13:1458:30 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1459:16:1461:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1459:16:1461:9 | { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1460:13:1460:31 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1460:13:1460:31 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1460:30:1460:30 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1462:26:1462:32 | from_if | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1462:26:1462:32 | from_if | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:13:1465:22 | from_match | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1465:13:1465:22 | from_match | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:26:1468:9 | match ... { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1465:26:1468:9 | match ... { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:32:1465:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1465:32:1465:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1465:36:1465:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1466:21:1466:38 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1466:21:1466:38 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1467:22:1467:40 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1467:22:1467:40 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1467:39:1467:39 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1469:26:1469:35 | from_match | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1469:26:1469:35 | from_match | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:13:1472:21 | from_loop | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1472:13:1472:21 | from_loop | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:25:1477:9 | loop { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1472:25:1477:9 | loop { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1473:16:1473:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1473:16:1473:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1473:20:1473:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1474:23:1474:40 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1474:23:1474:40 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1476:19:1476:37 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1476:19:1476:37 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1476:36:1476:36 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1478:26:1478:34 | from_loop | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1478:26:1478:34 | from_loop | T | main.rs:1431:5:1432:13 | S | +| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | +| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | +| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | +| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:18 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1501:13:1501:19 | &... | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1501:14:1501:19 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1505:13:1505:19 | &... | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1505:14:1505:19 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:13:1518:22 | (...) | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:13:1518:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:14:1518:21 | * ... | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:15:1518:21 | (...) | | {EXTERNAL LOCATION} | & | +| main.rs:1518:15:1518:21 | (...) | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:16:1518:20 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1518:16:1518:20 | * ... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:13:1523:19 | (...) | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1523:13:1523:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:14:1523:18 | * ... | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1528:13:1528:14 | x1 | | main.rs:1484:5:1485:19 | S | +| main.rs:1528:13:1528:14 | x1 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1528:18:1528:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1528:18:1528:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1528:20:1528:21 | S2 | | main.rs:1487:5:1488:14 | S2 | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:27 | x4 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1529:26:1529:27 | x4 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1529:26:1529:32 | x4.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:32 | x4.m3() | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1531:13:1531:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1531:13:1531:14 | x5 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1531:13:1531:14 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1531:18:1531:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1531:18:1531:23 | &... | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1531:18:1531:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1531:19:1531:23 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1531:19:1531:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1531:21:1531:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1529:26:1529:27 | x1 | | main.rs:1484:5:1485:19 | S | +| main.rs:1529:26:1529:27 | x1 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1529:26:1529:32 | x1.m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:13:1531:14 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1531:13:1531:14 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:18:1531:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1531:18:1531:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:20:1531:21 | S2 | | main.rs:1487:5:1488:14 | S2 | | main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1533:26:1533:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1533:26:1533:27 | x5 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1533:26:1533:27 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1533:26:1533:32 | x5.m1() | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1533:26:1533:27 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1533:26:1533:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1533:26:1533:32 | x2.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1533:26:1533:32 | x2.m2() | TRef | main.rs:1487:5:1488:14 | S2 | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1534:26:1534:27 | x5 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1534:26:1534:27 | x5 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1534:26:1534:29 | x5.0 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1536:13:1536:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1536:13:1536:14 | x6 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1536:13:1536:14 | x6 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1536:18:1536:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1536:18:1536:23 | &... | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1536:18:1536:23 | &... | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1536:19:1536:23 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1536:19:1536:23 | S(...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1536:21:1536:22 | S2 | | main.rs:1472:5:1473:14 | S2 | +| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1534:26:1534:27 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1534:26:1534:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1534:26:1534:32 | x2.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:32 | x2.m3() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:13:1536:14 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1536:13:1536:14 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:18:1536:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1536:18:1536:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:20:1536:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1538:38:1538:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1538:38:1538:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:39:1538:40 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1538:39:1538:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1539:18:1539:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1539:26:1539:30 | (...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1539:26:1539:30 | (...) | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1539:26:1539:35 | ... .m1() | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1539:27:1539:29 | * ... | | main.rs:1469:5:1470:19 | S | -| main.rs:1539:27:1539:29 | * ... | T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1539:28:1539:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1539:28:1539:29 | x6 | TRef | main.rs:1469:5:1470:19 | S | -| main.rs:1539:28:1539:29 | x6 | TRef.T | main.rs:1472:5:1473:14 | S2 | -| main.rs:1541:13:1541:14 | x7 | | main.rs:1469:5:1470:19 | S | -| main.rs:1541:13:1541:14 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1541:13:1541:14 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1541:18:1541:23 | S(...) | | main.rs:1469:5:1470:19 | S | -| main.rs:1541:18:1541:23 | S(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1541:18:1541:23 | S(...) | T.TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1541:20:1541:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1541:20:1541:22 | &S2 | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1541:21:1541:22 | S2 | | main.rs:1472:5:1473:14 | S2 | -| main.rs:1544:13:1544:13 | t | | {EXTERNAL LOCATION} | & | -| main.rs:1544:13:1544:13 | t | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1544:17:1544:18 | x7 | | main.rs:1469:5:1470:19 | S | -| main.rs:1544:17:1544:18 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1544:17:1544:18 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1544:17:1544:23 | x7.m1() | | {EXTERNAL LOCATION} | & | -| main.rs:1544:17:1544:23 | x7.m1() | TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1545:18:1545:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1545:18:1545:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1545:18:1545:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1545:18:1545:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1545:26:1545:27 | x7 | | main.rs:1469:5:1470:19 | S | -| main.rs:1545:26:1545:27 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1545:26:1545:27 | x7 | T.TRef | main.rs:1472:5:1473:14 | S2 | -| main.rs:1547:13:1547:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1547:26:1547:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1547:26:1547:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1547:26:1547:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1551:13:1551:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1551:13:1551:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1551:17:1551:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1551:17:1551:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1551:17:1551:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1553:13:1553:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1553:13:1553:20 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1553:24:1553:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1553:24:1553:39 | &... | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1553:25:1553:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1553:36:1553:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1555:13:1555:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1555:17:1555:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1555:17:1555:24 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1555:17:1555:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1556:18:1556:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1556:18:1556:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1556:18:1556:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1556:18:1556:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1556:26:1556:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1559:13:1559:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1559:13:1559:20 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1559:24:1559:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1559:24:1559:39 | &... | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1559:25:1559:39 | MyInt {...} | | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1559:36:1559:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1560:13:1560:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1560:17:1560:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1560:17:1560:24 | my_thing | TRef | main.rs:1475:5:1478:5 | MyInt | -| main.rs:1560:17:1560:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1561:18:1561:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1561:18:1561:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1561:18:1561:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1561:18:1561:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1561:26:1561:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1568:16:1568:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1568:16:1568:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1571:16:1571:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1571:16:1571:20 | SelfParam | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1571:32:1573:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1571:32:1573:9 | { ... } | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1572:13:1572:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1572:13:1572:16 | self | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1572:13:1572:22 | self.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1572:13:1572:22 | self.foo() | TRef | main.rs:1566:5:1574:5 | Self [trait MyTrait] | -| main.rs:1580:16:1580:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1580:16:1580:20 | SelfParam | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1580:36:1582:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1580:36:1582:9 | { ... } | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1581:13:1581:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1581:13:1581:16 | self | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1585:16:1588:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1586:13:1586:13 | x | | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1586:17:1586:24 | MyStruct | | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1587:9:1587:9 | x | | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1587:9:1587:15 | x.bar() | | {EXTERNAL LOCATION} | & | -| main.rs:1587:9:1587:15 | x.bar() | TRef | main.rs:1576:5:1576:20 | MyStruct | -| main.rs:1597:16:1597:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1597:16:1597:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1597:16:1597:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1597:32:1599:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1597:32:1599:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1597:32:1599:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1598:13:1598:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1598:13:1598:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1598:13:1598:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:16:1601:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1601:16:1601:20 | SelfParam | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:16:1601:20 | SelfParam | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:23:1601:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1601:23:1601:23 | x | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:23:1601:23 | x | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1601:42:1603:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1601:42:1603:9 | { ... } | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1601:42:1603:9 | { ... } | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1602:13:1602:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1602:13:1602:16 | self | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1602:13:1602:16 | self | TRef.T | main.rs:1596:10:1596:10 | T | -| main.rs:1606:16:1612:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1607:13:1607:13 | x | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1607:13:1607:13 | x | T | main.rs:1592:5:1592:13 | S | -| main.rs:1607:17:1607:27 | MyStruct(...) | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1607:17:1607:27 | MyStruct(...) | T | main.rs:1592:5:1592:13 | S | -| main.rs:1607:26:1607:26 | S | | main.rs:1592:5:1592:13 | S | -| main.rs:1608:9:1608:9 | x | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1608:9:1608:9 | x | T | main.rs:1592:5:1592:13 | S | -| main.rs:1608:9:1608:15 | x.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1608:9:1608:15 | x.foo() | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1608:9:1608:15 | x.foo() | TRef.T | main.rs:1592:5:1592:13 | S | -| main.rs:1609:13:1609:13 | x | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1609:13:1609:13 | x | T | main.rs:1592:5:1592:13 | S | -| main.rs:1609:17:1609:27 | MyStruct(...) | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1609:17:1609:27 | MyStruct(...) | T | main.rs:1592:5:1592:13 | S | -| main.rs:1609:26:1609:26 | S | | main.rs:1592:5:1592:13 | S | -| main.rs:1611:9:1611:9 | x | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1611:9:1611:9 | x | T | main.rs:1592:5:1592:13 | S | -| main.rs:1611:9:1611:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1611:9:1611:18 | x.bar(...) | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1611:9:1611:18 | x.bar(...) | TRef.T | main.rs:1592:5:1592:13 | S | -| main.rs:1611:15:1611:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1611:15:1611:17 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1611:15:1611:17 | &... | TRef.TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1611:15:1611:17 | &... | TRef.TRef.T | main.rs:1592:5:1592:13 | S | -| main.rs:1611:16:1611:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1611:16:1611:17 | &x | TRef | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1611:16:1611:17 | &x | TRef.T | main.rs:1592:5:1592:13 | S | -| main.rs:1611:17:1611:17 | x | | main.rs:1594:5:1594:26 | MyStruct | -| main.rs:1611:17:1611:17 | x | T | main.rs:1592:5:1592:13 | S | -| main.rs:1622:17:1622:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1622:17:1622:25 | SelfParam | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1622:28:1624:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1623:13:1623:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1623:13:1623:16 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1623:13:1623:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1623:13:1623:34 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1623:25:1623:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1623:26:1623:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1623:26:1623:29 | self | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1623:26:1623:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1630:15:1630:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1630:15:1630:19 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1630:31:1632:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1630:31:1632:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:13:1631:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1631:13:1631:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:13:1631:19 | &... | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:13:1631:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:13:1631:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:13:1631:19 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:14:1631:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1631:14:1631:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:14:1631:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:14:1631:19 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:15:1631:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | &self | TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1631:16:1631:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1631:16:1631:19 | self | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1634:15:1634:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1634:15:1634:25 | SelfParam | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1634:37:1636:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1634:37:1636:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:13:1635:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1635:13:1635:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:13:1635:19 | &... | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:13:1635:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:13:1635:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:13:1635:19 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:14:1635:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1635:14:1635:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:14:1635:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:14:1635:19 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:15:1635:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:19 | &self | TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1635:16:1635:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1635:16:1635:19 | self | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1638:15:1638:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1638:15:1638:15 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1638:34:1640:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1638:34:1640:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1639:13:1639:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:13:1639:13 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1642:15:1642:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1642:15:1642:15 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1642:34:1644:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1642:34:1644:9 | { ... } | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:13:1643:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1643:13:1643:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:13:1643:16 | &... | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:13:1643:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:13:1643:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:13:1643:16 | &... | TRef.TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:14:1643:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1643:14:1643:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:14:1643:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:14:1643:16 | &... | TRef.TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:15:1643:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:16 | &x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:16 | &x | TRef.TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1643:16:1643:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:16:1643:16 | x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1647:16:1660:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1648:13:1648:13 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1648:17:1648:20 | S {...} | | main.rs:1627:5:1627:13 | S | -| main.rs:1649:9:1649:9 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1649:9:1649:14 | x.f1() | | {EXTERNAL LOCATION} | & | -| main.rs:1649:9:1649:14 | x.f1() | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1650:9:1650:14 | x.f2() | | {EXTERNAL LOCATION} | & | -| main.rs:1650:9:1650:14 | x.f2() | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1651:9:1651:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1651:9:1651:17 | ...::f3(...) | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1651:15:1651:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1651:15:1651:16 | &x | TRef | main.rs:1627:5:1627:13 | S | -| main.rs:1651:16:1651:16 | x | | main.rs:1627:5:1627:13 | S | -| main.rs:1653:13:1653:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1653:17:1653:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1653:18:1653:24 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1653:18:1653:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1653:19:1653:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1653:19:1653:24 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1653:19:1653:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1653:20:1653:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1653:20:1653:24 | &true | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1653:21:1653:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1657:17:1657:20 | flag | | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1657:24:1657:41 | ...::default(...) | | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1658:9:1658:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1658:22:1658:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1658:22:1658:30 | &mut flag | TRef | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1658:27:1658:30 | flag | | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1659:18:1659:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1659:18:1659:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1659:18:1659:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:18:1659:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1659:26:1659:29 | flag | | main.rs:1616:5:1619:5 | MyFlag | -| main.rs:1674:43:1677:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1674:43:1677:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1674:43:1677:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1675:13:1675:13 | x | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1675:17:1675:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1675:17:1675:30 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1675:17:1675:31 | TryExpr | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1675:28:1675:29 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1676:9:1676:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1676:9:1676:22 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1676:9:1676:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1676:20:1676:21 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1681:46:1685:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1681:46:1685:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1681:46:1685:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1682:13:1682:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:13:1682:13 | x | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1682:17:1682:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:17:1682:30 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1682:28:1682:29 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1683:13:1683:13 | y | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1683:17:1683:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1683:17:1683:17 | x | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1683:17:1683:18 | TryExpr | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1684:9:1684:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1684:9:1684:22 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1684:9:1684:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1684:20:1684:21 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1689:40:1694:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1689:40:1694:5 | { ... } | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1689:40:1694:5 | { ... } | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1690:13:1690:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:13:1690:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1690:13:1690:13 | x | T.T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1690:17:1690:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:17:1690:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1690:17:1690:42 | ...::Ok(...) | T.T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1690:28:1690:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:28:1690:41 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1690:39:1690:40 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1692:17:1692:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1692:17:1692:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1692:17:1692:17 | x | T.T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1692:17:1692:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1692:17:1692:18 | TryExpr | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1692:17:1692:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1692:24:1692:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1692:24:1692:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1693:9:1693:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:9:1693:22 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1693:9:1693:22 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1693:20:1693:21 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:30:1698:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1698:30:1698:34 | input | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:30:1698:34 | input | T | main.rs:1698:20:1698:27 | T | -| main.rs:1698:69:1705:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1698:69:1705:5 | { ... } | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1698:69:1705:5 | { ... } | T | main.rs:1698:20:1698:27 | T | -| main.rs:1699:13:1699:17 | value | | main.rs:1698:20:1698:27 | T | -| main.rs:1699:21:1699:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:21:1699:25 | input | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1699:21:1699:25 | input | T | main.rs:1698:20:1698:27 | T | -| main.rs:1699:21:1699:26 | TryExpr | | main.rs:1698:20:1698:27 | T | -| main.rs:1700:22:1700:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:22:1700:38 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1700:22:1700:38 | ...::Ok(...) | T | main.rs:1698:20:1698:27 | T | -| main.rs:1700:22:1703:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:22:1703:10 | ... .and_then(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1700:33:1700:37 | value | | main.rs:1698:20:1698:27 | T | -| main.rs:1700:49:1703:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1700:49:1703:9 | \|...\| ... | dyn(Output).E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1700:53:1703:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:53:1703:9 | { ... } | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1701:22:1701:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1701:22:1701:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1701:22:1701:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1701:22:1701:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1702:13:1702:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1702:13:1702:34 | ...::Ok::<...>(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1704:9:1704:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1704:9:1704:23 | ...::Err(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1704:9:1704:23 | ...::Err(...) | T | main.rs:1698:20:1698:27 | T | -| main.rs:1704:21:1704:22 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1708:16:1724:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1709:9:1711:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1709:16:1709:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1709:16:1709:33 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:16:1709:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:27:1709:32 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:37:1709:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1709:37:1709:52 | try_same_error(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:37:1709:52 | try_same_error(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1709:54:1711:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:22:1710:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1710:22:1710:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1710:22:1710:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1710:22:1710:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:30:1710:35 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1713:9:1715:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1713:16:1713:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:16:1713:33 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1713:16:1713:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1713:27:1713:32 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1713:37:1713:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:37:1713:55 | try_convert_error(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1713:37:1713:55 | try_convert_error(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1713:57:1715:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1714:22:1714:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1714:22:1714:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1714:22:1714:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1714:22:1714:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1714:30:1714:35 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1717:9:1719:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1717:16:1717:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1717:16:1717:33 | ...::Ok(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1717:16:1717:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1717:27:1717:32 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1717:37:1717:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1717:37:1717:49 | try_chained(...) | E | main.rs:1669:5:1670:14 | S2 | -| main.rs:1717:37:1717:49 | try_chained(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1717:51:1719:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1718:22:1718:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1718:22:1718:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1718:22:1718:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1718:22:1718:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1718:30:1718:35 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:9:1723:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1721:16:1721:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1721:16:1721:33 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:16:1721:33 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:27:1721:32 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:37:1721:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1721:37:1721:63 | try_complex(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:37:1721:63 | try_complex(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:49:1721:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1721:49:1721:62 | ...::Ok(...) | E | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:49:1721:62 | ...::Ok(...) | T | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:60:1721:61 | S1 | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1721:65:1723:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1722:22:1722:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1722:22:1722:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1722:22:1722:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1722:22:1722:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1722:30:1722:35 | result | | main.rs:1666:5:1667:14 | S1 | -| main.rs:1728:16:1819:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:13:1729:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1729:22:1729:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1730:13:1730:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1730:17:1730:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:13:1731:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:17:1731:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:17:1731:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:21:1731:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:13:1732:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:13:1733:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1733:17:1733:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1734:13:1734:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1734:13:1734:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1734:21:1734:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1734:21:1734:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:13:1735:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1735:17:1735:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:13:1736:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1736:17:1736:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:13:1737:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1740:26:1740:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1740:26:1740:30 | SelfParam | TRef | main.rs:1739:9:1743:9 | Self [trait MyTrait] | -| main.rs:1746:26:1746:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1746:26:1746:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1746:26:1746:30 | SelfParam | TRef.TArray | main.rs:1745:14:1745:23 | T | -| main.rs:1746:39:1748:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1746:39:1748:13 | { ... } | TRef | main.rs:1745:14:1745:23 | T | -| main.rs:1747:17:1747:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1747:17:1747:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:17:1747:20 | self | TRef.TArray | main.rs:1745:14:1745:23 | T | -| main.rs:1747:17:1747:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1747:17:1747:36 | ... .unwrap() | TRef | main.rs:1745:14:1745:23 | T | -| main.rs:1747:26:1747:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1750:31:1752:13 | { ... } | | main.rs:1745:14:1745:23 | T | -| main.rs:1751:17:1751:28 | ...::default(...) | | main.rs:1745:14:1745:23 | T | -| main.rs:1755:13:1755:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1755:13:1755:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1755:17:1755:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1755:17:1755:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1755:17:1755:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1755:17:1755:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1755:18:1755:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1755:21:1755:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1755:24:1755:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:13:1756:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1756:13:1756:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:17:1756:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1756:17:1756:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:22:1756:22 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:37:1756:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1756:37:1756:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1756:37:1756:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:38:1756:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1756:38:1756:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:39:1756:39 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:42:1756:42 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:45:1756:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:17:1757:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:24:1757:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1760:26:1760:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1760:26:1760:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1760:26:1760:30 | SelfParam | TRef.TSlice | main.rs:1759:14:1759:23 | T | -| main.rs:1760:39:1762:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1760:39:1762:13 | { ... } | TRef | main.rs:1759:14:1759:23 | T | -| main.rs:1761:17:1761:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1761:17:1761:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:17:1761:20 | self | TRef.TSlice | main.rs:1759:14:1759:23 | T | -| main.rs:1761:17:1761:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1761:17:1761:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1761:17:1761:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1761:17:1761:36 | ... .unwrap() | TRef | main.rs:1759:14:1759:23 | T | -| main.rs:1761:26:1761:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1764:31:1766:13 | { ... } | | main.rs:1759:14:1759:23 | T | -| main.rs:1765:17:1765:28 | ...::default(...) | | main.rs:1759:14:1759:23 | T | -| main.rs:1769:13:1769:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1769:13:1769:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1769:13:1769:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:25:1769:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1769:25:1769:34 | &... | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1769:25:1769:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1769:25:1769:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:25:1769:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:26:1769:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1769:26:1769:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:27:1769:27 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:30:1769:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1769:33:1769:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1539:38:1539:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1539:38:1539:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:39:1539:40 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1539:39:1539:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:13:1541:14 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1541:13:1541:14 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1541:18:1541:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1541:18:1541:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:19:1541:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1541:19:1541:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:21:1541:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1543:26:1543:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1543:26:1543:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1543:26:1543:32 | x4.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1543:26:1543:32 | x4.m2() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1544:26:1544:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1544:26:1544:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1544:26:1544:32 | x4.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1544:26:1544:32 | x4.m3() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:13:1546:14 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1546:13:1546:14 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1546:18:1546:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1546:18:1546:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:19:1546:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1546:19:1546:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:21:1546:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1548:26:1548:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1548:26:1548:32 | x5.m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1549:26:1549:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1549:26:1549:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1549:26:1549:29 | x5.0 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:13:1551:14 | x6 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1551:13:1551:14 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1551:18:1551:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1551:18:1551:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:19:1551:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1551:19:1551:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:21:1551:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1554:26:1554:30 | (...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1554:26:1554:30 | (...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:26:1554:35 | ... .m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:27:1554:29 | * ... | | main.rs:1484:5:1485:19 | S | +| main.rs:1554:27:1554:29 | * ... | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1554:28:1554:29 | x6 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1554:28:1554:29 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:13:1556:14 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1556:13:1556:14 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1556:13:1556:14 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:18:1556:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1556:18:1556:23 | S(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1556:18:1556:23 | S(...) | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1556:20:1556:22 | &S2 | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:21:1556:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:13:1559:13 | t | | {EXTERNAL LOCATION} | & | +| main.rs:1559:13:1559:13 | t | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:17:1559:18 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1559:17:1559:18 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:18 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:17:1559:23 | x7.m1() | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:23 | x7.m1() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1560:26:1560:27 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1560:26:1560:27 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1560:26:1560:27 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1562:26:1562:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1566:13:1566:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1566:13:1566:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1566:17:1566:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1566:17:1566:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1568:13:1568:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1568:24:1568:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:36:1568:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1570:13:1570:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1570:17:1570:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1570:17:1570:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1571:26:1571:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1574:13:1574:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1574:24:1574:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:36:1574:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:13:1575:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1575:17:1575:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1575:17:1575:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1576:26:1576:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:22 | self.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:22 | self.foo() | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1601:13:1601:13 | x | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1601:17:1601:24 | MyStruct | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1602:9:1602:9 | x | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1602:9:1602:15 | x.bar() | | {EXTERNAL LOCATION} | & | +| main.rs:1602:9:1602:15 | x.bar() | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1622:13:1622:13 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1622:13:1622:13 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1622:17:1622:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1622:17:1622:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | +| main.rs:1622:26:1622:26 | S | | main.rs:1607:5:1607:13 | S | +| main.rs:1623:9:1623:9 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1623:9:1623:9 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1623:9:1623:15 | x.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1623:9:1623:15 | x.foo() | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1623:9:1623:15 | x.foo() | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:13:1624:13 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1624:13:1624:13 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:17:1624:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1624:17:1624:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:26:1624:26 | S | | main.rs:1607:5:1607:13 | S | +| main.rs:1626:9:1626:9 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:9:1626:9 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:9:1626:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1626:9:1626:18 | x.bar(...) | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:9:1626:18 | x.bar(...) | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1626:15:1626:17 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1626:15:1626:17 | &... | TRef.TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:15:1626:17 | &... | TRef.TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1626:16:1626:17 | &x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:16:1626:17 | &x | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:17:1626:17 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:17:1626:17 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1637:17:1637:25 | SelfParam | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1638:13:1638:16 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:13:1638:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1638:13:1638:34 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1638:25:1638:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1638:26:1638:29 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:14 | x.f1() | | {EXTERNAL LOCATION} | & | +| main.rs:1664:9:1664:14 | x.f1() | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:14 | x.f2() | | {EXTERNAL LOCATION} | & | +| main.rs:1665:9:1665:14 | x.f2() | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1666:15:1666:16 | &x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1668:13:1668:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1668:17:1668:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1668:18:1668:24 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:18:1668:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:19:1668:24 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1668:19:1668:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1668:20:1668:24 | &true | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1672:17:1672:20 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1672:24:1672:41 | ...::default(...) | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | & | +| main.rs:1673:22:1673:30 | &mut flag | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1673:27:1673:30 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:26:1674:29 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:13:1690:13 | x | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:17:1690:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1690:17:1690:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:17:1690:31 | TryExpr | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:28:1690:29 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:9:1691:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1691:9:1691:22 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:9:1691:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:20:1691:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:13:1697:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1697:13:1697:13 | x | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:17:1697:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1697:17:1697:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:28:1697:29 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:13:1698:13 | y | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:17:1698:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:17:1698:17 | x | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:17:1698:18 | TryExpr | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1699:9:1699:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1699:9:1699:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1699:9:1699:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1699:20:1699:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:13:1705:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:13:1705:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1705:13:1705:13 | x | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:17:1705:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:17:1705:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1705:17:1705:42 | ...::Ok(...) | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:28:1705:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:28:1705:41 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:39:1705:40 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:17 | x | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:18 | TryExpr | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:24:1707:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1707:24:1707:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1708:9:1708:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1708:9:1708:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1708:9:1708:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1708:20:1708:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:13:1714:17 | value | | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:26 | TryExpr | | main.rs:1713:20:1713:27 | T | +| main.rs:1715:22:1715:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:22:1715:38 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:22:1715:38 | ...::Ok(...) | T | main.rs:1713:20:1713:27 | T | +| main.rs:1715:22:1718:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:22:1718:10 | ... .and_then(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:33:1715:37 | value | | main.rs:1713:20:1713:27 | T | +| main.rs:1715:49:1718:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output).E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:53:1718:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:53:1718:9 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1719:9:1719:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1719:9:1719:23 | ...::Err(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1719:9:1719:23 | ...::Err(...) | T | main.rs:1713:20:1713:27 | T | +| main.rs:1719:21:1719:22 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1724:16:1724:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:16:1724:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:16:1724:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:27:1724:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:30:1725:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1728:16:1728:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:16:1728:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:16:1728:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:27:1728:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:30:1729:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1732:16:1732:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:16:1732:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:16:1732:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:27:1732:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:30:1733:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1736:16:1736:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:16:1736:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:16:1736:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:27:1736:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:37:1736:63 | try_complex(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:49:1736:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:49:1736:62 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:49:1736:62 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:60:1736:61 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:30:1737:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1744:22:1744:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1745:13:1745:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1745:17:1745:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:13:1746:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:21:1746:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:13:1747:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | +| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | +| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | +| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | +| main.rs:1762:17:1762:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1762:17:1762:36 | ... .unwrap() | TRef | main.rs:1760:14:1760:23 | T | +| main.rs:1762:26:1762:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | +| main.rs:1766:17:1766:28 | ...::default(...) | | main.rs:1760:14:1760:23 | T | | main.rs:1770:13:1770:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1770:13:1770:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:17:1770:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:17:1770:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:17:1770:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:17:1770:29 | s.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1770:17:1770:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1770:17:1770:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1770:17:1770:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:18:1770:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:21:1770:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:24:1770:24 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1771:13:1771:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:34:1771:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:34:1771:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:34:1771:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:17:1771:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:22:1771:22 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1771:37:1771:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1771:37:1771:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1771:38:1771:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:39:1771:39 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:42:1771:42 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:45:1771:45 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:24:1772:24 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1775:26:1775:30 | SelfParam | TRef.T0 | main.rs:1774:14:1774:23 | T | -| main.rs:1775:26:1775:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | | main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:17:1776:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1776:17:1776:23 | &... | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:18:1776:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1776:18:1776:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:18:1776:21 | self | TRef.T0 | main.rs:1774:14:1774:23 | T | -| main.rs:1776:18:1776:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:18:1776:23 | self.0 | | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1776:17:1776:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:36 | ... .unwrap() | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:26:1776:26 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | | main.rs:1780:17:1780:28 | ...::default(...) | | main.rs:1774:14:1774:23 | T | -| main.rs:1784:13:1784:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1784:13:1784:13 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:13:1784:13 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:17:1784:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1784:17:1784:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:17:1784:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:18:1784:19 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:22:1784:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1784:25:1784:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1784:26:1784:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:27:1784:27 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:30:1784:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:33:1784:33 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1785:13:1785:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1785:13:1785:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:17 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:17 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:29 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1785:17:1785:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:29 | s.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1786:13:1786:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:37:1786:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1786:37:1786:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:37:1786:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:37:1786:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:38:1786:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:38:1786:38 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:38:1786:38 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:17:1786:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | | main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | -| main.rs:1791:17:1791:21 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1791:17:1791:21 | * ... | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1791:17:1791:23 | &... | TRef | main.rs:1789:14:1789:23 | T | | main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef.TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1791:18:1791:23 | self.0 | | main.rs:1789:14:1789:23 | T | | main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | | main.rs:1795:17:1795:28 | ...::default(...) | | main.rs:1789:14:1789:23 | T | -| main.rs:1799:13:1799:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1799:13:1799:13 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:17:1799:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1799:17:1799:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:13:1799:13 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:13:1799:13 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:17:1799:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:17:1799:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | | main.rs:1799:18:1799:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:22:1799:22 | 7 | | {EXTERNAL LOCATION} | i32 | | main.rs:1800:13:1800:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1800:13:1800:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:17 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:29 | r.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1800:17:1800:17 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:17 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:29 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1800:17:1800:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1801:13:1801:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:33:1801:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1801:33:1801:34 | &r | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1801:33:1801:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:34:1801:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1801:34:1801:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1801:37:1801:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1801:37:1801:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:37:1801:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1801:38:1801:38 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:38:1801:38 | p | T1 | {EXTERNAL LOCATION} | i32 | | main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1805:26:1805:30 | SelfParam | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | | main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:17:1806:34 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1806:17:1806:34 | { ... } | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:26:1806:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1806:26:1806:32 | &... | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:27:1806:32 | * ... | | main.rs:1804:14:1804:23 | T | -| main.rs:1806:28:1806:32 | * ... | | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:28:1806:32 | * ... | TPtrMut | main.rs:1804:14:1804:23 | T | -| main.rs:1806:29:1806:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1806:29:1806:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:29:1806:32 | self | TRef.TPtrMut | main.rs:1804:14:1804:23 | T | +| main.rs:1806:17:1806:21 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1806:17:1806:21 | * ... | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | | main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | | main.rs:1810:17:1810:28 | ...::default(...) | | main.rs:1804:14:1804:23 | T | -| main.rs:1814:17:1814:17 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1814:21:1814:22 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:13:1815:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1815:13:1815:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:27:1815:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1815:27:1815:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:32:1815:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1814:13:1814:13 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1814:17:1814:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:18:1814:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:13:1815:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1815:13:1815:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:17 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:17:1815:29 | r.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1816:13:1816:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:17:1816:40 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1816:17:1816:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:26:1816:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:26:1816:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:26:1816:38 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1816:26:1816:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1817:13:1817:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:17:1817:50 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1817:17:1817:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1817:26:1817:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:46:1817:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1817:46:1817:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:46:1817:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:47:1817:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:47:1817:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:17:1818:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1824:16:1836:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1825:13:1825:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:17:1825:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:17:1825:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1825:25:1825:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:13:1826:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1828:17:1828:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1829:13:1829:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1829:20:1829:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1829:20:1829:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1829:26:1829:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:9:1834:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1830:12:1830:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:17:1832:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1831:17:1831:17 | z | | {EXTERNAL LOCATION} | () | -| main.rs:1831:21:1831:27 | (...) | | {EXTERNAL LOCATION} | () | -| main.rs:1831:22:1831:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:22:1831:26 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1831:26:1831:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:16:1834:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1833:13:1833:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:13:1833:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1833:17:1833:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1835:9:1835:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1849:30:1851:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1850:13:1850:31 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1850:23:1850:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1850:29:1850:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1857:16:1857:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1857:22:1857:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1857:41:1862:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1858:13:1861:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1859:20:1859:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1859:20:1859:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1859:20:1859:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1859:29:1859:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1859:29:1859:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:20:1860:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1860:20:1860:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:20:1860:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1860:29:1860:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1867:23:1867:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1867:23:1867:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1867:34:1867:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1867:45:1870:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1868:13:1868:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1868:13:1868:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1868:13:1868:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:13:1868:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1868:23:1868:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1868:23:1868:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1869:13:1869:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:13:1869:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1869:23:1869:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:16:1875:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1875:22:1875:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1875:41:1880:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1876:13:1879:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1877:20:1877:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1877:20:1877:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:20:1877:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:29:1877:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1877:29:1877:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:20:1878:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1878:20:1878:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:20:1878:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1878:29:1878:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1885:23:1885:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1885:23:1885:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1885:34:1885:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1885:45:1888:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1886:13:1886:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1886:13:1886:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1886:13:1886:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1886:13:1886:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1886:23:1886:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1886:23:1886:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1887:13:1887:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1887:13:1887:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1887:23:1887:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1893:22:1893:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1893:41:1898:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1895:20:1895:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1895:20:1895:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:20:1895:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:29:1895:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1895:29:1895:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:20:1896:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1896:20:1896:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:20:1896:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1896:29:1896:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:23:1902:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1902:23:1902:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1902:34:1902:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1902:45:1905:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1903:13:1903:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1903:13:1903:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1903:13:1903:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:13:1903:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1903:23:1903:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1903:23:1903:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1904:13:1904:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:13:1904:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1904:23:1904:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1910:16:1910:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1910:22:1910:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1910:41:1915:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1911:13:1914:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1912:20:1912:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1912:20:1912:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:20:1912:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:29:1912:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1912:29:1912:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:20:1913:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1913:20:1913:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:20:1913:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1913:29:1913:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:23:1919:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1919:23:1919:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1919:34:1919:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1919:45:1922:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1920:13:1920:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1920:13:1920:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1920:13:1920:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:13:1920:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1920:23:1920:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1920:23:1920:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1921:13:1921:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:13:1921:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1921:23:1921:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1927:16:1927:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1927:22:1927:24 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1927:41:1932:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1928:13:1931:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1929:20:1929:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1929:20:1929:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:20:1929:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:29:1929:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1929:29:1929:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:20:1930:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1930:20:1930:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:20:1930:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1930:29:1930:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:23:1936:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1936:23:1936:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1936:34:1936:36 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1936:45:1939:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1937:13:1937:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1937:13:1937:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1937:13:1937:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1937:13:1937:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1937:23:1937:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1937:23:1937:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1938:13:1938:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1938:13:1938:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1938:23:1938:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:19:1944:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1944:25:1944:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1944:44:1949:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1945:13:1948:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1946:20:1946:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1946:20:1946:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1946:20:1946:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1946:29:1946:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1946:29:1946:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:20:1947:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1947:20:1947:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:20:1947:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1947:29:1947:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:26:1953:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1953:26:1953:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1953:37:1953:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1953:48:1956:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1954:13:1954:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1954:13:1954:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1954:13:1954:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:13:1954:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1954:23:1954:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1954:23:1954:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1955:13:1955:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1955:13:1955:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1955:23:1955:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1961:18:1961:21 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1961:24:1961:26 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1961:43:1966:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1962:13:1965:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1963:20:1963:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1963:20:1963:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:20:1963:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:29:1963:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1963:29:1963:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:20:1964:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1964:20:1964:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:20:1964:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1964:29:1964:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:25:1970:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1970:25:1970:33 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1970:36:1970:38 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1970:47:1973:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1971:13:1971:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1971:13:1971:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1971:13:1971:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1971:13:1971:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1971:23:1971:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1971:23:1971:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1972:13:1972:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:13:1972:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1972:23:1972:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1978:19:1978:22 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1978:25:1978:27 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1978:44:1983:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1979:13:1982:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1980:20:1980:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1980:20:1980:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:20:1980:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:29:1980:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1980:29:1980:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:20:1981:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1981:20:1981:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:20:1981:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1981:29:1981:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:26:1987:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1987:26:1987:34 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1987:37:1987:39 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1987:48:1990:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1988:13:1988:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1988:13:1988:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1988:13:1988:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1988:13:1988:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1988:23:1988:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1988:23:1988:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1989:13:1989:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:13:1989:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1989:23:1989:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:16:1995:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1995:22:1995:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1995:40:2000:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1996:13:1999:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1997:20:1997:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1997:20:1997:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1997:20:1997:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1997:30:1997:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1998:20:1998:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:1998:20:1998:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:20:1998:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2004:23:2004:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2004:23:2004:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2004:34:2004:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2004:44:2007:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2005:13:2005:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2005:13:2005:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2005:13:2005:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2005:13:2005:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2005:24:2005:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2006:13:2006:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2006:13:2006:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2012:16:2012:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2012:22:2012:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2012:40:2017:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2013:13:2016:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2014:20:2014:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2014:20:2014:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2014:20:2014:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2014:30:2014:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2015:20:2015:23 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2015:20:2015:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2015:20:2015:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:23:2021:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2021:23:2021:31 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2021:34:2021:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:44:2024:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2022:13:2022:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2022:13:2022:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2022:13:2022:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2022:13:2022:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2022:24:2022:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2023:13:2023:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2023:13:2023:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2029:16:2029:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2029:30:2034:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2030:13:2033:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2031:20:2031:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2031:21:2031:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2031:21:2031:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2032:20:2032:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2032:21:2032:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2032:21:2032:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2039:16:2039:19 | SelfParam | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2039:30:2044:9 | { ... } | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2040:13:2043:13 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2041:20:2041:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2041:21:2041:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2041:21:2041:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2042:20:2042:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2042:21:2042:24 | self | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2042:21:2042:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2048:15:2048:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2048:15:2048:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2048:22:2048:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2048:22:2048:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2048:44:2050:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:13:2049:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2049:13:2049:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:13:2049:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2049:13:2049:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:13:2049:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:23:2049:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:23:2049:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:23:2049:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2049:34:2049:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2049:34:2049:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:34:2049:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2049:34:2049:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2049:44:2049:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:44:2049:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2049:44:2049:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2052:15:2052:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2052:15:2052:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2052:22:2052:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2052:22:2052:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2052:44:2054:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:13:2053:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2053:13:2053:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:13:2053:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2053:13:2053:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:13:2053:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:23:2053:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:23:2053:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:23:2053:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2053:34:2053:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2053:34:2053:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:34:2053:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2053:34:2053:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2053:44:2053:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:44:2053:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2053:44:2053:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2058:24:2058:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2058:24:2058:28 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2058:31:2058:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2058:31:2058:35 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2058:75:2060:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2058:75:2060:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2059:13:2059:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:13:2059:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2059:13:2059:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2059:14:2059:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2059:14:2059:17 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:14:2059:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:14:2059:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:23:2059:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2059:23:2059:26 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:23:2059:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:43:2059:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2059:43:2059:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:44:2059:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:45:2059:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:45:2059:49 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:45:2059:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:45:2059:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:55:2059:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:55:2059:59 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2059:55:2059:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2062:15:2062:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2062:15:2062:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2062:22:2062:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2062:22:2062:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2062:44:2064:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:13:2063:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2063:13:2063:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:13:2063:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2063:13:2063:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:13:2063:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1816:17:1816:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:34:1816:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:17:1821:34 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1821:17:1821:34 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1821:26:1821:32 | &... | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:27:1821:32 | * ... | | main.rs:1819:14:1819:23 | T | +| main.rs:1821:28:1821:32 | * ... | | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:28:1821:32 | * ... | TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | +| main.rs:1825:17:1825:28 | ...::default(...) | | main.rs:1819:14:1819:23 | T | +| main.rs:1829:17:1829:17 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:21:1829:22 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | & | +| main.rs:1830:27:1830:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:32:1830:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:13:1831:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1831:13:1831:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:17:1831:40 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1831:17:1831:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:26:1831:38 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1831:26:1831:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:13:1832:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1832:13:1832:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:17:1832:50 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1832:17:1832:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1832:26:1832:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1832:46:1832:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:46:1832:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1843:17:1843:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1844:13:1844:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1844:20:1844:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1844:20:1844:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1844:26:1844:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1845:9:1849:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1845:12:1845:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1846:17:1846:17 | z | | {EXTERNAL LOCATION} | () | +| main.rs:1846:21:1846:27 | (...) | | {EXTERNAL LOCATION} | () | +| main.rs:1846:22:1846:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1846:22:1846:26 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1846:26:1846:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1848:13:1848:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1848:13:1848:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1848:17:1848:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1850:9:1850:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:23:1865:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1865:29:1865:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:20:1874:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:29:1874:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:20:1875:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:20:1875:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:29:1875:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1882:23:1882:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1883:13:1883:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:13:1883:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:13:1883:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:23:1883:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1884:13:1884:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:23:1884:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:20:1892:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:29:1892:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:20:1893:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:20:1893:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:29:1893:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1900:23:1900:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1901:13:1901:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:13:1901:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:13:1901:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:23:1901:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1902:13:1902:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1902:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:23:1902:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:20:1910:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:29:1910:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:20:1911:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:20:1911:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:29:1911:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1917:23:1917:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1918:13:1918:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:13:1918:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:13:1918:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:23:1918:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1919:13:1919:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:13:1919:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:23:1919:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:20:1927:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:29:1927:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:20:1928:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:20:1928:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:29:1928:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1934:23:1934:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1935:13:1935:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:13:1935:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1935:13:1935:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:23:1935:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1936:13:1936:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1936:13:1936:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:23:1936:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:20:1944:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:29:1944:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:20:1945:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:20:1945:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:29:1945:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1951:23:1951:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1952:13:1952:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:13:1952:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:13:1952:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:23:1952:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1953:13:1953:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:13:1953:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:23:1953:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:20:1961:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:29:1961:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:20:1962:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:20:1962:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:29:1962:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1968:26:1968:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1969:13:1969:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:13:1969:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:13:1969:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:23:1969:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1970:13:1970:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:13:1970:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:23:1970:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:20:1978:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:29:1978:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:20:1979:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:20:1979:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:29:1979:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1985:25:1985:33 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1986:13:1986:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:13:1986:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:13:1986:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:23:1986:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1987:13:1987:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:13:1987:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:23:1987:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:20:1995:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:29:1995:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:20:1996:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:20:1996:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:29:1996:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2002:26:2002:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2003:13:2003:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:13:2003:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2003:13:2003:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:23:2003:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2004:13:2004:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:13:2004:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:23:2004:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:20:2012:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2013:20:2013:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:20:2013:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2019:23:2019:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2020:13:2020:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:13:2020:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2020:13:2020:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2021:13:2021:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:13:2021:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2021:13:2021:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:20:2029:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2030:20:2030:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:20:2030:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2036:23:2036:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2037:13:2037:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:13:2037:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2037:13:2037:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2038:13:2038:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:13:2038:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2038:13:2038:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:20:2046:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:21:2046:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2047:20:2047:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2047:21:2047:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:20:2056:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:21:2056:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2057:20:2057:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2057:21:2057:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:22:2063:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2063:33:2063:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2063:33:2063:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:33:2063:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2063:33:2063:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2063:42:2063:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:42:2063:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2063:42:2063:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2066:15:2066:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2066:15:2066:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2066:22:2066:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2066:22:2066:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2066:44:2068:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:13:2067:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2067:13:2067:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:13:2067:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:13:2067:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:13:2067:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:23:2067:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:23:2067:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:23:2067:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:34:2067:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2067:34:2067:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:34:2067:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:34:2067:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:44:2067:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:44:2067:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2067:44:2067:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2070:15:2070:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2070:15:2070:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2070:22:2070:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2070:22:2070:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2070:44:2072:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:13:2071:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2071:13:2071:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:13:2071:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2071:13:2071:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:13:2071:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:22:2071:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2071:33:2071:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2071:33:2071:36 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:33:2071:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2071:33:2071:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2071:42:2071:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:42:2071:46 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2071:42:2071:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:15:2074:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2074:15:2074:19 | SelfParam | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2074:22:2074:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:22:2074:26 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2074:44:2076:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:13:2075:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2075:13:2075:16 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:13:2075:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2075:13:2075:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:13:2075:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:23:2075:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:23:2075:27 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:23:2075:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2075:34:2075:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2075:34:2075:37 | self | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:34:2075:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2075:34:2075:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2075:44:2075:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:44:2075:48 | other | TRef | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2075:44:2075:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2079:26:2079:26 | a | | main.rs:2079:18:2079:23 | T | -| main.rs:2079:32:2079:32 | b | | main.rs:2079:18:2079:23 | T | -| main.rs:2080:9:2080:9 | a | | main.rs:2079:18:2079:23 | T | -| main.rs:2080:13:2080:13 | b | | main.rs:2079:18:2079:23 | T | -| main.rs:2083:16:2214:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2087:13:2087:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2087:22:2087:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2087:23:2087:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2087:23:2087:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2087:31:2087:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:13:2088:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:22:2088:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:23:2088:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:23:2088:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:31:2088:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:13:2089:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:22:2089:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:23:2089:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:30:2089:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:13:2090:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:22:2090:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:23:2090:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:31:2090:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:13:2091:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:22:2091:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:23:2091:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:30:2091:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:13:2092:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:22:2092:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:23:2092:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:32:2092:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:13:2095:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:23:2095:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:23:2095:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2095:31:2095:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:13:2096:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:13:2097:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:13:2098:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:13:2099:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:39:2100:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:45:2100:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:17:2103:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:34:2103:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:9:2104:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:9:2104:31 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2104:27:2104:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:17:2106:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:34:2106:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:9:2107:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:9:2107:31 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2107:27:2107:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2109:17:2109:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2109:34:2109:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:9:2110:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:9:2110:31 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2110:27:2110:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:17:2112:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:34:2112:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:9:2113:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:9:2113:31 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2113:27:2113:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:17:2115:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:34:2115:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:9:2116:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:9:2116:31 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2116:27:2116:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:13:2119:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:26:2119:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:26:2119:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:34:2119:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:13:2120:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:25:2120:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:25:2120:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:33:2120:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:13:2121:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:26:2121:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:26:2121:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:34:2121:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:13:2122:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:23:2122:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:23:2122:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:32:2122:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:13:2123:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2126:17:2126:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2126:37:2126:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:9:2127:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:9:2127:34 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2127:30:2127:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:17:2129:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:36:2129:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:9:2130:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:9:2130:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2130:29:2130:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2132:17:2132:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2132:37:2132:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:9:2133:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:9:2133:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2133:30:2133:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:17:2135:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:34:2135:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:9:2136:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:9:2136:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2136:28:2136:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:17:2138:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:34:2138:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:9:2139:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:9:2139:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2139:28:2139:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:13:2141:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:23:2141:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:24:2141:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:13:2142:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:23:2142:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:13:2145:14 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2145:18:2145:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2145:28:2145:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2145:34:2145:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2146:13:2146:14 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2146:28:2146:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2146:34:2146:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2149:13:2149:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2149:23:2149:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2149:23:2149:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2149:29:2149:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2150:13:2150:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2150:23:2150:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2151:13:2151:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2151:23:2151:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:28:2151:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2152:13:2152:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2152:23:2152:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:29:2152:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2153:13:2153:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2153:23:2153:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:28:2153:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2154:13:2154:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2154:23:2154:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:29:2154:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:13:2157:20 | vec2_add | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:24:2157:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:24:2157:30 | ... + ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2157:29:2157:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:13:2158:20 | vec2_sub | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:24:2158:30 | ... - ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:13:2159:20 | vec2_mul | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:24:2159:30 | ... * ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:13:2160:20 | vec2_div | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:24:2160:30 | ... / ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:13:2161:20 | vec2_rem | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:24:2161:30 | ... % ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2164:17:2164:31 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2164:35:2164:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2165:9:2165:23 | vec2_add_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2165:9:2165:29 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2165:28:2165:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2167:17:2167:31 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2167:35:2167:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2168:9:2168:23 | vec2_sub_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2168:9:2168:29 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2168:28:2168:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2170:17:2170:31 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2170:35:2170:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2171:9:2171:23 | vec2_mul_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2171:9:2171:29 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2171:28:2171:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2173:17:2173:31 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2173:35:2173:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2174:9:2174:23 | vec2_div_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2174:9:2174:29 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2174:28:2174:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2176:17:2176:31 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2176:35:2176:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2177:9:2177:23 | vec2_rem_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2177:9:2177:29 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2177:28:2177:29 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:13:2180:23 | vec2_bitand | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:27:2180:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:27:2180:33 | ... & ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2180:32:2180:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:13:2181:22 | vec2_bitor | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:26:2181:27 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:26:2181:32 | ... \| ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2181:31:2181:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:13:2182:23 | vec2_bitxor | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:27:2182:28 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:27:2182:33 | ... ^ ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2182:32:2182:33 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:13:2183:20 | vec2_shl | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:24:2183:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:24:2183:33 | ... << ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2183:30:2183:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2184:13:2184:20 | vec2_shr | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2184:24:2184:33 | ... >> ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2187:17:2187:34 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2187:38:2187:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2188:9:2188:26 | vec2_bitand_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2188:9:2188:32 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2188:31:2188:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2190:17:2190:33 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2190:37:2190:38 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2191:9:2191:25 | vec2_bitor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2191:9:2191:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2191:30:2191:31 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2193:17:2193:34 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2193:38:2193:39 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2194:9:2194:26 | vec2_bitxor_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2194:9:2194:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2194:31:2194:32 | v2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2196:17:2196:31 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2196:35:2196:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2197:9:2197:23 | vec2_shl_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2197:9:2197:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2197:29:2197:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2199:17:2199:31 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2199:35:2199:36 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2200:9:2200:23 | vec2_shr_assign | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2200:9:2200:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2200:29:2200:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2203:13:2203:20 | vec2_neg | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2203:24:2203:26 | - ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2203:25:2203:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2204:13:2204:20 | vec2_not | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2204:24:2204:26 | ! ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2207:13:2207:24 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2207:28:2207:45 | ...::default(...) | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2208:13:2208:26 | vec2_zero_plus | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2208:30:2208:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2208:30:2208:63 | ... + ... | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2208:40:2208:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2208:46:2208:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2208:52:2208:63 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2212:13:2212:24 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2212:28:2212:45 | ...::default(...) | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2213:13:2213:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2213:30:2213:48 | Vec2 {...} | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2213:30:2213:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2213:40:2213:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2213:46:2213:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2213:53:2213:64 | default_vec2 | | main.rs:1842:5:1847:5 | Vec2 | -| main.rs:2223:18:2223:21 | SelfParam | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2223:24:2223:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2226:25:2228:5 | { ... } | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2227:9:2227:10 | S1 | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2230:41:2232:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2230:41:2232:5 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2231:9:2231:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2231:9:2231:20 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2231:17:2231:18 | S1 | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2234:41:2236:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2234:41:2236:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2235:9:2235:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:9:2235:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2244:13:2244:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2244:13:2244:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2244:13:2244:42 | SelfParam | Ptr.TRef | main.rs:2238:5:2238:14 | S2 | -| main.rs:2245:13:2245:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2246:44:2248:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2246:44:2248:9 | { ... } | T | main.rs:2220:5:2220:14 | S1 | -| main.rs:2247:13:2247:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2247:13:2247:38 | ...::Ready(...) | T | main.rs:2220:5:2220:14 | S1 | -| main.rs:2247:36:2247:37 | S1 | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2251:41:2253:5 | { ... } | | main.rs:2238:5:2238:14 | S2 | -| main.rs:2252:9:2252:10 | S2 | | main.rs:2238:5:2238:14 | S2 | -| main.rs:2255:22:2263:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2256:9:2256:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2256:9:2256:12 | f1(...) | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2256:9:2256:18 | await ... | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2256:9:2256:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2257:9:2257:12 | f2(...) | | main.rs:2230:16:2230:39 | impl ... | -| main.rs:2257:9:2257:18 | await ... | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2257:9:2257:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2258:9:2258:12 | f3(...) | | main.rs:2234:16:2234:39 | impl ... | -| main.rs:2258:9:2258:18 | await ... | | {EXTERNAL LOCATION} | () | -| main.rs:2259:9:2259:12 | f4(...) | | main.rs:2251:16:2251:39 | impl ... | -| main.rs:2259:9:2259:18 | await ... | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2259:9:2259:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2260:9:2260:10 | S2 | | main.rs:2238:5:2238:14 | S2 | -| main.rs:2260:9:2260:16 | await S2 | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2260:9:2260:20 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2261:13:2261:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2261:13:2261:13 | b | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2261:17:2261:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2261:17:2261:28 | { ... } | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2261:25:2261:26 | S1 | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2262:9:2262:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:9:2262:9 | b | dyn(Output) | main.rs:2220:5:2220:14 | S1 | -| main.rs:2262:9:2262:15 | await b | | main.rs:2220:5:2220:14 | S1 | -| main.rs:2262:9:2262:19 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2273:15:2273:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2273:15:2273:19 | SelfParam | TRef | main.rs:2272:5:2274:5 | Self [trait Trait1] | -| main.rs:2273:22:2273:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2277:15:2277:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2277:15:2277:19 | SelfParam | TRef | main.rs:2276:5:2278:5 | Self [trait Trait2] | -| main.rs:2277:22:2277:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2281:15:2281:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2281:15:2281:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2281:22:2281:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2285:15:2285:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2285:15:2285:19 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2285:22:2285:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2288:37:2290:5 | { ... } | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2289:9:2289:10 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2293:18:2293:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2293:18:2293:22 | SelfParam | TRef | main.rs:2292:5:2294:5 | Self [trait MyTrait] | -| main.rs:2297:18:2297:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2297:18:2297:22 | SelfParam | TRef | main.rs:2267:5:2268:14 | S1 | -| main.rs:2297:31:2299:9 | { ... } | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2298:13:2298:14 | S2 | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2303:18:2303:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2303:18:2303:22 | SelfParam | TRef | main.rs:2270:5:2270:22 | S3 | -| main.rs:2303:18:2303:22 | SelfParam | TRef.T3 | main.rs:2302:10:2302:17 | T | -| main.rs:2303:30:2306:9 | { ... } | | main.rs:2302:10:2302:17 | T | -| main.rs:2304:17:2304:21 | S3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:2304:17:2304:21 | S3(...) | | main.rs:2270:5:2270:22 | S3 | -| main.rs:2304:17:2304:21 | S3(...) | TRef | main.rs:2270:5:2270:22 | S3 | -| main.rs:2304:17:2304:21 | S3(...) | TRef.T3 | main.rs:2302:10:2302:17 | T | -| main.rs:2304:25:2304:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2304:25:2304:28 | self | TRef | main.rs:2270:5:2270:22 | S3 | -| main.rs:2304:25:2304:28 | self | TRef.T3 | main.rs:2302:10:2302:17 | T | -| main.rs:2305:13:2305:21 | t.clone() | | main.rs:2302:10:2302:17 | T | -| main.rs:2309:45:2311:5 | { ... } | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2310:9:2310:10 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2313:41:2313:41 | t | | main.rs:2313:26:2313:38 | B | -| main.rs:2313:52:2315:5 | { ... } | | main.rs:2313:23:2313:23 | A | -| main.rs:2314:9:2314:9 | t | | main.rs:2313:26:2313:38 | B | -| main.rs:2314:9:2314:17 | t.get_a() | | main.rs:2313:23:2313:23 | A | -| main.rs:2317:34:2317:34 | x | | main.rs:2317:24:2317:31 | T | -| main.rs:2317:59:2319:5 | { ... } | | main.rs:2317:43:2317:57 | impl ... | -| main.rs:2317:59:2319:5 | { ... } | impl(T) | main.rs:2317:24:2317:31 | T | -| main.rs:2318:9:2318:13 | S3(...) | | main.rs:2270:5:2270:22 | S3 | -| main.rs:2318:9:2318:13 | S3(...) | | main.rs:2317:43:2317:57 | impl ... | -| main.rs:2318:9:2318:13 | S3(...) | T3 | main.rs:2317:24:2317:31 | T | -| main.rs:2318:9:2318:13 | S3(...) | impl(T) | main.rs:2317:24:2317:31 | T | -| main.rs:2318:12:2318:12 | x | | main.rs:2317:24:2317:31 | T | -| main.rs:2321:34:2321:34 | x | | main.rs:2321:24:2321:31 | T | -| main.rs:2321:67:2323:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2321:67:2323:5 | { ... } | T | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2321:67:2323:5 | { ... } | T.impl(T) | main.rs:2321:24:2321:31 | T | -| main.rs:2322:9:2322:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2322:9:2322:19 | Some(...) | T | main.rs:2270:5:2270:22 | S3 | -| main.rs:2322:9:2322:19 | Some(...) | T | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2322:9:2322:19 | Some(...) | T.T3 | main.rs:2321:24:2321:31 | T | -| main.rs:2322:9:2322:19 | Some(...) | T.impl(T) | main.rs:2321:24:2321:31 | T | -| main.rs:2322:14:2322:18 | S3(...) | | main.rs:2270:5:2270:22 | S3 | -| main.rs:2322:14:2322:18 | S3(...) | T3 | main.rs:2321:24:2321:31 | T | -| main.rs:2322:17:2322:17 | x | | main.rs:2321:24:2321:31 | T | -| main.rs:2325:34:2325:34 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2325:78:2327:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2325:78:2327:5 | { ... } | T0 | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2325:78:2327:5 | { ... } | T0.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2325:78:2327:5 | { ... } | T1 | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2325:78:2327:5 | { ... } | T1.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:9:2326:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:9:2326:30 | TupleExpr | T0 | main.rs:2270:5:2270:22 | S3 | -| main.rs:2326:9:2326:30 | TupleExpr | T0 | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2326:9:2326:30 | TupleExpr | T0.T3 | main.rs:2325:24:2325:31 | T | -| main.rs:2326:9:2326:30 | TupleExpr | T0.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:9:2326:30 | TupleExpr | T1 | main.rs:2270:5:2270:22 | S3 | -| main.rs:2326:9:2326:30 | TupleExpr | T1 | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2326:9:2326:30 | TupleExpr | T1.T3 | main.rs:2325:24:2325:31 | T | -| main.rs:2326:9:2326:30 | TupleExpr | T1.impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:10:2326:22 | S3(...) | | main.rs:2270:5:2270:22 | S3 | -| main.rs:2326:10:2326:22 | S3(...) | | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2326:10:2326:22 | S3(...) | T3 | main.rs:2325:24:2325:31 | T | -| main.rs:2326:10:2326:22 | S3(...) | impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:13:2326:13 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2326:13:2326:21 | x.clone() | | main.rs:2325:24:2325:31 | T | -| main.rs:2326:25:2326:29 | S3(...) | | main.rs:2270:5:2270:22 | S3 | -| main.rs:2326:25:2326:29 | S3(...) | | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2326:25:2326:29 | S3(...) | T3 | main.rs:2325:24:2325:31 | T | -| main.rs:2326:25:2326:29 | S3(...) | impl(T) | main.rs:2325:24:2325:31 | T | -| main.rs:2326:28:2326:28 | x | | main.rs:2325:24:2325:31 | T | -| main.rs:2329:26:2329:26 | t | | main.rs:2329:29:2329:43 | impl ... | -| main.rs:2329:51:2331:5 | { ... } | | main.rs:2329:23:2329:23 | A | -| main.rs:2330:9:2330:9 | t | | main.rs:2329:29:2329:43 | impl ... | -| main.rs:2330:9:2330:17 | t.get_a() | | main.rs:2329:23:2329:23 | A | -| main.rs:2333:16:2347:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2334:13:2334:13 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2334:17:2334:20 | f1(...) | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2335:9:2335:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2335:9:2335:14 | x.f1() | | {EXTERNAL LOCATION} | () | -| main.rs:2336:9:2336:9 | x | | main.rs:2288:16:2288:35 | impl ... + ... | -| main.rs:2336:9:2336:14 | x.f2() | | {EXTERNAL LOCATION} | () | -| main.rs:2337:13:2337:13 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2337:17:2337:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2338:13:2338:13 | b | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2338:17:2338:33 | uses_my_trait1(...) | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2338:32:2338:32 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2339:13:2339:13 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2339:17:2339:32 | get_a_my_trait(...) | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2340:13:2340:13 | c | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2340:17:2340:33 | uses_my_trait2(...) | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2340:32:2340:32 | a | | main.rs:2309:28:2309:43 | impl ... | -| main.rs:2341:13:2341:13 | d | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2341:17:2341:34 | uses_my_trait2(...) | | main.rs:2269:5:2269:14 | S2 | -| main.rs:2341:32:2341:33 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2342:13:2342:13 | e | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | | main.rs:2317:43:2317:57 | impl ... | -| main.rs:2342:17:2342:35 | get_a_my_trait2(...) | impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2342:17:2342:43 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2342:33:2342:34 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2345:13:2345:13 | f | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2345:17:2345:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2345:17:2345:44 | ... .unwrap() | | main.rs:2321:50:2321:64 | impl ... | -| main.rs:2345:17:2345:44 | ... .unwrap() | impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2345:17:2345:52 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2345:33:2345:34 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:13:2346:13 | g | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0 | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1 | main.rs:2325:61:2325:75 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:17:2346:37 | ... .0 | | main.rs:2325:44:2325:58 | impl ... | -| main.rs:2346:17:2346:37 | ... .0 | impl(T) | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:17:2346:45 | ... .get_a() | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2346:33:2346:34 | S1 | | main.rs:2267:5:2268:14 | S1 | -| main.rs:2357:16:2357:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2357:16:2357:20 | SelfParam | TRef | main.rs:2353:5:2354:13 | S | -| main.rs:2357:31:2359:9 | { ... } | | main.rs:2353:5:2354:13 | S | -| main.rs:2358:13:2358:13 | S | | main.rs:2353:5:2354:13 | S | -| main.rs:2368:26:2370:9 | { ... } | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2368:26:2370:9 | { ... } | T | main.rs:2367:10:2367:10 | T | -| main.rs:2369:13:2369:38 | MyVec {...} | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2369:13:2369:38 | MyVec {...} | T | main.rs:2367:10:2367:10 | T | -| main.rs:2369:27:2369:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2369:27:2369:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2369:27:2369:36 | ...::new(...) | T | main.rs:2367:10:2367:10 | T | -| main.rs:2372:17:2372:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2372:17:2372:25 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2372:17:2372:25 | SelfParam | TRef.T | main.rs:2367:10:2367:10 | T | -| main.rs:2372:28:2372:32 | value | | main.rs:2367:10:2367:10 | T | -| main.rs:2372:38:2374:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2373:13:2373:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2373:13:2373:16 | self | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2373:13:2373:16 | self | TRef.T | main.rs:2367:10:2367:10 | T | -| main.rs:2373:13:2373:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2373:13:2373:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2373:13:2373:21 | self.data | T | main.rs:2367:10:2367:10 | T | -| main.rs:2373:13:2373:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2373:28:2373:32 | value | | main.rs:2367:10:2367:10 | T | -| main.rs:2381:18:2381:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2381:18:2381:22 | SelfParam | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2381:18:2381:22 | SelfParam | TRef.T | main.rs:2377:10:2377:10 | T | -| main.rs:2381:25:2381:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2381:56:2383:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2381:56:2383:9 | { ... } | TRef | main.rs:2377:10:2377:10 | T | -| main.rs:2382:13:2382:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2382:13:2382:29 | &... | TRef | main.rs:2377:10:2377:10 | T | -| main.rs:2382:14:2382:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2382:14:2382:17 | self | TRef | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2382:14:2382:17 | self | TRef.T | main.rs:2377:10:2377:10 | T | -| main.rs:2382:14:2382:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2382:14:2382:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2382:14:2382:22 | self.data | T | main.rs:2377:10:2377:10 | T | -| main.rs:2382:14:2382:29 | ...[index] | | main.rs:2377:10:2377:10 | T | -| main.rs:2382:24:2382:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2386:22:2386:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2386:22:2386:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2386:22:2386:26 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | -| main.rs:2386:35:2388:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2387:13:2387:13 | x | | main.rs:2353:5:2354:13 | S | -| main.rs:2387:17:2387:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:17:2387:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:17:2387:21 | slice | TRef.TSlice | main.rs:2353:5:2354:13 | S | -| main.rs:2387:17:2387:24 | slice[0] | | main.rs:2353:5:2354:13 | S | -| main.rs:2387:17:2387:30 | ... .foo() | | main.rs:2353:5:2354:13 | S | -| main.rs:2387:23:2387:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2390:37:2390:37 | a | | main.rs:2390:20:2390:34 | T | -| main.rs:2390:43:2390:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2394:9:2394:9 | a | | main.rs:2390:20:2390:34 | T | -| main.rs:2394:11:2394:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2397:16:2408:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2398:17:2398:19 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2398:17:2398:19 | vec | T | main.rs:2353:5:2354:13 | S | -| main.rs:2398:23:2398:34 | ...::new(...) | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2398:23:2398:34 | ...::new(...) | T | main.rs:2353:5:2354:13 | S | -| main.rs:2399:9:2399:11 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2399:9:2399:11 | vec | T | main.rs:2353:5:2354:13 | S | -| main.rs:2399:9:2399:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2399:18:2399:18 | S | | main.rs:2353:5:2354:13 | S | -| main.rs:2400:9:2400:11 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | T | main.rs:2353:5:2354:13 | S | -| main.rs:2400:9:2400:14 | vec[0] | | main.rs:2353:5:2354:13 | S | -| main.rs:2400:9:2400:20 | ... .foo() | | main.rs:2353:5:2354:13 | S | -| main.rs:2400:13:2400:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2402:13:2402:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2402:13:2402:14 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2402:21:2402:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2402:26:2402:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2402:26:2402:28 | [...] | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2402:27:2402:27 | S | | main.rs:2353:5:2354:13 | S | -| main.rs:2403:13:2403:13 | x | | main.rs:2353:5:2354:13 | S | -| main.rs:2403:17:2403:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:17:2403:18 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2403:17:2403:21 | xs[0] | | main.rs:2353:5:2354:13 | S | -| main.rs:2403:17:2403:27 | ... .foo() | | main.rs:2353:5:2354:13 | S | -| main.rs:2403:20:2403:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2405:29:2405:31 | vec | | main.rs:2362:5:2365:5 | MyVec | -| main.rs:2405:29:2405:31 | vec | T | main.rs:2353:5:2354:13 | S | -| main.rs:2405:34:2405:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2407:9:2407:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2407:23:2407:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2407:23:2407:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2407:23:2407:25 | &xs | TRef.TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2407:24:2407:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2407:24:2407:25 | xs | TArray | main.rs:2353:5:2354:13 | S | -| main.rs:2412:16:2414:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2413:13:2413:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2413:17:2413:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2413:25:2413:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2413:25:2413:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2413:25:2413:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2413:25:2413:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2413:25:2413:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2413:38:2413:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2413:38:2413:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2422:19:2422:22 | SelfParam | | main.rs:2418:5:2423:5 | Self [trait MyAdd] | -| main.rs:2422:25:2422:27 | rhs | | main.rs:2418:17:2418:26 | Rhs | -| main.rs:2429:19:2429:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:25:2429:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:45:2431:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:13:2430:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:19:2438:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:25:2438:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2438:25:2438:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:46:2440:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:13:2439:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:14:2439:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:14:2439:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2447:19:2447:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2447:25:2447:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2447:46:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:13:2452:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2448:13:2452:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:16:2448:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2448:22:2450:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2448:22:2450:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:17:2449:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2449:17:2449:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2450:20:2452:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2450:20:2452:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2451:17:2451:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2451:17:2451:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2462:19:2462:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2462:19:2462:22 | SelfParam | T | main.rs:2458:10:2458:17 | T | -| main.rs:2462:25:2462:29 | other | | main.rs:2456:5:2456:19 | S | -| main.rs:2462:25:2462:29 | other | T | main.rs:2458:10:2458:17 | T | -| main.rs:2462:54:2464:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:13:2463:39 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:15:2463:22 | (...) | | main.rs:2458:10:2458:17 | T | -| main.rs:2463:16:2463:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:16:2463:19 | self | T | main.rs:2458:10:2458:17 | T | -| main.rs:2463:16:2463:21 | self.0 | | main.rs:2458:10:2458:17 | T | -| main.rs:2463:31:2463:35 | other | | main.rs:2456:5:2456:19 | S | -| main.rs:2463:31:2463:35 | other | T | main.rs:2458:10:2458:17 | T | -| main.rs:2463:31:2463:37 | other.0 | | main.rs:2458:10:2458:17 | T | -| main.rs:2471:19:2471:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2471:19:2471:22 | SelfParam | T | main.rs:2467:10:2467:17 | T | -| main.rs:2471:25:2471:29 | other | | main.rs:2467:10:2467:17 | T | -| main.rs:2471:51:2473:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2472:13:2472:37 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2472:15:2472:22 | (...) | | main.rs:2467:10:2467:17 | T | -| main.rs:2472:16:2472:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2472:16:2472:19 | self | T | main.rs:2467:10:2467:17 | T | -| main.rs:2472:16:2472:21 | self.0 | | main.rs:2467:10:2467:17 | T | -| main.rs:2472:31:2472:35 | other | | main.rs:2467:10:2467:17 | T | -| main.rs:2483:19:2483:22 | SelfParam | | main.rs:2456:5:2456:19 | S | -| main.rs:2483:19:2483:22 | SelfParam | T | main.rs:2476:14:2476:14 | T | -| main.rs:2483:25:2483:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2483:25:2483:29 | other | TRef | main.rs:2476:14:2476:14 | T | -| main.rs:2483:55:2485:9 | { ... } | | main.rs:2456:5:2456:19 | S | -| main.rs:2484:13:2484:37 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2484:15:2484:22 | (...) | | main.rs:2476:14:2476:14 | T | -| main.rs:2484:16:2484:19 | self | | main.rs:2456:5:2456:19 | S | -| main.rs:2484:16:2484:19 | self | T | main.rs:2476:14:2476:14 | T | -| main.rs:2484:16:2484:21 | self.0 | | main.rs:2476:14:2476:14 | T | -| main.rs:2484:31:2484:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:31:2484:35 | other | TRef | main.rs:2476:14:2476:14 | T | -| main.rs:2490:20:2490:24 | value | | main.rs:2488:18:2488:18 | T | -| main.rs:2495:20:2495:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2495:40:2497:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:13:2496:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2502:20:2502:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2502:41:2508:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:13:2507:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:13:2507:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:16:2503:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2503:22:2505:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:22:2505:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:17:2504:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:17:2504:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2505:20:2507:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:20:2507:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2506:17:2506:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:17:2506:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2513:21:2513:25 | value | | main.rs:2511:19:2511:19 | T | -| main.rs:2513:31:2513:31 | x | | main.rs:2511:5:2514:5 | Self [trait MyFrom2] | -| main.rs:2518:21:2518:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:33:2518:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:48:2520:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2519:13:2519:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2525:21:2525:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2525:34:2525:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2525:49:2531:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2526:13:2530:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2526:16:2526:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2526:22:2528:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2527:17:2527:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2528:20:2530:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:17:2529:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2536:15:2536:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | -| main.rs:2539:15:2539:15 | x | | main.rs:2534:5:2540:5 | Self [trait MySelfTrait] | -| main.rs:2544:15:2544:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2544:31:2546:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:13:2545:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:13:2545:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:17:2545:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:15:2549:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2549:32:2551:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:13:2550:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:13:2550:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:17:2550:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2556:15:2556:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2556:31:2558:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2557:13:2557:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2557:13:2557:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2561:15:2561:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2561:32:2563:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:13:2562:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2566:16:2591:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2567:13:2567:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2567:22:2567:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2567:22:2567:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:9:2568:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:9:2568:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:18:2568:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2569:18:2569:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:19:2569:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2572:9:2572:15 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2572:9:2572:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2572:9:2572:31 | ... .my_add(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2572:11:2572:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2572:24:2572:30 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2572:24:2572:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2572:26:2572:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:9:2573:15 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2573:9:2573:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:24:2573:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:9:2574:15 | S(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2574:9:2574:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:9:2574:29 | ... .my_add(...) | | main.rs:2456:5:2456:19 | S | -| main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2574:24:2574:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:25:2574:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:13:2576:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:17:2576:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:30:2576:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2578:13:2578:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:22:2578:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:38:2578:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:9:2579:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2579:23:2579:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:30:2579:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2580:29:2580:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:27:2581:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:34:2581:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:9:2583:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:17:2583:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:13:2064:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:23:2064:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:44:2064:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:13:2068:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:23:2068:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:34:2068:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:44:2068:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:13:2074:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:14:2074:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:14:2074:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:23:2074:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2074:43:2074:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:44:2074:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:45:2074:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:45:2074:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:55:2074:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:13:2078:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:22:2078:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:42:2078:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:13:2082:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:23:2082:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:44:2082:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:13:2086:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:22:2086:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:42:2086:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:13:2090:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:23:2090:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:44:2090:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2102:13:2102:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:22:2102:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2102:23:2102:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:13:2103:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:22:2103:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:23:2103:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:13:2104:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:22:2104:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:23:2104:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:13:2105:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:22:2105:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:23:2105:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:13:2106:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:22:2106:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:23:2106:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:13:2107:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:22:2107:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:23:2107:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:13:2110:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:13:2111:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:13:2112:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:13:2113:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:13:2114:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:31 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:31 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:31 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:31 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:31 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:13:2134:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:13:2135:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:13:2136:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:13:2137:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:13:2138:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:34 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:13:2156:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:23:2156:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:13:2157:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:23:2157:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:28:2160:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2160:34:2160:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:28:2161:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2161:34:2161:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2164:13:2164:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:23:2164:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:13:2165:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:23:2165:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:13:2166:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:23:2166:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:13:2167:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:23:2167:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:13:2168:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:23:2168:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:13:2169:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:23:2169:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:13:2172:20 | vec2_add | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:30 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:13:2173:20 | vec2_sub | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:30 | ... - ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:13:2174:20 | vec2_mul | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:30 | ... * ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:13:2175:20 | vec2_div | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:30 | ... / ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:13:2176:20 | vec2_rem | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:30 | ... % ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:29 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:29 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:29 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:29 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:29 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:13:2195:23 | vec2_bitand | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:33 | ... & ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:13:2196:22 | vec2_bitor | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:32 | ... \| ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:13:2197:23 | vec2_bitxor | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:33 | ... ^ ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:13:2198:20 | vec2_shl | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:33 | ... << ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:13:2199:20 | vec2_shr | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:24:2199:33 | ... >> ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:32 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2218:13:2218:20 | vec2_neg | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2218:24:2218:26 | - ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:13:2219:20 | vec2_not | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:24:2219:26 | ! ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2222:13:2222:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2222:28:2222:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:13:2223:26 | vec2_zero_plus | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:63 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:40:2223:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2223:46:2223:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2223:52:2223:63 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2227:13:2227:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2227:28:2227:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:13:2228:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:30:2228:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2228:40:2228:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2228:46:2228:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2228:53:2228:64 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2242:9:2242:10 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2245:41:2247:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2245:41:2247:5 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2246:9:2246:20 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:17:2246:18 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2249:41:2251:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2249:41:2251:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRef | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | & | +| main.rs:2260:13:2260:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2262:13:2262:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2262:13:2262:38 | ...::Ready(...) | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2262:36:2262:37 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2266:41:2268:5 | { ... } | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2267:9:2267:10 | S2 | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2271:9:2271:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2271:9:2271:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | +| main.rs:2272:9:2272:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2272:9:2272:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | +| main.rs:2273:9:2273:18 | await ... | | {EXTERNAL LOCATION} | () | +| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | +| main.rs:2274:9:2274:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2274:9:2274:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2275:9:2275:10 | S2 | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2275:9:2275:16 | await S2 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2275:9:2275:20 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:13:2276:13 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:17:2276:28 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2276:25:2276:26 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2277:9:2277:9 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:15 | await b | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:19 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | +| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | +| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2303:37:2305:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2304:9:2304:10 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | +| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2313:13:2313:14 | S2 | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | +| main.rs:2319:17:2319:21 | S3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2319:17:2319:21 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:17:2319:21 | S3(...) | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:17:2319:21 | S3(...) | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2320:13:2320:21 | t.clone() | | main.rs:2317:10:2317:17 | T | +| main.rs:2324:45:2326:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2325:9:2325:10 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | +| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2329:9:2329:17 | t.get_a() | | main.rs:2328:23:2328:23 | A | +| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2333:9:2333:13 | S3(...) | T3 | main.rs:2332:24:2332:31 | T | +| main.rs:2333:9:2333:13 | S3(...) | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:9:2337:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2285:5:2285:22 | S3 | +| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2337:9:2337:19 | Some(...) | T.T3 | main.rs:2336:24:2336:31 | T | +| main.rs:2337:9:2337:19 | Some(...) | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:14:2337:18 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2337:14:2337:18 | S3(...) | T3 | main.rs:2336:24:2336:31 | T | +| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2341:9:2341:30 | TupleExpr | T0.T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2341:9:2341:30 | TupleExpr | T1.T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2341:10:2341:22 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:10:2341:22 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:13:2341:21 | x.clone() | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2341:25:2341:29 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:25:2341:29 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | +| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2345:9:2345:17 | t.get_a() | | main.rs:2344:23:2344:23 | A | +| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:14 | x.f1() | | {EXTERNAL LOCATION} | () | +| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2351:9:2351:14 | x.f2() | | {EXTERNAL LOCATION} | () | +| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2353:13:2353:13 | b | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2353:17:2353:33 | uses_my_trait1(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2355:13:2355:13 | c | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2355:17:2355:33 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2356:13:2356:13 | d | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2356:17:2356:34 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2356:32:2356:33 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:13:2357:13 | e | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:17:2357:43 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:33:2357:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:13:2360:13 | f | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:44 | ... .unwrap() | | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2360:17:2360:44 | ... .unwrap() | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:52 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:33:2360:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:13:2361:13 | g | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:37 | ... .0 | | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:37 | ... .0 | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:45 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:33:2361:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | +| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | +| main.rs:2373:13:2373:13 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2384:13:2384:38 | MyVec {...} | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2384:27:2384:36 | ...::new(...) | T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2387:17:2387:25 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2388:13:2388:16 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2388:13:2388:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2388:13:2388:21 | self.data | T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2397:13:2397:29 | &... | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2397:14:2397:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2397:14:2397:22 | self.data | T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:29 | ...[index] | | main.rs:2392:10:2392:10 | T | +| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:13 | x | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:24 | slice[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:30 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:23:2402:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:17:2413:19 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:23:2413:34 | ...::new(...) | T | main.rs:2368:5:2369:13 | S | +| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2414:9:2414:11 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2414:9:2414:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2414:18:2414:18 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2415:9:2415:11 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:14 | vec[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:20 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:13:2415:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:21:2417:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:26:2417:28 | [...] | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:27:2417:27 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:13:2418:13 | x | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:21 | xs[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:27 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:20:2418:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2420:29:2420:31 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2420:34:2420:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2422:23:2422:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:23:2422:25 | &xs | TRef.TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2428:13:2428:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2428:17:2428:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | +| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | +| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:13:2454:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:13:2478:39 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:15:2478:22 | (...) | | main.rs:2473:10:2473:17 | T | +| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:16:2478:21 | self.0 | | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:37 | other.0 | | main.rs:2473:10:2473:17 | T | +| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | +| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:13:2487:37 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:15:2487:22 | (...) | | main.rs:2482:10:2482:17 | T | +| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | +| main.rs:2487:16:2487:21 | self.0 | | main.rs:2482:10:2482:17 | T | +| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | +| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:13:2499:37 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:15:2499:22 | (...) | | main.rs:2491:14:2491:14 | T | +| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | +| main.rs:2499:16:2499:21 | self.0 | | main.rs:2491:14:2491:14 | T | +| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | +| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | +| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | +| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2541:13:2545:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2541:22:2543:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2542:17:2542:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:20:2545:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2544:17:2544:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:17:2560:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:17:2565:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2584:18:2584:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2586:9:2586:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:25:2587:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:9:2588:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2590:9:2590:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2598:26:2600:9 | { ... } | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2599:13:2599:25 | MyCallable {...} | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2602:17:2602:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2602:17:2602:21 | SelfParam | TRef | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2602:31:2604:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2603:13:2603:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2603:13:2603:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2607:16:2714:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2610:9:2610:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2610:13:2610:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2610:18:2610:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2610:18:2610:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2610:19:2610:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2610:22:2610:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2610:25:2610:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2610:28:2610:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:18:2611:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:18:2611:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:19:2611:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:22:2611:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:25:2611:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:32:2611:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2611:32:2611:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:2611:40:2611:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:43:2611:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:13:2612:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:18:2612:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:18:2612:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2612:18:2612:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:19:2612:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:22:2612:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:25:2612:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:40:2612:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2614:13:2614:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2614:13:2614:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:13:2614:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2614:21:2614:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2614:21:2614:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:21:2614:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2614:22:2614:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2614:27:2614:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:27:2614:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2614:30:2614:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:30:2614:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:9:2615:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:13:2615:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:13:2615:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:18:2615:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:18:2615:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:18:2615:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:24:2615:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2617:13:2617:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2617:13:2617:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2617:21:2617:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2617:21:2617:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2617:22:2617:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2617:28:2617:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2618:9:2618:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:13:2618:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:18:2618:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:18:2618:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:24:2618:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2620:13:2620:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2620:13:2620:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2620:26:2620:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2620:31:2620:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2620:31:2620:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2620:31:2620:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2620:32:2620:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2620:32:2620:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2620:35:2620:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2620:35:2620:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2620:38:2620:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2620:38:2620:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:9:2621:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:13:2621:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:18:2621:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:18:2621:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:24:2621:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2623:13:2623:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2623:13:2623:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2623:26:2623:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2623:31:2623:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2623:31:2623:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2623:31:2623:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2623:32:2623:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2623:32:2623:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2623:35:2623:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:9:2624:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:13:2624:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:18:2624:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:18:2624:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:24:2624:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:17:2626:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:17:2626:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2626:17:2626:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:28:2626:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:28:2626:48 | [...] | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2626:28:2626:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:29:2626:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:29:2626:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:36:2626:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:36:2626:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2626:43:2626:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2626:43:2626:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:9:2627:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:13:2627:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2627:13:2627:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2627:13:2627:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:18:2627:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2627:18:2627:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:18:2627:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:18:2627:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:19:2627:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:19:2627:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:19:2627:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:28:2627:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:9:2628:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:13:2628:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2628:13:2628:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2628:13:2628:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:18:2628:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:18:2628:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:23:2628:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:23:2628:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:23:2628:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:32:2628:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:13:2629:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2629:13:2629:13 | s | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:18:2629:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:18:2629:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2629:18:2629:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:27:2629:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2631:13:2631:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2631:13:2631:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2632:9:2636:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:9:2636:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2633:13:2633:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2633:26:2633:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2633:26:2633:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2637:9:2637:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2637:13:2637:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2637:18:2637:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2637:18:2637:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2637:27:2637:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2639:13:2639:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2639:13:2639:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2639:13:2639:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2640:9:2644:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2640:9:2644:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2640:9:2644:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2640:10:2644:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2640:10:2644:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2641:13:2641:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2641:26:2641:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:26:2641:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2645:9:2645:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2645:13:2645:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2645:13:2645:13 | s | TRef | {EXTERNAL LOCATION} | String | -| main.rs:2645:18:2645:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2645:18:2645:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2645:18:2645:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2645:27:2645:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2647:13:2647:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:13:2647:21 | callables | TArray | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:25:2647:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:25:2647:81 | [...] | TArray | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:26:2647:42 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:45:2647:61 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2647:64:2647:80 | ...::new(...) | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2648:9:2652:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2648:13:2648:13 | c | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2649:12:2649:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2649:12:2649:20 | callables | TArray | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2650:9:2652:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2651:17:2651:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2651:26:2651:26 | c | | main.rs:2595:5:2595:24 | MyCallable | -| main.rs:2651:26:2651:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2656:9:2656:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2656:13:2656:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2656:18:2656:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2656:18:2656:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2656:18:2656:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2656:21:2656:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2656:24:2656:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:9:2657:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:13:2657:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:13:2657:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:13:2657:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:18:2657:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2657:18:2657:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | -| main.rs:2657:18:2657:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:18:2657:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:19:2657:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:19:2657:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:19:2657:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:19:2657:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:24:2657:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:24:2657:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2657:28:2657:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:13:2658:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:13:2658:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:21:2658:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:21:2658:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:21:2658:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:24:2658:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:9:2659:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:13:2659:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:18:2659:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:18:2659:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:24:2659:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:13:2660:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2660:26:2660:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:9:2661:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:18:2661:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2661:19:2661:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2661:19:2661:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:20:2661:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:26:2661:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:32:2661:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2661:38:2661:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:50:2661:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2663:13:2663:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2663:13:2663:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2664:9:2667:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2664:9:2667:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2665:20:2665:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2666:18:2666:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2668:9:2668:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2668:13:2668:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2668:18:2668:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2668:18:2668:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2668:25:2668:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2672:13:2672:17 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2672:21:2672:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2672:26:2672:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:29:2672:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:32:2672:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:9:2673:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:18:2673:22 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2673:24:2673:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2675:13:2675:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2675:13:2675:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2675:13:2675:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2675:32:2675:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2675:32:2675:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2675:32:2675:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2675:32:2675:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2675:32:2675:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2675:32:2675:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2675:33:2675:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2675:39:2675:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2675:42:2675:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:9:2676:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:13:2676:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:18:2676:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:18:2676:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:18:2676:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:25:2676:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2678:22:2678:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2678:22:2678:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2678:22:2678:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2678:23:2678:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2678:29:2678:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2678:32:2678:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:9:2679:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:25:2679:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2681:13:2681:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2681:13:2681:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2681:13:2681:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2681:13:2681:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2681:21:2681:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2681:21:2681:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2681:21:2681:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2681:21:2681:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2681:31:2681:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2681:31:2681:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2681:31:2681:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2681:32:2681:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2681:38:2681:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2681:41:2681:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:9:2682:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:13:2682:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:13:2682:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:18:2682:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:18:2682:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2682:18:2682:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:18:2682:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:24:2682:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2684:13:2684:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2684:13:2684:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2684:13:2684:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2684:13:2684:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2684:32:2684:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2684:32:2684:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2684:32:2684:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2684:32:2684:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2684:32:2684:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2684:32:2684:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | -| main.rs:2684:32:2684:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2684:33:2684:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2684:39:2684:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2684:42:2684:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2685:9:2685:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:13:2685:13 | u | | {EXTERNAL LOCATION} | & | -| main.rs:2685:13:2685:13 | u | TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:18:2685:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:18:2685:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:18:2685:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:18:2685:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:24:2685:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2687:17:2687:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:17:2687:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:17:2687:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2687:25:2687:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:25:2687:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:25:2687:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2688:9:2688:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:9:2688:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:9:2688:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2688:9:2688:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2688:20:2688:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2689:13:2689:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:18:2689:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:18:2689:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:18:2689:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:24:2689:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2691:13:2691:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:23:2691:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:28:2691:37 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:28:2691:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:33:2691:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2691:36:2691:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2691:40:2691:49 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:40:2691:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:45:2691:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2691:48:2691:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2693:13:2693:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2693:17:2696:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2693:28:2693:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2693:36:2696:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:13:2695:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:29:2695:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2698:17:2698:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2698:17:2698:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2698:17:2698:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2698:17:2698:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2698:17:2698:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2698:17:2698:20 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2698:17:2698:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2698:24:2698:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2698:24:2698:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2698:24:2698:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2698:24:2698:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2698:24:2698:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2698:24:2698:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2698:24:2698:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:9:2699:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:9:2699:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:9:2699:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:9:2699:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2699:9:2699:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:9:2699:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:9:2699:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:9:2699:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2699:9:2699:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2699:9:2699:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:9:2699:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:9:2699:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:21:2699:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:24:2699:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2699:24:2699:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:24:2699:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2699:24:2699:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:33:2699:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2699:33:2699:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2700:9:2700:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2700:9:2700:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2700:9:2700:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:9:2700:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2700:9:2700:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:9:2700:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2700:9:2700:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:21:2700:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:24:2700:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2700:24:2700:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:33:2700:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2701:13:2701:15 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2701:13:2701:15 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:20:2701:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:20:2701:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:20:2701:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:20:2701:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2701:20:2701:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:20:2701:23 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:20:2701:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:20:2701:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2701:20:2701:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:20:2701:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2701:20:2701:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:20:2701:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:20:2701:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:32:2701:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:9:2702:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:13:2702:17 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2702:13:2702:17 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2702:13:2702:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:13:2702:17 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:13:2702:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:22:2702:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:22:2702:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:22:2702:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:22:2702:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:22:2702:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:22:2702:25 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:22:2702:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:22:2702:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2702:22:2702:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:22:2702:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:22:2702:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:22:2702:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:22:2702:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:36:2702:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:13:2703:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2703:13:2703:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:13:2703:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:14:2703:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2703:14:2703:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:19:2703:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2703:19:2703:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2703:19:2703:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:19:2703:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:19:2703:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:29:2703:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:29:2703:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:29:2703:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:29:2703:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:29:2703:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:29:2703:32 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:29:2703:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:29:2703:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2703:29:2703:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:29:2703:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:29:2703:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:29:2703:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:29:2703:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:41:2703:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2704:13:2704:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:13:2704:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:14:2704:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2704:14:2704:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:19:2704:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2704:19:2704:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2704:19:2704:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:19:2704:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:19:2704:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:29:2704:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:29:2704:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:29:2704:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:29:2704:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:29:2704:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:29:2704:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:30:2704:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:30:2704:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:30:2704:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:30:2704:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:30:2704:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:30:2704:33 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:30:2704:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:35:2704:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2708:17:2708:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2708:26:2708:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2708:26:2708:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2710:13:2710:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2710:17:2713:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2710:23:2710:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2710:23:2710:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2710:27:2710:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2711:9:2713:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2712:13:2712:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2712:13:2712:18 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2712:18:2712:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2724:40:2726:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2724:40:2726:9 | { ... } | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2724:40:2726:9 | { ... } | T.T | main.rs:2723:10:2723:19 | T | -| main.rs:2725:13:2725:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2725:13:2725:16 | None | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2725:13:2725:16 | None | T.T | main.rs:2723:10:2723:19 | T | -| main.rs:2728:30:2730:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2728:30:2730:9 | { ... } | T | main.rs:2723:10:2723:19 | T | -| main.rs:2729:13:2729:28 | S1(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2729:13:2729:28 | S1(...) | T | main.rs:2723:10:2723:19 | T | -| main.rs:2729:16:2729:27 | ...::default(...) | | main.rs:2723:10:2723:19 | T | -| main.rs:2732:19:2732:22 | SelfParam | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2732:19:2732:22 | SelfParam | T | main.rs:2723:10:2723:19 | T | -| main.rs:2732:33:2734:9 | { ... } | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2732:33:2734:9 | { ... } | T | main.rs:2723:10:2723:19 | T | -| main.rs:2733:13:2733:16 | self | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2733:13:2733:16 | self | T | main.rs:2723:10:2723:19 | T | -| main.rs:2745:15:2745:15 | x | | main.rs:2745:12:2745:12 | T | -| main.rs:2745:26:2747:5 | { ... } | | main.rs:2745:12:2745:12 | T | -| main.rs:2746:9:2746:9 | x | | main.rs:2745:12:2745:12 | T | -| main.rs:2749:16:2771:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2750:13:2750:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2750:13:2750:14 | x1 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2750:13:2750:14 | x1 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2750:34:2750:48 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2751:13:2751:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x2 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2751:13:2751:14 | x2 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2751:18:2751:38 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2752:13:2752:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x3 | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2752:13:2752:14 | x3 | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T | main.rs:2718:5:2718:20 | S1 | -| main.rs:2752:18:2752:32 | ...::assoc_fun(...) | T.T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:13:2753:14 | x4 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2753:13:2753:14 | x4 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:18:2753:48 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2753:18:2753:48 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2753:35:2753:47 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2753:35:2753:47 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2754:13:2754:14 | x5 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:13:2754:14 | x5 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2754:18:2754:42 | ...::method(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:18:2754:42 | ...::method(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2754:29:2754:41 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2754:29:2754:41 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2755:13:2755:14 | x6 | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2755:13:2755:14 | x6 | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2755:18:2755:45 | S4::<...>(...) | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2755:18:2755:45 | S4::<...>(...) | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2755:27:2755:44 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2756:13:2756:14 | x7 | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2756:13:2756:14 | x7 | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2756:18:2756:23 | S4(...) | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2756:18:2756:23 | S4(...) | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2756:21:2756:22 | S2 | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2757:13:2757:14 | x8 | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2757:13:2757:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2757:18:2757:22 | S4(...) | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2757:18:2757:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2757:21:2757:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:13:2758:14 | x9 | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2758:13:2758:14 | x9 | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2758:18:2758:34 | S4(...) | | main.rs:2739:5:2739:27 | S4 | -| main.rs:2758:18:2758:34 | S4(...) | T4 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2758:21:2758:33 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2759:13:2759:15 | x10 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2759:13:2759:15 | x10 | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2759:19:2762:9 | S5::<...> {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2759:19:2762:9 | S5::<...> {...} | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2761:20:2761:37 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2763:13:2763:15 | x11 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2763:13:2763:15 | x11 | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2763:19:2763:34 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2763:19:2763:34 | S5 {...} | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2763:31:2763:32 | S2 | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2764:13:2764:15 | x12 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2764:13:2764:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2764:19:2764:33 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2764:19:2764:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2764:31:2764:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:13:2765:15 | x13 | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2765:13:2765:15 | x13 | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2765:19:2768:9 | S5 {...} | | main.rs:2741:5:2743:5 | S5 | -| main.rs:2765:19:2768:9 | S5 {...} | T5 | main.rs:2720:5:2721:14 | S2 | -| main.rs:2767:20:2767:32 | ...::default(...) | | main.rs:2720:5:2721:14 | S2 | -| main.rs:2769:13:2769:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2769:19:2769:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2769:30:2769:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:13:2770:15 | x15 | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2770:13:2770:15 | x15 | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2770:19:2770:37 | ...::default(...) | | main.rs:2718:5:2718:20 | S1 | -| main.rs:2770:19:2770:37 | ...::default(...) | T | main.rs:2720:5:2721:14 | S2 | -| main.rs:2779:35:2781:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2779:35:2781:9 | { ... } | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2779:35:2781:9 | { ... } | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:13:2780:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:13:2780:26 | TupleExpr | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:13:2780:26 | TupleExpr | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:14:2780:18 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2780:21:2780:25 | S1 {...} | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2782:16:2782:19 | SelfParam | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2782:22:2782:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2785:16:2819:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:13:2786:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2786:13:2786:13 | a | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:13:2786:13 | a | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2786:17:2786:30 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:17:2787:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:17 | b | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:17:2787:17 | b | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2787:21:2787:34 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:13:2788:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:13:2788:18 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:13:2788:18 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:14:2788:14 | c | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:17:2788:17 | d | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2788:22:2788:35 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:13:2789:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:13:2789:22 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:13:2789:22 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:18:2789:18 | e | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:21:2789:21 | f | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2789:26:2789:39 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:13:2790:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:13:2790:26 | TuplePat | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:13:2790:26 | TuplePat | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:18:2790:18 | g | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:25:2790:25 | h | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2790:30:2790:43 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2792:9:2792:9 | a | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:9 | a | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:11 | a.0 | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2792:9:2792:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2793:9:2793:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | b | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2793:9:2793:9 | b | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2793:9:2793:11 | b.1 | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2793:9:2793:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2794:9:2794:9 | c | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2794:9:2794:15 | c.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2795:9:2795:9 | d | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2795:9:2795:15 | d.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2796:9:2796:9 | e | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2796:9:2796:15 | e.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2797:9:2797:9 | f | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2797:9:2797:15 | f.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2798:9:2798:9 | g | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2798:9:2798:15 | g.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2799:9:2799:9 | h | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2799:9:2799:15 | h.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2804:13:2804:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2804:17:2804:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2805:13:2805:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2805:17:2805:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2806:13:2806:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2806:13:2806:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2806:13:2806:16 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2806:20:2806:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2806:20:2806:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2806:20:2806:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2806:21:2806:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2806:24:2806:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2807:13:2807:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:22:2807:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:22:2807:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:22:2807:25 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2807:22:2807:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:13:2808:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2808:23:2808:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:23:2808:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:23:2808:26 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2808:23:2808:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2810:13:2810:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2810:13:2810:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:13:2810:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:20:2810:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2810:20:2810:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:20:2810:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2810:20:2810:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:20:2810:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:21:2810:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2810:24:2810:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:9:2814:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2811:15:2811:18 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:15:2811:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:15:2811:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:13:2812:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2812:13:2812:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:13:2812:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:14:2812:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:17:2812:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:23:2812:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2812:30:2812:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2812:30:2812:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2812:30:2812:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2812:30:2812:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2813:13:2813:13 | _ | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2813:13:2813:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:13:2813:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:18:2813:35 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2813:25:2813:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:25:2813:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:25:2813:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:25:2813:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2815:13:2815:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2815:17:2815:20 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2815:17:2815:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2815:17:2815:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2815:17:2815:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2817:13:2817:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2817:13:2817:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2817:13:2817:13 | y | TRef.T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:13:2817:13 | y | TRef.T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:17:2817:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2817:17:2817:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2817:17:2817:31 | &... | TRef.T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:17:2817:31 | &... | TRef.T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2817:18:2817:31 | ...::get_pair(...) | T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2818:9:2818:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2818:9:2818:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:9:2818:9 | y | TRef.T0 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2818:9:2818:9 | y | TRef.T1 | main.rs:2775:5:2776:16 | S1 | -| main.rs:2818:9:2818:11 | y.0 | | main.rs:2775:5:2776:16 | S1 | -| main.rs:2818:9:2818:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2824:27:2846:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2825:13:2825:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2825:13:2825:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2825:13:2825:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:27:2825:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2825:27:2825:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2825:27:2825:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:36:2825:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2828:9:2836:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2828:15:2828:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2828:15:2828:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2828:15:2828:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:13:2829:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2829:13:2829:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2829:13:2829:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:17:2829:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:24:2831:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2830:26:2830:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2830:26:2830:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2830:26:2830:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2830:26:2830:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2832:13:2832:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2832:13:2832:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2832:13:2832:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2832:22:2835:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2834:26:2834:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2834:26:2834:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2834:26:2834:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2839:13:2839:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:13:2839:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:13:2839:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2839:13:2839:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:13:2839:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2839:26:2839:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:26:2839:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:26:2839:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2839:26:2839:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:26:2839:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2839:35:2839:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2839:35:2839:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2839:35:2839:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2839:44:2839:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:9:2845:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:15:2840:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:15:2840:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:15:2840:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2840:15:2840:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:15:2840:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:13:2841:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2841:13:2841:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:13:2841:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2841:13:2841:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:13:2841:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:26:2844:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2843:26:2843:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2843:26:2843:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2843:26:2843:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2855:36:2857:9 | { ... } | | main.rs:2852:5:2852:22 | Path | -| main.rs:2856:13:2856:19 | Path {...} | | main.rs:2852:5:2852:22 | Path | -| main.rs:2859:29:2859:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2859:29:2859:33 | SelfParam | TRef | main.rs:2852:5:2852:22 | Path | -| main.rs:2859:59:2861:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2859:59:2861:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2859:59:2861:9 | { ... } | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2860:13:2860:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2860:13:2860:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | -| main.rs:2860:13:2860:30 | Ok(...) | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2860:16:2860:29 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2867:39:2869:9 | { ... } | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2868:13:2868:22 | PathBuf {...} | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2877:18:2877:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2877:18:2877:22 | SelfParam | TRef | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2877:34:2881:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2877:34:2881:9 | { ... } | TRef | main.rs:2852:5:2852:22 | Path | -| main.rs:2879:33:2879:43 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | -| main.rs:2880:13:2880:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2880:13:2880:17 | &path | TRef | main.rs:2852:5:2852:22 | Path | -| main.rs:2880:14:2880:17 | path | | main.rs:2852:5:2852:22 | Path | -| main.rs:2884:16:2892:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2885:13:2885:17 | path1 | | main.rs:2852:5:2852:22 | Path | -| main.rs:2885:21:2885:31 | ...::new(...) | | main.rs:2852:5:2852:22 | Path | -| main.rs:2886:13:2886:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2886:13:2886:17 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2886:13:2886:17 | path2 | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2886:21:2886:25 | path1 | | main.rs:2852:5:2852:22 | Path | -| main.rs:2886:21:2886:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2886:21:2886:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2886:21:2886:40 | path1.canonicalize() | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2887:13:2887:17 | path3 | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2887:21:2887:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2887:21:2887:25 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2887:21:2887:25 | path2 | T | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2887:21:2887:34 | path2.unwrap() | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2889:13:2889:20 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2889:24:2889:37 | ...::new(...) | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2890:24:2890:31 | pathbuf1 | | main.rs:2864:5:2864:25 | PathBuf | -| main.rs:2897:14:2897:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2897:14:2897:18 | SelfParam | TRef | main.rs:2896:5:2898:5 | Self [trait MyTrait] | -| main.rs:2904:14:2904:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2904:14:2904:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2904:14:2904:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2904:28:2906:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:13:2905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2905:13:2905:16 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2905:13:2905:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:13:2905:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2910:14:2910:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2910:14:2910:18 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2910:14:2910:18 | SelfParam | TRef.T | main.rs:2900:5:2901:19 | S | -| main.rs:2910:14:2910:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2910:28:2912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:13:2911:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2911:13:2911:16 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2911:13:2911:16 | self | TRef.T | main.rs:2900:5:2901:19 | S | -| main.rs:2911:13:2911:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:13:2911:18 | self.0 | | main.rs:2900:5:2901:19 | S | -| main.rs:2911:13:2911:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:13:2911:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2916:15:2916:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2916:15:2916:19 | SelfParam | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2916:15:2916:19 | SelfParam | TRef.T | main.rs:2915:10:2915:16 | T | -| main.rs:2916:33:2918:9 | { ... } | | main.rs:2900:5:2901:19 | S | -| main.rs:2916:33:2918:9 | { ... } | T | main.rs:2900:5:2901:19 | S | -| main.rs:2916:33:2918:9 | { ... } | T.T | main.rs:2915:10:2915:16 | T | -| main.rs:2917:13:2917:24 | S(...) | | main.rs:2900:5:2901:19 | S | -| main.rs:2917:13:2917:24 | S(...) | T | main.rs:2900:5:2901:19 | S | -| main.rs:2917:13:2917:24 | S(...) | T.T | main.rs:2915:10:2915:16 | T | -| main.rs:2917:15:2917:23 | S(...) | | main.rs:2900:5:2901:19 | S | -| main.rs:2917:15:2917:23 | S(...) | T | main.rs:2915:10:2915:16 | T | -| main.rs:2917:17:2917:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2917:17:2917:20 | self | TRef | main.rs:2900:5:2901:19 | S | -| main.rs:2917:17:2917:20 | self | TRef.T | main.rs:2915:10:2915:16 | T | -| main.rs:2917:17:2917:22 | self.0 | | main.rs:2915:10:2915:16 | T | -| main.rs:2921:14:2921:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2921:48:2938:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2921:48:2938:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2921:48:2938:5 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2921:48:2938:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2922:13:2922:13 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2922:13:2922:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2922:17:2927:9 | if b {...} else {...} | | main.rs:2900:5:2901:19 | S | -| main.rs:2922:17:2927:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2922:20:2922:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2922:22:2925:9 | { ... } | | main.rs:2900:5:2901:19 | S | -| main.rs:2922:22:2925:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:17:2923:17 | y | | main.rs:2900:5:2901:19 | S | -| main.rs:2923:17:2923:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:21:2923:38 | ...::default(...) | | main.rs:2900:5:2901:19 | S | -| main.rs:2923:21:2923:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2924:13:2924:13 | y | | main.rs:2900:5:2901:19 | S | -| main.rs:2924:13:2924:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:16:2927:9 | { ... } | | main.rs:2900:5:2901:19 | S | -| main.rs:2925:16:2927:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:13:2926:16 | S(...) | | main.rs:2900:5:2901:19 | S | -| main.rs:2926:13:2926:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:15:2926:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2931:13:2931:13 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2931:13:2931:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2931:17:2931:20 | S(...) | | main.rs:2900:5:2901:19 | S | -| main.rs:2931:17:2931:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2931:19:2931:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:9:2937:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2932:9:2937:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T | main.rs:2900:5:2901:19 | S | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T | main.rs:2900:5:2901:19 | S | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:9:2937:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:12:2932:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2932:14:2935:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2932:14:2935:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2932:14:2935:9 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2932:14:2935:9 | { ... } | T | main.rs:2900:5:2901:19 | S | -| main.rs:2932:14:2935:9 | { ... } | T.T | main.rs:2900:5:2901:19 | S | -| main.rs:2932:14:2935:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:14:2935:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:17:2933:17 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2933:17:2933:17 | x | T | main.rs:2900:5:2901:19 | S | -| main.rs:2933:17:2933:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:21:2933:21 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2933:21:2933:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:21:2933:26 | x.m2() | | main.rs:2900:5:2901:19 | S | -| main.rs:2933:21:2933:26 | x.m2() | T | main.rs:2900:5:2901:19 | S | -| main.rs:2933:21:2933:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:13:2934:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2934:13:2934:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2934:13:2934:23 | ...::new(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2934:13:2934:23 | ...::new(...) | T | main.rs:2900:5:2901:19 | S | -| main.rs:2934:13:2934:23 | ...::new(...) | T.T | main.rs:2900:5:2901:19 | S | -| main.rs:2934:13:2934:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:13:2934:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:22:2934:22 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2934:22:2934:22 | x | T | main.rs:2900:5:2901:19 | S | -| main.rs:2934:22:2934:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:16:2937:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2935:16:2937:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2935:16:2937:9 | { ... } | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2935:16:2937:9 | { ... } | T | main.rs:2900:5:2901:19 | S | -| main.rs:2935:16:2937:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:16:2937:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:13:2936:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:13:2936:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:13:2936:23 | ...::new(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:2936:13:2936:23 | ...::new(...) | T | main.rs:2900:5:2901:19 | S | -| main.rs:2936:13:2936:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:13:2936:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:22:2936:22 | x | | main.rs:2900:5:2901:19 | S | -| main.rs:2936:22:2936:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2942:22:2946:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2943:18:2943:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2943:33:2945:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:13:2944:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:13:2944:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:17:2944:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2951:11:2951:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2951:30:2959:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2953:13:2953:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2953:17:2957:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2954:13:2956:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2954:16:2954:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2954:21:2956:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2955:24:2955:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2958:9:2958:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2962:20:2969:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2965:26:2965:27 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2967:18:2967:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2967:18:2967:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2967:18:2967:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2967:18:2967:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2968:9:2968:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2971:20:2973:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2972:16:2972:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2976:11:2976:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2976:30:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:13:2977:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2977:17:2981:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2978:13:2980:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2978:16:2978:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2978:21:2980:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2979:24:2979:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2982:18:2982:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2982:18:2982:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2587:9:2587:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:9:2587:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:9:2587:31 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:24:2587:30 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:24:2587:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:9:2588:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2588:9:2588:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2589:9:2589:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:29 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2589:24:2589:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:22:2593:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:9:2603:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:9:2605:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:13:2625:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2625:18:2625:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:19:2625:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:22:2625:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:25:2625:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:18:2626:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:18:2626:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:19:2626:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:22:2626:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:25:2626:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:32:2626:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2626:32:2626:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2626:40:2626:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:18:2627:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:18:2627:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2627:18:2627:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:19:2627:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:22:2627:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:25:2627:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:13:2632:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:21:2632:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:28:2632:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2633:13:2633:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2633:18:2633:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:26:2635:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2636:13:2636:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:26:2638:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:35:2638:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:13:2639:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:17:2641:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2641:17:2641:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:28:2641:48 | [...] | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2641:28:2641:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2642:13:2642:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2642:13:2642:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2642:13:2642:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2642:18:2642:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:19:2642:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2642:19:2642:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:13:2643:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2643:13:2643:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2643:13:2643:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2643:18:2643:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:18:2643:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2643:18:2643:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:23:2643:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2643:23:2643:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:13:2644:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2644:13:2644:13 | s | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2644:18:2644:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2644:18:2644:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2646:13:2646:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:9:2651:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2652:13:2652:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2652:18:2652:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2654:13:2654:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2654:13:2654:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2655:9:2659:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2655:9:2659:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2655:10:2659:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:13:2660:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2660:13:2660:13 | s | TRef | {EXTERNAL LOCATION} | String | +| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2660:18:2660:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2660:18:2660:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:13:2662:21 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:25:2662:81 | [...] | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2663:13:2663:13 | c | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2664:12:2664:20 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2666:17:2666:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2666:26:2666:26 | c | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2666:26:2666:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:13:2671:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:18:2671:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2671:18:2671:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:21:2671:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:13:2672:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2672:18:2672:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | +| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:13:2673:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:21:2673:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:21:2673:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:24:2673:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2674:13:2674:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2674:18:2674:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2676:19:2676:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2678:13:2678:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2679:9:2682:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2683:18:2683:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2687:13:2687:17 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:21:2687:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:26:2687:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:29:2687:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:32:2687:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:18:2688:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:32:2690:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:32:2690:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:39:2690:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2690:42:2690:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2691:13:2691:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2693:29:2693:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:32:2693:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:13:2696:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:21:2696:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:38:2696:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:41:2696:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2697:18:2697:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:32:2699:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:32:2699:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:32:2699:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:39:2699:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:42:2699:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:13:2700:13 | u | | {EXTERNAL LOCATION} | & | +| main.rs:2700:13:2700:13 | u | TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:17:2702:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:25:2702:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:9:2703:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2703:9:2703:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:13:2704:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:18:2704:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2706:13:2706:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:23:2706:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:28:2706:37 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:28:2706:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:33:2706:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:36:2706:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:40:2706:49 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:40:2706:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:45:2706:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:48:2706:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2708:13:2708:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:28:2708:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2708:36:2711:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:17:2713:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:17:2713:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2713:17:2713:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2713:17:2713:20 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2713:17:2713:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:24:2713:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:24:2713:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2713:24:2713:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2713:24:2713:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2713:24:2713:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2714:9:2714:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:9:2714:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2714:9:2714:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:9:2714:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2714:9:2714:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:9:2714:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2714:9:2714:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:21:2714:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:24:2714:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2714:24:2714:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2715:9:2715:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2715:9:2715:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2715:9:2715:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:9:2715:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2715:9:2715:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2715:9:2715:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:21:2715:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:24:2715:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2715:24:2715:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2716:13:2716:15 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2716:13:2716:15 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2716:20:2716:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2716:20:2716:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2716:20:2716:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2716:20:2716:23 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2716:20:2716:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:20:2716:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2716:20:2716:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2716:20:2716:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2716:20:2716:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2716:20:2716:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:13:2717:17 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2717:13:2717:17 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2717:13:2717:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:13:2717:17 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:13:2717:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2717:22:2717:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2717:22:2717:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2717:22:2717:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:22:2717:25 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:22:2717:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:22:2717:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2717:22:2717:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2717:22:2717:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2717:22:2717:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:22:2717:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:22:2717:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2718:13:2718:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:13:2718:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:14:2718:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2718:14:2718:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:19:2718:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2718:19:2718:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2718:19:2718:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:19:2718:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:19:2718:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2718:29:2718:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2718:29:2718:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2718:29:2718:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:29:2718:32 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:29:2718:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:29:2718:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2718:29:2718:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:29:2718:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2718:29:2718:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:29:2718:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:29:2718:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2719:13:2719:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:13:2719:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:14:2719:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2719:14:2719:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:19:2719:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2719:19:2719:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2719:19:2719:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:19:2719:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:19:2719:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2719:29:2719:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:29:2719:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:29:2719:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:29:2719:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:30:2719:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:30:2719:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2719:30:2719:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:30:2719:33 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:30:2719:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:13:2725:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:23:2725:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2725:27:2725:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2727:13:2727:18 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2727:18:2727:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2740:13:2740:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2740:13:2740:16 | None | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2740:13:2740:16 | None | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2744:13:2744:28 | S1(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2744:13:2744:28 | S1(...) | T | main.rs:2738:10:2738:19 | T | +| main.rs:2744:16:2744:27 | ...::default(...) | | main.rs:2738:10:2738:19 | T | +| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | +| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | +| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:35:2768:47 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:29:2769:41 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:13:2770:14 | x6 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2770:13:2770:14 | x6 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:18:2770:45 | S4::<...>(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2770:18:2770:45 | S4::<...>(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:27:2770:44 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:13:2771:14 | x7 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2771:13:2771:14 | x7 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:18:2771:23 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2771:18:2771:23 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:21:2771:22 | S2 | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2772:13:2772:14 | x8 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2772:13:2772:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:18:2772:22 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2772:18:2772:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:21:2772:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2773:13:2773:14 | x9 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2773:13:2773:14 | x9 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2773:18:2773:34 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2773:18:2773:34 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2776:20:2776:37 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:13:2778:15 | x11 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:19:2778:34 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:31:2778:32 | S2 | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:13:2779:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:19:2779:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:31:2779:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:13:2780:15 | x13 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:19:2783:9 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:30:2784:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2795:13:2795:26 | TupleExpr | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:13:2803:18 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:14:2803:14 | c | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:17:2803:17 | d | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:13:2804:22 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:18:2804:18 | e | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:21:2804:21 | f | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:13:2805:26 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:18:2805:18 | g | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:25:2805:25 | h | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:11 | a.0 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:11 | b.1 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2809:9:2809:9 | c | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2809:9:2809:15 | c.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2810:9:2810:9 | d | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2810:9:2810:15 | d.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2811:9:2811:9 | e | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2811:9:2811:15 | e.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2812:9:2812:9 | f | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2812:9:2812:15 | f.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2813:9:2813:9 | g | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2813:9:2813:15 | g.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2814:9:2814:9 | h | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2814:9:2814:15 | h.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2819:13:2819:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2819:17:2819:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2820:13:2820:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2820:17:2820:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:13:2821:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:13:2821:16 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:20:2821:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:20:2821:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2821:21:2821:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:24:2821:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2822:22:2822:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2822:22:2822:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2823:23:2823:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2823:23:2823:26 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2825:13:2825:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:13:2825:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:13:2825:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2825:20:2825:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:20:2825:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:21:2825:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:24:2825:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2826:9:2829:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2826:15:2826:18 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2826:15:2826:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2826:15:2826:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2827:13:2827:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:13:2827:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:14:2827:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:17:2827:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:23:2827:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2828:13:2828:13 | _ | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2828:13:2828:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:13:2828:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:18:2828:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2830:13:2830:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:20 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2830:17:2830:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2832:13:2832:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:13:2832:13 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:13:2832:13 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2832:17:2832:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:17:2832:31 | &... | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:17:2832:31 | &... | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2833:9:2833:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2833:9:2833:9 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:11 | y.0 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:13:2840:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:27:2840:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2843:9:2851:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2843:15:2843:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:13:2844:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2844:13:2844:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2844:13:2844:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:17:2844:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2847:13:2847:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2847:13:2847:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2847:13:2847:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:13:2854:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:13:2854:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:35:2854:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2855:9:2860:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2855:15:2855:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2855:15:2855:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2856:13:2856:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2856:13:2856:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:13:2856:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2856:13:2856:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:13:2856:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | +| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:13:2875:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2875:13:2875:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | +| main.rs:2875:13:2875:30 | Ok(...) | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2895:13:2895:17 | &path | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:14:2895:17 | path | | main.rs:2867:5:2867:22 | Path | +| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:13:2901:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2901:13:2901:17 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2901:13:2901:17 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:21:2901:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2901:21:2901:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2901:21:2901:40 | path1.canonicalize() | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:13:2902:17 | path3 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:21:2902:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2902:21:2902:25 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2902:21:2902:25 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:21:2902:34 | path2.unwrap() | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | +| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:18 | self.0 | | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:13:2932:24 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2932:13:2932:24 | S(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2932:13:2932:24 | S(...) | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:15:2932:23 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2932:15:2932:23 | S(...) | T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:22 | self.0 | | main.rs:2930:10:2930:16 | T | +| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:13:2937:13 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:13:2937:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:17:2942:9 | if b {...} else {...} | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:17:2942:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2937:22:2940:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:22:2940:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2938:17:2938:17 | y | | main.rs:2915:5:2916:19 | S | +| main.rs:2938:17:2938:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2938:21:2938:38 | ...::default(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2938:21:2938:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2939:13:2939:13 | y | | main.rs:2915:5:2916:19 | S | +| main.rs:2939:13:2939:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2940:16:2942:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2940:16:2942:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2941:13:2941:16 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2941:13:2941:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2941:15:2941:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:13:2946:13 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2946:13:2946:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:17:2946:20 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2946:17:2946:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:19:2946:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2947:9:2952:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2947:14:2950:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2947:14:2950:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:14:2950:9 | { ... } | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:14:2950:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:14:2950:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:17:2948:17 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:17:2948:17 | x | T | main.rs:2915:5:2916:19 | S | +| main.rs:2948:17:2948:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:21:2948:21 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:21:2948:26 | x.m2() | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:26 | x.m2() | T | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:13:2949:23 | ...::new(...) | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:13:2949:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:13:2949:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:22:2949:22 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2949:22:2949:22 | x | T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:22:2949:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2950:16:2952:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2950:16:2952:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2950:16:2952:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2950:16:2952:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2951:13:2951:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:13:2951:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:22:2951:22 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2951:22:2951:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:17:2959:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2968:13:2968:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2968:17:2972:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2970:24:2970:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2973:9:2973:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2980:26:2980:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2982:29:2982:29 | a | | {EXTERNAL LOCATION} | () | | main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2988:16:3035:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2989:13:2989:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2989:13:2989:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2989:17:2989:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2989:17:2989:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2990:13:2990:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:13:2990:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2990:30:2990:30 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:30:2990:30 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:13:2991:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:13:2991:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:17:2991:35 | ...::None | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:17:2991:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:13:2992:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2992:13:2992:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:17:2992:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | -| main.rs:2992:17:2992:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2994:26:2994:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2994:26:2994:28 | opt | T | main.rs:2994:23:2994:23 | T | -| main.rs:2994:42:2994:42 | x | | main.rs:2994:23:2994:23 | T | -| main.rs:2994:48:2994:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2996:13:2996:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2996:13:2996:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2996:17:2996:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2996:17:2996:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2997:9:2997:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2997:20:2997:20 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2997:20:2997:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2997:23:2997:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3004:13:3004:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3004:13:3004:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3004:13:3004:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3004:17:3004:39 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3004:17:3004:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3004:17:3004:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3004:37:3004:37 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3005:13:3005:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:40:3005:40 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3005:40:3005:40 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:40:3005:40 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:13:3006:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3006:13:3006:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:17:3006:52 | ...::A {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3006:17:3006:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:17:3006:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:50:3006:50 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3008:13:3008:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3008:13:3008:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3008:13:3008:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3008:17:3010:9 | ...::B::<...> {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3008:17:3010:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3009:20:3009:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3012:29:3012:29 | e | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3012:29:3012:29 | e | T1 | main.rs:3012:26:3012:26 | T | -| main.rs:3012:29:3012:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3012:53:3012:53 | x | | main.rs:3012:26:3012:26 | T | -| main.rs:3012:59:3012:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3015:13:3015:13 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3015:13:3015:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3015:13:3015:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3015:17:3017:9 | ...::B {...} | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3015:17:3017:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3015:17:3017:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3016:20:3016:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3018:9:3018:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3018:23:3018:23 | x | | main.rs:2999:9:3002:9 | MyEither | -| main.rs:3018:23:3018:23 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3018:23:3018:23 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3018:26:3018:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:13:3020:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3020:13:3020:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3020:13:3020:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:17:3020:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3020:17:3020:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3020:17:3020:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:28:3020:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:13:3021:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:13:3021:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:13:3021:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:38:3021:38 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:38:3021:38 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:38:3021:38 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:13:3022:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:13:3022:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:13:3022:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:17:3022:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:17:3022:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:17:3022:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:43:3022:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:13:3023:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3023:13:3023:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3023:13:3023:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3023:17:3023:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:43:3023:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3025:29:3025:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3025:29:3025:31 | res | E | main.rs:3025:26:3025:26 | E | -| main.rs:3025:29:3025:31 | res | T | main.rs:3025:23:3025:23 | T | -| main.rs:3025:48:3025:48 | x | | main.rs:3025:26:3025:26 | E | -| main.rs:3025:54:3025:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3027:13:3027:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3027:13:3027:13 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3027:13:3027:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3027:17:3027:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3027:17:3027:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | -| main.rs:3027:17:3027:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3027:28:3027:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:9:3028:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3028:20:3028:20 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3028:20:3028:20 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3028:20:3028:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:23:3028:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3030:17:3030:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3030:17:3030:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3030:17:3030:17 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3030:21:3030:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3030:21:3030:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3030:21:3030:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3031:9:3031:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:9:3031:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:9:3031:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3031:9:3031:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3031:16:3031:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3033:13:3033:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3033:17:3033:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:9:3034:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3034:9:3034:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3034:9:3034:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:9:3034:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3034:16:3034:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3041:14:3041:17 | SelfParam | | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:14:3044:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3044:14:3044:18 | SelfParam | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:21:3044:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3044:21:3044:25 | other | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3044:44:3046:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3044:44:3046:9 | { ... } | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3045:13:3045:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3045:13:3045:16 | self | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3045:13:3045:20 | self.f() | | {EXTERNAL LOCATION} | & | -| main.rs:3045:13:3045:20 | self.f() | TRef | main.rs:3039:5:3047:5 | Self [trait MyTrait] | -| main.rs:3051:14:3051:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3051:28:3053:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3052:13:3052:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3058:14:3058:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3058:28:3060:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3059:13:3059:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3065:14:3065:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3065:14:3065:17 | SelfParam | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3065:28:3067:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3065:28:3067:9 | { ... } | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3066:13:3066:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3066:13:3066:16 | self | TRef | main.rs:3063:10:3063:10 | T | -| main.rs:3070:25:3074:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3071:17:3071:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3071:17:3071:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3071:21:3071:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3071:21:3071:21 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3072:9:3072:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3072:9:3072:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3072:9:3072:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:3072:13:3072:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3072:13:3072:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3072:13:3072:17 | x.f() | | {EXTERNAL LOCATION} | i32 | -| main.rs:3072:13:3072:17 | x.f() | | {EXTERNAL LOCATION} | usize | -| main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3073:9:3073:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3076:12:3084:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3077:13:3077:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3077:24:3077:24 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3078:13:3078:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3078:13:3078:13 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3078:17:3078:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3078:17:3078:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3078:18:3078:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3079:13:3079:13 | z | | {EXTERNAL LOCATION} | & | -| main.rs:3079:13:3079:13 | z | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3079:17:3079:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3079:17:3079:22 | x.g(...) | | {EXTERNAL LOCATION} | & | -| main.rs:3079:17:3079:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3079:21:3079:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3079:21:3079:21 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3081:13:3081:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3081:17:3081:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3082:13:3082:13 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3082:24:3082:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3082:24:3082:24 | 1 | | {EXTERNAL LOCATION} | usize | -| main.rs:3083:13:3083:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:3083:17:3083:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3083:17:3083:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3083:23:3083:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3092:11:3127:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3093:5:3093:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3094:5:3094:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:5:3095:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:20:3095:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3095:41:3095:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3096:5:3096:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3097:5:3097:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3098:5:3098:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3099:5:3099:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3100:5:3100:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3101:5:3101:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3102:5:3102:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3103:5:3103:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3104:5:3104:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3105:5:3105:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3106:5:3106:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3107:5:3107:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3110:5:3110:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3111:5:3111:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3112:5:3112:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3123:5:3123:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3124:5:3124:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3125:5:3125:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3125:5:3125:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3125:5:3125:20 | ...::f(...) | T | main.rs:2896:5:2898:5 | dyn MyTrait | -| main.rs:3125:5:3125:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3125:16:3125:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3126:5:3126:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2987:16:2987:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2994:24:2994:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2998:9:2998:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3004:13:3004:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3004:13:3004:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3004:17:3004:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:3004:17:3004:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:30:3005:30 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:30:3005:30 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:13:3006:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3006:13:3006:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:17:3006:35 | ...::None | | {EXTERNAL LOCATION} | Option | +| main.rs:3006:17:3006:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3007:13:3007:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3007:13:3007:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3007:17:3007:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | +| main.rs:3007:17:3007:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | +| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | +| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3011:13:3011:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3011:13:3011:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3011:17:3011:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:3011:17:3011:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3012:20:3012:20 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3012:20:3012:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3012:23:3012:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:13:3019:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:13:3019:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:17:3019:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:17:3019:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3019:37:3019:37 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:40:3020:40 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:40:3020:40 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:17:3021:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:50:3021:50 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:13:3023:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | +| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | +| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:13:3030:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3030:13:3030:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:17:3032:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3030:17:3032:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3033:23:3033:23 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3033:23:3033:23 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3033:26:3033:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:13:3035:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3035:13:3035:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3035:13:3035:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:17:3035:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3035:17:3035:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3035:17:3035:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:28:3035:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3036:38:3036:38 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:38:3036:38 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:38:3036:38 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:13:3037:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3037:13:3037:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3037:13:3037:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:17:3037:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3037:17:3037:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3037:17:3037:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:43:3037:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:13:3038:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3038:13:3038:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3038:13:3038:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:43:3038:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | +| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | +| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | +| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3042:13:3042:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3042:13:3042:13 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3042:13:3042:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3042:17:3042:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3042:17:3042:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | +| main.rs:3042:17:3042:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3042:28:3042:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3043:20:3043:20 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3043:20:3043:20 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3043:20:3043:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:17:3045:17 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:21:3045:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3046:9:3046:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:9:3046:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3046:16:3046:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3048:13:3048:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3048:17:3048:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3049:9:3049:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3049:9:3049:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3049:16:3049:16 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:20 | self.f() | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:9:3087:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3093:13:3093:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3093:17:3093:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3093:18:3093:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3094:13:3094:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:3094:13:3094:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3094:17:3094:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:3094:17:3094:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3094:21:3094:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3096:13:3096:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3096:17:3096:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | usize | +| main.rs:3098:13:3098:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:17:3098:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:17:3098:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From eb56cbd35838a7df9abbd8468ff742dfdb54d054 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 16 Dec 2025 08:48:31 +0100 Subject: [PATCH 173/194] Rust: Fix candidate receiver type calculation for trait bounds --- .../codeql/rust/internal/TypeInference.qll | 132 ++++++++++++------ .../internal/typeinference/FunctionType.qll | 27 +++- .../PathResolutionConsistency.expected | 2 - .../type-inference/blanket_impl.rs | 2 +- .../test/library-tests/type-inference/main.rs | 4 +- 5 files changed, 121 insertions(+), 46 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 602f964df0f..2ff44dafb6a 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1572,20 +1572,18 @@ private module MethodResolution { } /** - * Same as `getACandidateReceiverTypeAt`, but with traits substituted in for types - * with trait bounds. + * Same as `getACandidateReceiverTypeAt`, but excludes pseudo types `!` and `unknown`. */ pragma[nomagic] - Type getACandidateReceiverTypeAtSubstituteLookupTraits( - string derefChain, boolean borrow, TypePath path - ) { - result = substituteLookupTraits(this.getACandidateReceiverTypeAt(derefChain, borrow, path)) + Type getANonPseudoCandidateReceiverTypeAt(string derefChain, boolean borrow, TypePath path) { + result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and + result != TNeverType() and + result != TUnknownType() } pragma[nomagic] private Type getComplexStrippedType(string derefChain, boolean borrow, TypePath strippedTypePath) { - result = - this.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, strippedTypePath) and + result = this.getANonPseudoCandidateReceiverTypeAt(derefChain, borrow, strippedTypePath) and isComplexRootStripped(strippedTypePath, result) } @@ -1624,12 +1622,11 @@ private module MethodResolution { ) } - /** - * Holds if the candidate receiver type represented by `derefChain` does not - * have a matching method target. - */ + // forex using recursion pragma[nomagic] - predicate hasNoCompatibleTargetNoBorrow(string derefChain) { + private predicate hasNoCompatibleTargetNoBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { ( this.supportsAutoDerefAndBorrow() or @@ -1637,10 +1634,46 @@ private module MethodResolution { // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` derefChain = "" ) and - exists(TypePath strippedTypePath, Type strippedType | - not derefChain.matches("%.ref") and // no need to try a borrow if the last thing we did was a deref - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and - this.hasNoCompatibleTargetCheck(derefChain, false, strippedTypePath, strippedType) + strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and + n = -1 + or + this.hasNoCompatibleTargetNoBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleTargetCheck(derefChain, false, strippedTypePath, t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain` does not + * have a matching method target. + */ + pragma[nomagic] + predicate hasNoCompatibleTargetNoBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleTargetNoBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetNoBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + ( + this.supportsAutoDerefAndBorrow() + or + // needed for the `hasNoCompatibleTarget` check in + // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` + derefChain = "" + ) and + strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, false, strippedTypePath, t) ) } @@ -1650,17 +1683,24 @@ private module MethodResolution { */ pragma[nomagic] predicate hasNoCompatibleNonBlanketTargetNoBorrow(string derefChain) { - ( - this.supportsAutoDerefAndBorrow() - or - // needed for the `hasNoCompatibleTarget` check in - // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` - derefChain = "" - ) and - exists(TypePath strippedTypePath, Type strippedType | - not derefChain.matches("%.ref") and // no need to try a borrow if the last thing we did was a deref - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, false, strippedTypePath, strippedType) + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleTargetBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and + n = -1 + or + this.hasNoCompatibleTargetBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, true, strippedTypePath, t) ) } @@ -1670,11 +1710,25 @@ private module MethodResolution { */ pragma[nomagic] predicate hasNoCompatibleTargetBorrow(string derefChain) { - exists(TypePath strippedTypePath, Type strippedType | - this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, true, strippedTypePath, - strippedType) + exists(Type strippedType | + this.hasNoCompatibleTargetBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetBorrowToIndex(derefChain, strippedTypePath, strippedType, + n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, true, strippedTypePath, t) ) } @@ -1684,10 +1738,9 @@ private module MethodResolution { */ pragma[nomagic] predicate hasNoCompatibleNonBlanketTargetBorrow(string derefChain) { - exists(TypePath strippedTypePath, Type strippedType | - this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, true, strippedTypePath, strippedType) + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) ) } @@ -1905,9 +1958,8 @@ private module MethodResolution { MethodCall getMethodCall() { result = mc_ } Type getTypeAt(TypePath path) { - result = mc_.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, path) and - not result = TNeverType() and - not result = TUnknownType() + result = + substituteLookupTraits(mc_.getANonPseudoCandidateReceiverTypeAt(derefChain, borrow, path)) } pragma[nomagic] diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index a74ff762c58..bbbbeaba2a6 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -194,6 +194,7 @@ class AssocFunctionType extends MkAssocFunctionType { Location getLocation() { result = this.getTypeMention().getLocation() } } +pragma[nomagic] private Trait getALookupTrait(Type t) { result = t.(TypeParamTypeParameter).getTypeParam().(TypeParamItemNode).resolveABound() or @@ -208,7 +209,7 @@ private Trait getALookupTrait(Type t) { * Gets the type obtained by substituting in relevant traits in which to do function * lookup, or `t` itself when no such trait exist. */ -bindingset[t] +pragma[nomagic] Type substituteLookupTraits(Type t) { not exists(getALookupTrait(t)) and result = t @@ -216,6 +217,30 @@ Type substituteLookupTraits(Type t) { result = TTrait(getALookupTrait(t)) } +/** + * Gets the `n`th `substituteLookupTraits` type for `t`, per some arbitrary order. + */ +pragma[nomagic] +Type getNthLookupType(Type t, int n) { + not exists(getALookupTrait(t)) and + result = t and + n = 0 + or + result = + TTrait(rank[n + 1](Trait trait, int i | + trait = getALookupTrait(t) and + i = idOfTypeParameterAstNode(trait) + | + trait order by i + )) +} + +/** + * Gets the index of the last `substituteLookupTraits` type for `t`. + */ +pragma[nomagic] +int getLastLookupTypeIndex(Type t) { result = max(int n | exists(getNthLookupType(t, n))) } + /** * A wrapper around `IsInstantiationOf` which ensures to substitute in lookup * traits when checking whether argument types are instantiations of function diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 1f15c50c53c..e00293919a6 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -13,8 +13,6 @@ multipleResolvedTargets | dyn_type.rs:90:10:90:13 | * ... | | invalid/main.rs:69:13:69:17 | * ... | | invalid/main.rs:76:13:76:17 | * ... | -| main.rs:841:9:841:14 | x.m2() | -| main.rs:842:9:842:14 | y.m2() | | main.rs:1092:14:1092:18 | * ... | | main.rs:1174:26:1174:30 | * ... | | main.rs:1518:14:1518:21 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/blanket_impl.rs b/rust/ql/test/library-tests/type-inference/blanket_impl.rs index 49fcd8af0a6..c139af01c42 100644 --- a/rust/ql/test/library-tests/type-inference/blanket_impl.rs +++ b/rust/ql/test/library-tests/type-inference/blanket_impl.rs @@ -236,7 +236,7 @@ mod blanket_like_impl { impl MyTrait2 for &&S1 { // MyTrait2RefRefS1::m2 fn m2(self) { - self.m1() // $ MISSING: target=S1::m1 + self.m1() // $ target=S1::m1 } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 168c8cbcd56..a45b97d306d 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -838,8 +838,8 @@ mod function_trait_bounds { } fn bound_overlap(x: T, y: &T) { - x.m2(); // $ target=MyTrait2::m2 $ SPURIOUS: target=MyTrait3::m2 - y.m2(); // $ target=MyTrait3::m2 $ SPURIOUS: target=MyTrait2::m2 + x.m2(); // $ target=MyTrait2::m2 + y.m2(); // $ target=MyTrait3::m2 } pub fn f() { From 22bc924c265de8f0081d91f771abd958ec825ae5 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 11:03:16 +0100 Subject: [PATCH 174/194] Rust: Apply Black formatter to annotations.py --- rust/schema/annotations.py | 125 +++++++++++++++++++++++++++++++------ 1 file changed, 105 insertions(+), 20 deletions(-) diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 96173957278..bad273419d9 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -6,6 +6,7 @@ class LabelableExpr(Expr): """ The base class for expressions that can be labeled (`LoopExpr`, `ForExpr`, `WhileExpr` or `BlockExpr`). """ + label: optional[Label] | child @@ -13,6 +14,7 @@ class LoopingExpr(LabelableExpr): """ The base class for expressions that loop (`LoopExpr`, `ForExpr` or `WhileExpr`). """ + loop_body: optional["BlockExpr"] | child @@ -21,6 +23,7 @@ class _: """ An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. """ + derive_macro_expansions: list[MacroItems] | child | rust.detach @@ -95,8 +98,8 @@ class _: foo::bar; ``` """ - segment: _ | ql.db_table_name("path_segments_") | doc( - "last segment of this path") + + segment: _ | ql.db_table_name("path_segments_") | doc("last segment of this path") @annotate(GenericArgList) @@ -132,7 +135,9 @@ class PathExprBase(Expr): """ -@annotate(PathExpr, replace_bases={Expr: PathExprBase}, add_bases=(PathAstNode,), cfg=True) +@annotate( + PathExpr, replace_bases={Expr: PathExprBase}, add_bases=(PathAstNode,), cfg=True +) @qltest.test_with(Path) class _: """ @@ -144,6 +149,7 @@ class _: let z = ::foo; ``` """ + path: drop @@ -195,6 +201,7 @@ class _: } ``` """ + label: drop @@ -224,6 +231,7 @@ class _: }; ``` """ + label: drop loop_body: drop @@ -297,8 +305,10 @@ class _: } ``` """ + scrutinee: _ | doc( - "scrutinee (the expression being matched) of this match expression") + "scrutinee (the expression being matched) of this match expression" + ) @annotate(ContinueExpr, cfg=True) @@ -348,7 +358,7 @@ class _: 0; }; ``` - """ + """ @annotate(ReturnExpr, cfg=True) @@ -432,6 +442,7 @@ class _: Foo { a: m, .. } = second; ``` """ + path: drop @@ -579,6 +590,7 @@ class ArrayExpr(Expr): [1; 10]; ``` """ + exprs: list[Expr] | child attrs: list[Attr] | child @@ -591,6 +603,7 @@ class ArrayListExpr(ArrayExpr): [1, 2, 3]; ``` """ + __cfg__ = True @@ -602,6 +615,7 @@ class ArrayRepeatExpr(ArrayExpr): [1; 10]; ``` """ + __cfg__ = True repeat_operand: Expr | child @@ -741,6 +755,7 @@ class _: } ``` """ + path: drop @@ -784,6 +799,7 @@ class _: } ``` """ + path: drop @@ -831,6 +847,7 @@ class _: }; ``` """ + path: drop @@ -993,10 +1010,18 @@ class _: const X: i32 = 42; ``` """ - has_implementation: predicate | doc("this constant has an implementation") | desc(""" + + has_implementation: ( + predicate + | doc("this constant has an implementation") + | desc( + """ This is the same as `hasBody` for source code, but for library code (for which we always skip the body), this will hold when the body was present in the original code. - """) | rust.detach + """ + ) + | rust.detach + ) @annotate(ConstArg) @@ -1146,6 +1171,7 @@ class _: } ``` """ + label: drop loop_body: drop @@ -1162,6 +1188,7 @@ class _: ``` """ + @annotate(FormatArgsArg, cfg=True) @qltest.test_with(FormatArgsExpr) class _: @@ -1185,6 +1212,7 @@ class _: format_args!("{x}, {y}"); ``` """ + formats: list["Format"] | child | synth @@ -1279,6 +1307,7 @@ class _: enum E {} ``` """ + attribute_macro_expansion: optional[MacroItems] | child | rust.detach @@ -1361,6 +1390,7 @@ class _: println!("Hello, world!"); ``` """ + macro_call_expansion: optional[AstNode] | child | rust.detach @@ -1414,6 +1444,7 @@ class MacroBlockExpr(Expr): my_macro!(); // this macro expands to a sequence of statements (and an expression) ``` """ + __cfg__ = True statements: list[Stmt] | child @@ -1530,6 +1561,7 @@ class ParamBase(AstNode): """ A normal parameter, `Param`, or a self parameter `SelfParam`. """ + attrs: list["Attr"] | child type_repr: optional["TypeRepr"] | child @@ -1549,6 +1581,7 @@ class _: } ``` """ + attrs: drop type_repr: drop @@ -1603,6 +1636,7 @@ class _: - `widgets(..)` - `` """ + type_repr: optional["TypeRepr"] | child | rust.detach trait_type_repr: optional["PathTypeRepr"] | child | rust.detach @@ -1777,6 +1811,7 @@ class _: } ``` """ + attrs: drop type_repr: drop @@ -1835,14 +1870,28 @@ class _: // ^^^^^^^^^ ``` """ - statements: _ | doc("statements of this statement list") | desc(""" + + statements: ( + _ + | doc("statements of this statement list") + | desc( + """ The statements of a `StmtList` do not include any tail expression, which can be accessed with predicates such as `getTailExpr`. - """) - tail_expr: _ | doc("tail expression of this statement list") | desc(""" + """ + ) + ) + tail_expr: ( + _ + | doc("tail expression of this statement list") + | desc( + """ The tail expression is the expression at the end of a block, that determines the block's value. - """) + """ + ) + ) + @annotate(Struct, replace_bases={Item: None}) # still an Item via Adt class _: @@ -1855,6 +1904,7 @@ class _: } ``` """ + field_list: _ | ql.db_table_name("struct_field_lists_") @@ -2152,6 +2202,7 @@ class _: } ``` """ + label: drop loop_body: drop @@ -2160,10 +2211,17 @@ class _: class _: param_list: drop attrs: drop - has_implementation: predicate | doc("this function has an implementation") | desc(""" + has_implementation: ( + predicate + | doc("this function has an implementation") + | desc( + """ This is the same as `hasBody` for source code, but for library code (for which we always skip the body), this will hold when the body was present in the original code. - """) | rust.detach + """ + ) + | rust.detach + ) @annotate(ClosureExpr, add_bases=[Callable]) @@ -2191,35 +2249,61 @@ class Format(Locatable): println!("Value {value:#width$.precision$}"); ``` """ + parent: FormatArgsExpr index: int - argument_ref: optional["FormatArgument"] | child | desc(""" + argument_ref: ( + optional["FormatArgument"] + | child + | desc( + """ For example `name` and `0` in: ```rust let name = "Alice"; println!("{name} in wonderland"); println!("{0} in wonderland", name); ``` - """) - width_argument: optional["FormatArgument"] | child | desc(""" + """ + ) + ) + width_argument: ( + optional["FormatArgument"] + | child + | desc( + """ For example `width` and `1` in: ```rust let width = 6; println!("{:width$}", PI); println!("{:1$}", PI, width); ``` - """) - precision_argument: optional["FormatArgument"] | child | desc(""" + """ + ) + ) + precision_argument: ( + optional["FormatArgument"] + | child + | desc( + """ For example `prec` and `1` in: ```rust let prec = 6; println!("{:.prec$}", PI); println!("{:.1$}", PI, prec); ``` - """) + """ + ) + ) -@synth.on_arguments(parent=FormatArgsExpr, index=int, kind=int, name=string, positional=boolean, offset=int) +@synth.on_arguments( + parent=FormatArgsExpr, + index=int, + kind=int, + name=string, + positional=boolean, + offset=int, +) @qltest.test_with(FormatArgsExpr) class FormatArgument(Locatable): """ @@ -2232,6 +2316,7 @@ class FormatArgument(Locatable): println!("Value {0:#1$.2$}", value, width, precision); ``` """ + parent: Format variable: optional[FormatTemplateVariableAccess] | child From ca6c05425696caa5c9ee0cabdf3e3bc2686d09ae Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 11:06:26 +0100 Subject: [PATCH 175/194] Rust: Rename `Adt` class and lift common predicates to it --- rust/ast-generator/src/main.rs | 1 + rust/extractor/src/translate/base.rs | 4 ++-- rust/schema/annotations.py | 32 +++++++++++++++++++++++----- rust/schema/ast.py | 8 +++---- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 4b68c1d42a6..ddacc0d913e 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -15,6 +15,7 @@ use ungrammar::Grammar; fn class_name(type_name: &str) -> String { match type_name { + "Adt" => "TypeItem".to_owned(), "BinExpr" => "BinaryExpr".to_owned(), "ElseBranch" => "Expr".to_owned(), "Fn" => "Function".to_owned(), diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index ee26da665b2..a3a0b3c9133 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -674,7 +674,7 @@ impl<'a> Translator<'a> { pub(crate) fn emit_derive_expansion( &mut self, node: &(impl Into + Clone), - label: impl Into> + Copy, + label: impl Into> + Copy, ) { let Some(semantics) = self.semantics else { return; @@ -686,7 +686,7 @@ impl<'a> Translator<'a> { .flatten() .filter_map(|expanded| self.process_item_macro_expansion(&node, expanded)) .collect::>(); - generated::Adt::emit_derive_macro_expansions( + generated::TypeItem::emit_derive_macro_expansions( label.into(), expansions, &mut self.trap.writer, diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index bad273419d9..8896e5809f2 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -18,13 +18,18 @@ class LoopingExpr(LabelableExpr): loop_body: optional["BlockExpr"] | child -@annotate(Adt, replace_bases={AstNode: Item}) +@annotate(TypeItem, replace_bases={AstNode: Item}) class _: """ - An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + An item that defines a type. Either a `Struct`, `Enum`, or `Union`. """ derive_macro_expansions: list[MacroItems] | child | rust.detach + attrs: list["Attr"] | child + generic_param_list: optional["GenericParamList"] | child + name: optional["Name"] | child + visibility: optional["Visibility"] | child + where_clause: optional["WhereClause"] | child @annotate(Module) @@ -1063,7 +1068,7 @@ class _: """ -@annotate(Enum, replace_bases={Item: None}) # still an Item via Adt +@annotate(Enum, replace_bases={Item: None}) class _: """ An enum declaration. @@ -1074,6 +1079,12 @@ class _: ``` """ + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop + @annotate(ExternBlock) class _: @@ -1893,7 +1904,7 @@ class _: ) -@annotate(Struct, replace_bases={Item: None}) # still an Item via Adt +@annotate(Struct, replace_bases={Item: None}) class _: """ A Struct. For example: @@ -1906,6 +1917,11 @@ class _: """ field_list: _ | ql.db_table_name("struct_field_lists_") + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop @annotate(TokenTree) @@ -2075,7 +2091,7 @@ class _: """ -@annotate(Union, replace_bases={Item: None}) # still an Item via Adt +@annotate(Union, replace_bases={Item: None}) class _: """ A union declaration. @@ -2086,6 +2102,12 @@ class _: ``` """ + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop + @annotate(Use) class _: diff --git a/rust/schema/ast.py b/rust/schema/ast.py index d338c7a1636..5d8a7393ea6 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -2,7 +2,7 @@ from .prelude import * -class Adt(AstNode, ): +class TypeItem(AstNode, ): pass class AsmOperand(AstNode, ): @@ -206,7 +206,7 @@ class ContinueExpr(Expr, ): class DynTraitTypeRepr(TypeRepr, ): type_bound_list: optional["TypeBoundList"] | child -class Enum(Adt, Item, ): +class Enum(TypeItem, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child @@ -623,7 +623,7 @@ class StmtList(AstNode, ): statements: list["Stmt"] | child tail_expr: optional["Expr"] | child -class Struct(Adt, Item, ): +class Struct(TypeItem, Item, ): attrs: list["Attr"] | child field_list: optional["FieldList"] | child generic_param_list: optional["GenericParamList"] | child @@ -712,7 +712,7 @@ class TypeParam(GenericParam, ): class UnderscoreExpr(Expr, ): attrs: list["Attr"] | child -class Union(Adt, Item, ): +class Union(TypeItem, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child From dd02ac39644b766e5ec8bb2e96f39dc39fc61b5f Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 11:11:44 +0100 Subject: [PATCH 176/194] Rust: Update generated files --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 232 +++++++++--------- rust/ql/.generated.list | 32 +-- rust/ql/.gitattributes | 6 +- rust/ql/lib/codeql/rust/elements.qll | 2 +- rust/ql/lib/codeql/rust/elements/Adt.qll | 13 - rust/ql/lib/codeql/rust/elements/Enum.qll | 7 +- rust/ql/lib/codeql/rust/elements/Struct.qll | 7 +- rust/ql/lib/codeql/rust/elements/TypeItem.qll | 18 ++ rust/ql/lib/codeql/rust/elements/Union.qll | 7 +- .../{AdtImpl.qll => TypeItemImpl.qll} | 10 +- .../rust/elements/internal/generated/Adt.qll | 45 ---- .../rust/elements/internal/generated/Enum.qll | 79 +----- .../internal/generated/ParentChild.qll | 48 ++-- .../rust/elements/internal/generated/Raw.qll | 204 ++++++--------- .../elements/internal/generated/Struct.qll | 84 +------ .../elements/internal/generated/Synth.qll | 70 +++--- .../elements/internal/generated/TypeItem.qll | 126 ++++++++++ .../elements/internal/generated/Union.qll | 81 +----- rust/ql/lib/rust.dbscheme | 154 ++++-------- .../extractor-tests/generated/Enum/Enum.ql | 8 +- .../generated/Struct/Struct.ql | 8 +- .../extractor-tests/generated/Union/Union.ql | 8 +- 23 files changed, 483 insertions(+), 768 deletions(-) delete mode 100644 rust/ql/lib/codeql/rust/elements/Adt.qll create mode 100644 rust/ql/lib/codeql/rust/elements/TypeItem.qll rename rust/ql/lib/codeql/rust/elements/internal/{AdtImpl.qll => TypeItemImpl.qll} (56%) delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll create mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 578b21fc992..11f99621d16 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs b829c8ab9ec5ff07b997b9ee0b2c333d63e24eddcf7c5fc2b95a9a7f17a84a69 b829c8ab9ec5ff07b997b9ee0b2c333d63e24eddcf7c5fc2b95a9a7f17a84a69 +top.rs 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 510f6579d40..2365084bb82 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -9006,82 +9006,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct Adt { - _unused: () -} - -impl Adt { - pub fn emit_derive_macro_expansion(id: trap::Label, i: usize, value: trap::Label, out: &mut trap::Writer) { - out.add_tuple("adt_derive_macro_expansions", vec![id.into(), i.into(), value.into()]); - } - - pub fn emit_derive_macro_expansions(id: trap::Label, values: impl IntoIterator>, out: &mut trap::Writer) { - values - .into_iter() - .enumerate() - .for_each(|(i, value)| Self::emit_derive_macro_expansion(id, i, value, out)); - } -} - -impl trap::TrapClass for Adt { - fn class_name() -> &'static str { "Adt" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Item - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Stmt - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Addressable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct AsmExpr { pub id: trap::TrapId, @@ -10305,6 +10229,82 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct TypeItem { + _unused: () +} + +impl TypeItem { + pub fn emit_derive_macro_expansion(id: trap::Label, i: usize, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("type_item_derive_macro_expansions", vec![id.into(), i.into(), value.into()]); + } + + pub fn emit_derive_macro_expansions(id: trap::Label, values: impl IntoIterator>, out: &mut trap::Writer) { + values + .into_iter() + .enumerate() + .for_each(|(i, value)| Self::emit_derive_macro_expansion(id, i, value, out)); + } +} + +impl trap::TrapClass for TypeItem { + fn class_name() -> &'static str { "TypeItem" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Item + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Stmt + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of AstNode + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Locatable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Element + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Addressable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct Use { pub id: trap::TrapId, @@ -10521,9 +10521,9 @@ pub struct Enum { pub attrs: Vec>, pub generic_param_list: Option>, pub name: Option>, - pub variant_list: Option>, pub visibility: Option>, pub where_clause: Option>, + pub variant_list: Option>, } impl trap::TrapEntry for Enum { @@ -10534,23 +10534,23 @@ impl trap::TrapEntry for Enum { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("enums", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("enum_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); } if let Some(v) = self.generic_param_list { - out.add_tuple("enum_generic_param_lists", vec![id.into(), v.into()]); + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); } if let Some(v) = self.name { - out.add_tuple("enum_names", vec![id.into(), v.into()]); + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.variant_list { out.add_tuple("enum_variant_lists", vec![id.into(), v.into()]); } - if let Some(v) = self.visibility { - out.add_tuple("enum_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("enum_where_clauses", vec![id.into(), v.into()]); - } } } @@ -10558,9 +10558,9 @@ impl trap::TrapClass for Enum { fn class_name() -> &'static str { "Enum" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Enum is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Enum is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } @@ -11190,11 +11190,11 @@ impl From> for trap::Label { pub struct Struct { pub id: trap::TrapId, pub attrs: Vec>, - pub field_list: Option>, pub generic_param_list: Option>, pub name: Option>, pub visibility: Option>, pub where_clause: Option>, + pub field_list: Option>, } impl trap::TrapEntry for Struct { @@ -11205,23 +11205,23 @@ impl trap::TrapEntry for Struct { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("structs", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("struct_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); + } + if let Some(v) = self.generic_param_list { + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.name { + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.field_list { out.add_tuple("struct_field_lists_", vec![id.into(), v.into()]); } - if let Some(v) = self.generic_param_list { - out.add_tuple("struct_generic_param_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.name { - out.add_tuple("struct_names", vec![id.into(), v.into()]); - } - if let Some(v) = self.visibility { - out.add_tuple("struct_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("struct_where_clauses", vec![id.into(), v.into()]); - } } } @@ -11229,9 +11229,9 @@ impl trap::TrapClass for Struct { fn class_name() -> &'static str { "Struct" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Struct is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Struct is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } @@ -11421,9 +11421,9 @@ pub struct Union { pub attrs: Vec>, pub generic_param_list: Option>, pub name: Option>, - pub struct_field_list: Option>, pub visibility: Option>, pub where_clause: Option>, + pub struct_field_list: Option>, } impl trap::TrapEntry for Union { @@ -11434,23 +11434,23 @@ impl trap::TrapEntry for Union { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("unions", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("union_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); } if let Some(v) = self.generic_param_list { - out.add_tuple("union_generic_param_lists", vec![id.into(), v.into()]); + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); } if let Some(v) = self.name { - out.add_tuple("union_names", vec![id.into(), v.into()]); + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.struct_field_list { out.add_tuple("union_struct_field_lists", vec![id.into(), v.into()]); } - if let Some(v) = self.visibility { - out.add_tuple("union_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("union_where_clauses", vec![id.into(), v.into()]); - } } } @@ -11458,9 +11458,9 @@ impl trap::TrapClass for Union { fn class_name() -> &'static str { "Union" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Union is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Union is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 7def99275cf..de0cdb6224f 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,7 +1,6 @@ lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 1eac5a95247dec5cf51a453788b5bdebcf612590014b1e28f6b6f7e841c96a20 d4d8c9664ca406c3fd14d96a488eea97c42401e2791f41d7248ee5d3f299805c lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be -lib/codeql/rust/elements/Adt.qll c2afed4ac2e17039ccd98f74ea22111f4d765c4e232c50ccd3128da0d26da837 1380bde2eb667c6ec2ef5f8710aa24e926851c9e321ebc72ba514fa92c369dc3 lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 lib/codeql/rust/elements/ArrayExpr.qll e4e7cff3518c50ec908271906dd46c1fbe9098faa1e8cd06a27f0a6e8d165ed1 fe02a4f4197f57ecd1e8e82d6c9384148ec29d8b106d7f696795b2f325e4a71b lib/codeql/rust/elements/ArrayListExpr.qll 451aedcecb479c385ff497588c7a07fda304fd5b873270223a4f2c804e96b245 a8cb008f6f732215623b5626c84b37b651ca01ccafb2cf4c835df35d5140c6ad @@ -45,7 +44,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95 lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 -lib/codeql/rust/elements/Enum.qll 55d5a4a775f07d9c1d5183af76f9d8de1d700bfe1dea427cc7ff3083f39e13de f00a585596f1d0ab34e6f2b7cdaba6d4a89005820478f810e8685478cf88100e +lib/codeql/rust/elements/Enum.qll 13c1a3bddfff6c9cc644902652883aefc7721bc94bd8084a1a49acc156996d12 17a898434329437479de4fef27ce11f5996b1953168066bd6d51f93594cc79d1 lib/codeql/rust/elements/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 @@ -144,7 +143,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll 9dca6d4fb80fb4ead49a3de89bec2b02bae6f96fbc2601dde35a2aa69a9bfdb0 70f67bc75d7799dab04ea7a7fd13286bb76bbe514be16d23149c59dfb31fd0c9 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll 8bad277dfd88735195b8fd43bb1395cb2393c488d89304d6a6e6d8ec3eb24b73 cd1d483aecb8bb1876b8153a872f680febc2ef6c315d661c85ec1b2fa07e4fc0 -lib/codeql/rust/elements/Struct.qll 297d3ea732fc7fbb8b8fb5479c1873ce84705146853ff752c84a6f70af12b923 3df0e5fd50a910a0b5611c3a860a1d7c318f6925c3a0727006d91840caf04812 +lib/codeql/rust/elements/Struct.qll e60a859c0112b7a7ce4a4752e936e0d58f413ceb895db25d77ece2fcc9d8881c 8bf69f80bb9ef54644d9540b8be7d331f73ba362817508489ff91619718bee6b lib/codeql/rust/elements/StructExpr.qll 84f384ef74c723796e514186037a91dd9666556f62c717f133ce22e9dda4425f 176497835252cfdfe110e58ebde9fbde553d03e44e07d3e4d8041e835dbf31b9 lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -168,12 +167,13 @@ lib/codeql/rust/elements/TypeAlias.qll b59f24488f0d7de8d4046a9e0ca1e1f54d1d5c11e lib/codeql/rust/elements/TypeArg.qll e91dbb399d2ab7cf7af9dd5f743a551d0bf91dba3cfb76cea9e2d42ada0f9f2e c67d64e20e35a9bba5092651e0f82c75ba53b8c165e823bc81d67975107ae375 lib/codeql/rust/elements/TypeBound.qll 33583aed81734348c5097851cde3568668f259c000ccde901c75a3f2eef30237 3c9e541d47c5cfbcb0b1c5806f5d9abd7f51382d1efc1328742439e11285ab32 lib/codeql/rust/elements/TypeBoundList.qll 61a861e89b3de23801c723531cd3331a61214817a230aaae74d91cb60f0e096f d54e3d830bb550c5ba082ccd09bc0dc4e6e44e8d11066a7afba5a7172aa687a8 +lib/codeql/rust/elements/TypeItem.qll 5676a801adccd2685c6beff4e2587b6da595ecaa9befb88dc29428eb53988a86 3bfdeb9d0cd4f79a9eb85829e9572bd1e4d0971e67cd3952ae5b811a955b26b5 lib/codeql/rust/elements/TypeParam.qll 0787c1cc0c121e5b46f7d8e25153fd1b181bd3432eb040cf3b4ae3ed9ac2f28c 50092950f52a4e3bfd961dff4ffd8a719ef66ca1a0914bd33e26fed538321999 lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c388526068ddacbd67488c892 11a01e42dab9183bac14de1ca49131788ede99e75b0ef759efcbc7cf08524184 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll 13f7f62e98b117d18e79db5f6e6535447bc069ebb08f7cdb390b012678b7e085 bd8c37bc0ff09926753bc250e1848ed25923f224829d0136afc27b749eaddd1f +lib/codeql/rust/elements/Union.qll e23ca528f8573e77dfa7eca71457e2022c92f22292ce84d021d304e52820ee66 eed20ac3797faaa248bc47ef81fa79a5d5c372b4c6289a075d041a84dd8bd6f4 lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll 841913cfbb84de14aab1820a5433eae978bbadbb8e6d413b8ba70780c7328335 c9ec9d086cff91d15c3aea64f1080b22b41cdaf64e3c8b192aaaec17604a5d10 @@ -190,7 +190,6 @@ lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9 lib/codeql/rust/elements/YieldExpr.qll de2dc096a077f6c57bba9d1c2b2dcdbecce501333753b866d77c3ffbe06aa516 1f3e8949689c09ed356ff4777394fe39f2ed2b1e6c381fd391790da4f5d5c76a lib/codeql/rust/elements/internal/AbiConstructor.qll 4484538db49d7c1d31c139f0f21879fceb48d00416e24499a1d4b1337b4141ac 460818e397f2a1a8f2e5466d9551698b0e569d4640fcb87de6c4268a519b3da1 lib/codeql/rust/elements/internal/AbiImpl.qll 28a2b6bdb38fd626e5d7d1ed29b839b95976c3a03717d840669eb17c4d6f0c7a 8e83877855abe760f3be8f45c2cf91c1f6e810ec0301313910b8104b2474d9cf -lib/codeql/rust/elements/internal/AdtImpl.qll 2dc727a14a0fc775512d35e224eab7955884ec143dbd7dbf4cada9a1f5516df4 f3991cea544c5537b0a810492979a317b47685e1c0e58b948df2a957c7a18fdc lib/codeql/rust/elements/internal/ArgListConstructor.qll a73685c8792ae23a2d628e7357658efb3f6e34006ff6e9661863ef116ec0b015 0bee572a046e8dfc031b1216d729843991519d94ae66280f5e795d20aea07a22 lib/codeql/rust/elements/internal/ArgListImpl.qll 0903b2ca31b3e5439f631582d12f17d77721d63fdb54dc41372d19b742881ce4 2c71c153ccca4b4988e6a25c37e58dc8ecb5a7483273afff563a8542f33e7949 lib/codeql/rust/elements/internal/ArrayExprInternal.qll 07a219b3d3fba3ff8b18e77686b2f58ab01acd99e0f5d5cad5d91af937e228f5 7528fc0e2064c481f0d6cbff3835950a044e429a2cd00c4d8442d2e132560d37 @@ -415,6 +414,7 @@ lib/codeql/rust/elements/internal/TypeArgConstructor.qll 51d621e170fdf5f91497f8c lib/codeql/rust/elements/internal/TypeArgImpl.qll 77886af8b2c045463c4c34d781c8f618eec5f5143098548047730f73c7e4a34a 6be6c519b71f9196e0559958e85efe8a78fbce7a90ca2401d7c402e46bc865c9 lib/codeql/rust/elements/internal/TypeBoundConstructor.qll ba99616e65cf2811187016ff23e5b0005cfd0f1123622e908ff8b560aaa5847f fde78432b55b31cf68a3acb7093256217df37539f942c4441d1b1e7bf9271d89 lib/codeql/rust/elements/internal/TypeBoundListConstructor.qll 4b634b3a4ca8909ce8c0d172d9258168c5271435474089902456c2e3e47ae1c5 3af74623ced55b3263c096810a685517d36b75229431b81f3bb8101294940025 +lib/codeql/rust/elements/internal/TypeItemImpl.qll e439593cfbf8fb647b69151b7a0ef2b60b7dfa4603d1a0d911b0f924997acd0c 72caab93da71a88df1c0890ae70e866dc607ce61b177243ee60afa555881c72b lib/codeql/rust/elements/internal/TypeParamConstructor.qll a6e57cccd6b54fa68742d7b8ce70678a79ac133ea8c1bfa89d60b5f74ad07e05 0e5f45d250d736aaf40387be22e55288543bdb55bbb20ecb43f2f056e8be8b09 lib/codeql/rust/elements/internal/TypeReprImpl.qll 504b137313407be57c93fe0acee31716a02f91e23ce417e7c67bae2ae9937564 28fa8b680d5cd782c5c5fb048a9deb9b9debd196e3bc7df1129843e61eb342ea lib/codeql/rust/elements/internal/UnderscoreExprConstructor.qll 8dc27831adb49c1a47b9f8997d6065e82b4e48e41e3c35bd8d35255cea459905 6c5a5272d37f83f1c1b17475f8adb7d867e95025d201320e20a32dab1f69f7bf @@ -445,7 +445,6 @@ lib/codeql/rust/elements/internal/YieldExprConstructor.qll 8cbfa6405acb151ee31cc lib/codeql/rust/elements/internal/YieldExprImpl.qll af184649a348ddd0be16dee9daae307240bf123ace09243950342e9d71ededd9 17df90f67dd51623e8a5715b344ccd8740c8fc415af092469f801b99caacb70d lib/codeql/rust/elements/internal/generated/Abi.qll f5a22afe5596c261b4409395056ce3227b25d67602d51d0b72734d870f614df3 06d1c242ccd31f1cc90212823077e1a7a9e93cd3771a14ebe2f0659c979f3dd1 lib/codeql/rust/elements/internal/generated/Addressable.qll 624c380d385af6563885417d1e8ecd5d9b7abf1435c0ab79a1b9a405387874a3 e2755dc2155d6f2bc0e2d54006da0e62ee359440592db9d6a8b73202ef28e64f -lib/codeql/rust/elements/internal/generated/Adt.qll 155f4025a26c3d2d5d3c42dfce9274a10f0862ea0574843c5d276179de421569 17138b271eea81d3ee2697c82cccfd7af752cd18cd925dd5fa20d7fce0e2432f lib/codeql/rust/elements/internal/generated/ArgList.qll e41f48258082876a8ceac9107209d94fdd00a62d2e4c632987a01a8394c4aff6 bf1982d14f8cd55fa0c3da2c6aab56fc73b15a3572ffc72d9a94f2c860f8f3b7 lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 73806a0de8168b38a9436fa6b8c6d68c92eeab3d64a1ae7edfff82f871929992 7ad998cdd8f4fed226473517ad7a5765cb35608033047aad53bf8aa3969fd03b lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll 67a7b0fae04b11cf771727ff39a123fb2d5ce6e2d650d32478fcb33a26ed5688 15833405fa85f6abe0e5146dac283cb5a142a07f08300ccc15a1dae30ed88942 @@ -490,7 +489,7 @@ lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83 lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e -lib/codeql/rust/elements/internal/generated/Enum.qll 477eaa102c1268f0fa7603ecd88f1b83db1388c17c25e3719d4113ea980256f7 2d60db61ba4a385218f0a01e366e04ba1e7dad386b7e6a027c31f32fb730cca2 +lib/codeql/rust/elements/internal/generated/Enum.qll 3ed69005ab7cf68745a67cc9891bd68a83f6ab927febf077de9e4092cb373b0b 604fd03d1c46884b3c93e5bff3951ec41593320e1f7382c1a7143a64063827bc lib/codeql/rust/elements/internal/generated/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8 lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 @@ -563,7 +562,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126 -lib/codeql/rust/elements/internal/generated/ParentChild.qll 8a6e4335bcf6f7d72f5ed6ffba5448ae88b00323fe7dac6f406c8746c03ef2dc 867a0fb166b53d7a8218a02d671f117ba7ea4e67cb16abeea6e746dc5823b85e +lib/codeql/rust/elements/internal/generated/ParentChild.qll 2a7dd6ec90e4d557b36704a04bb9eb4191469126f960c52827e12c90e51c5343 37781e023a93982be30c9d80aee7c6d87d52cc934705db66f838604563391f95 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -578,7 +577,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll f207067167f8597ddf6de483372fc9e281d1661d3fc0a5da0d6d6bd7e32aa9c7 1c27c65c3ab4d07553bbd269c6737576feca3f5c29c8b02f81a0d65c209d4621 +lib/codeql/rust/elements/internal/generated/Raw.qll 22bb3aa871d1dcac60bfa46393da911f95467065e52bb78981d17469c7854c93 3ccc518319d79f3c8d9e9901a5665ab4c889253781edf76fcbc3de64dff91069 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b @@ -594,7 +593,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 1a6c87d3c5602e3d02268ebe2463a4ac64614ad25e8966a9bdb9c0ef58991365 cc1fe16d70cdce41a12e41a8f80cc38bdd7efa49c1544e35342fcf3cd26b8219 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 834b87cd93f0c5b41736fb52a6c25fd0e3bdce41d5a64cb3d0810c54e90507f4 ec42f2dfa322044ceaaf90d278f0e7e751d63710facbaf3f5ee69ca3c64ecd06 -lib/codeql/rust/elements/internal/generated/Struct.qll 999da1b46e40d6e03fd2338fea02429462877c329c5d1338618cbd886a81567e daa7ff7bd32c554462e0a1502d8319cb5e734e056d0564e06596e416e2b88e9d +lib/codeql/rust/elements/internal/generated/Struct.qll 56775b98f793c108bd0eb8f35dbbc4983c170138e92c7378c24f45d2e612ca39 7bd83f2686f2f7a6b55b82156028c1951fde4c3ac9fc0248b1bb28f35b949fd4 lib/codeql/rust/elements/internal/generated/StructExpr.qll e77702890561102af38f52d836729e82569c964f8d4c7e680b27992c1ff0f141 23dc51f68107ab0e5c9dd88a6bcc85bb66e8e0f4064cb4d416f50f2ba5db698c lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -603,7 +602,7 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 5da528a51a6a5db9 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll 1a95a1bd9f64fb18e9571657cf2d02a8b13c747048a1f0f74baf31b91f0392ad fc274e414ff4ed54386046505920de92755ad0b4d39a7523cdffa4830bd53b37 -lib/codeql/rust/elements/internal/generated/Synth.qll 61147c264e863dc5234b391ad2b7a01e0a2fe99e18ea237ba06e31340fd0a50a 6d33624a9b571d05aba1e9459a211f75b762e72fa716259abcd994f5098e15a6 +lib/codeql/rust/elements/internal/generated/Synth.qll 00f19e9d0a03b9d8e42caceda06da69d67280be16f67f3459f0adec8f9f8cacd ebcc049fe946540277893bf095787c061cd119c9d4eb708cec9df93257780e8d lib/codeql/rust/elements/internal/generated/SynthConstructors.qll f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -620,12 +619,13 @@ lib/codeql/rust/elements/internal/generated/TypeAlias.qll 0d0c97d9e9213b8f0390b3 lib/codeql/rust/elements/internal/generated/TypeArg.qll 80245e4b52bef30e5033d4c765c72531324385deea1435dc623290271ff05b1d 097926e918dcd897ea1609010c5490dbf45d4d8f4cffb9166bcadf316a2f1558 lib/codeql/rust/elements/internal/generated/TypeBound.qll ed27681b76b8f3ad790daad4a08f3bc243452821246bcb240b1d925bc1c362a3 8fdc0caf91f1894d8711d68547185eb029446898b66f60fc0d10ef862cd6292e lib/codeql/rust/elements/internal/generated/TypeBoundList.qll c5d43dc27075a0d5370ba4bc56b4e247357af5d2989625deff284e7846a3a48b c33c87d080e6eb6df01e98b8b0031d780472fcaf3a1ed156a038669c0e05bf0a +lib/codeql/rust/elements/internal/generated/TypeItem.qll 940b197a06b11621db980ae8ff8c0c6684cebeff62987ad8267f3838aa768d0a ab0e3b6e23acd1970ea4e2a32bef3cced27072ec9c5d16428626ec2632b33d14 lib/codeql/rust/elements/internal/generated/TypeParam.qll 81a8d39f1e227de031187534e5d8e2c34f42ad3433061d686cadfbdd0df54285 893795d62b5b89997574e9057701d308bea2c4dca6053042c5308c512137e697 lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31a6453a2a60747420f8bc2e689d5163cab4fec71bb eb80e3947649e511e7f3555ffc1fd87199e7a32624449ca80ffad996cdf9e2f3 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll 456504e6a32991ba17ca65f97636f4dfb86c758c7f8509aaca1b0d0432231dfe c96068edfec3e0755a7726426a10996455ee9f0f2d678af258719f1943a3063e +lib/codeql/rust/elements/internal/generated/Union.qll 4df8fc632f7bcc0cbd564cd1c148c1a2438f26e6a83cd6470e15870120f677fe c74dea0a4ddfd581b9208d7907ea134219cafd217294315acf5c595de38a61f3 lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll cedde7ccf689e3a2a246113be94544c206c56fb1c01b83b074e1f6edd3acfced f022ea4c653d1b5f311917efde8e59be27394ce7f6abf2561bb1e42f93f74adf @@ -640,7 +640,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 0353aab87c49569e1fbf58 lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae017a329352a5b27a6b9e73dd5521d627f680e810c6c59e 4b913b548ba27ff3c82fcd32cf996ff329cb57d176d3bebd0fcef394486ea499 lib/codeql/rust/elements/internal/generated/YeetExpr.qll cac328200872a35337b4bcb15c851afb4743f82c080f9738d295571eb01d7392 94af734eea08129b587fed849b643e7572800e8330c0b57d727d41abda47930b lib/codeql/rust/elements/internal/generated/YieldExpr.qll 37e5f0c1e373a22bbc53d8b7f2c0e1f476e5be5080b8437c5e964f4e83fad79a 4a9a68643401637bf48e5c2b2f74a6bf0ddcb4ff76f6bffb61d436b685621e85 -lib/codeql/rust/elements.qll 5cc722db81259ee5d5b9cbed1a4d2795060ad996c80fd7121e7ce43dc392b62f 5cc722db81259ee5d5b9cbed1a4d2795060ad996c80fd7121e7ce43dc392b62f +lib/codeql/rust/elements.qll 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af test/extractor-tests/generated/Abi/Abi.ql 086ed104ab1a7e7fe5c1ed29e03f1719a797c7096c738868bf6ebe872ab8fdaa fe23fe67ab0d9201e1177ea3f844b18ed428e13e3ce77381bf2b6910adfa3a0e test/extractor-tests/generated/ArgList/ArgList.ql da97b5b25418b2aa8cb8df793f48870c89fa00759cdade8ddba60d7f1f4bbc01 acfd5d2caf67282ad2d57b961068472100482d0f770a52a3c00214c647d18c75 test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql 42b365276aa43e2cad588338463542d3ce1dd0db3a428621554584b07a1431d5 08a66a8b69af35ee3bc64c35c453a19a6c9881cc6cc7e65275d1fff056121270 @@ -677,7 +677,7 @@ test/extractor-tests/generated/ConstParam/ConstParam.ql 6facb2402e1cbf23d836f619 test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 58b5046a4da06a4cd2d942720603313126888b2249b218bef6f7c44ca469ccfa eeb84a04deb4c4496b7f9b38798cc7fdc179a486c8beaa0b33bf87e7f9482b1a test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql ff54195d2e09424faaac4e145a40208bf0e57acc57dfa8247b3751862a317c4b 583d5b98aa31a9af6ad73df000ca529f57f67aa6daaa50ca5673a56eb57bf507 -test/extractor-tests/generated/Enum/Enum.ql 64ed7f25aaf5eff67687cd3aa2690017fb6f9651c959aed7b655d486be0e0c5b 1df131d8e12c4594715ed31191e960792c21727b403dce59207c514671e88d62 +test/extractor-tests/generated/Enum/Enum.ql 9a612c818952e867e2665d8c919905d563bb76191f3f522370c7344863589205 c32cf1973082f5d519e3eb04fca0309b3dd9637cf34e58c10a8e34cd9fe36d2d test/extractor-tests/generated/ExprStmt/ExprStmt.ql 7c62a97f7f910ae6e0e9aff7fdd78b369d21257ccab52afe6307ddea2e15dad1 2d32a366c4acbea3136ff1f9f9dadf76b148f82ad1d7170f02efd977d8a07ae9 test/extractor-tests/generated/ExternBlock/ExternBlock.ql b61e37f1c387bc91be127b5425089f9f1d687f4f1708cad334c0bb00dba5bae3 dc03f0f0912b2cfbce74c3bc31d261cdbea740847212ac3472ecf719d8eb71f7 test/extractor-tests/generated/ExternCrate/ExternCrate.ql 55d2d9d32cb5e894cc2ee5242d688aaa8428ba7757cccea67d1c064db6de2514 46a2c57660a42ee6eaa532b0c86f4cc2d3de795c33ee7cadbff650bd0f23206b @@ -761,7 +761,7 @@ test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql a009f2ba47f3b082db test/extractor-tests/generated/SourceFile/SourceFile.ql 19ae5570a88b9e2d82db66685a31b01cc8e0c86c622a4bfaabe8c5b397b27eea 60e2ba5eb82518d6408254fb4ec01277b6c6c0e4316d4f3cdc809da9c32c4a57 test/extractor-tests/generated/Static/Static.ql ec2e5cf081453bbae16216d1250f5d8324be81d1d6ad8744e969934d2ef21b0d 7bde1afbafdc16f9c999e902626c77dc0efe3f1b3d687e9fe1a3e9db6b1f62a9 test/extractor-tests/generated/StmtList/StmtList.ql 4c6b9d5d8fd7535f97d81b968d4f67fc50e10c5d0f980e7c2704bbf5cd07481e ad972adb8d9a7892e6f8a12d96649340441f947afc99e633ea438c4d5c795ce4 -test/extractor-tests/generated/Struct/Struct.ql 846ef41cb4dfbe94f495fd68de26a68609e7b5ab0830d6ee844a67afea3ac591 6799a1246da45ecbf1f1040ffb7d1a5578ab9e236cce3029e6cc17c93b3bf138 +test/extractor-tests/generated/Struct/Struct.ql 57e837e3c665d24870d99492c8874441ce1445b314863ae405cc6f721d2ac14c ddeee05945e91356a1dc66976ef4830230b1c024ace02f974ff42c8193fd3464 test/extractor-tests/generated/StructExpr/StructExpr.ql 3b98205260e750cc7adc42b318deef2854cc3b4f921cbcfffc6d701553af3903 368bccf01db2fa069dca30d9fb0878f8e6a88d4ce58b333b24a18620933e4c91 test/extractor-tests/generated/StructExprField/StructExprField.ql b65375963aa24f0d1dd4c10784e32ab8c337ad431462ea1d081a0e456fbb1362 7f5a49e8df03ed0890b51c2e941d636fbbf70445a53d3af2c0f34a04f26bc6ef test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 01dc3ef66d79836a3d372464f05454015648ab093f9547c5d9c5d55271acb718 83625301c097fa38d4e6021ea28b8adc6338076c8c2aa88a86a22aac412839f6 @@ -787,7 +787,7 @@ test/extractor-tests/generated/TypeBound/TypeBound.ql 41d0a7b6538de12797c5aa4152 test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 6827529eca62f5e7be87538af6231099f5932f39d8694f7a76369273b93f28ea 539dac4ccda7e51b7ae1a9e05d8a56a98176d9de25d5ed4347ebe2fbea8adeb1 test/extractor-tests/generated/TypeParam/TypeParam.ql c5f8f62f2877c719c3cf069f9d0ca83cebc14f7611c6c2dce86c85114ea2635c 751c630986f35a8d0d32fbeb61ca6ff801c96cd1829dbccc874fbf5f5158e98d test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql a7b7a93104fff28515154cf8e79045d3eea2494b5c46f1caf36639c53b1c64a7 070ee2e1664e3291646ea56681b5c93331f94dcc519deb28622beca3e26e16f3 -test/extractor-tests/generated/Union/Union.ql 71e367ea4b541ee4ae831c69d0dfa2d1ba0c2d3dd9e9aba770dd00fd1f546ef8 61dbc6364a9f486d0de8c27cacbb9d1027282d92f89058e93e2c376588d809f9 +test/extractor-tests/generated/Union/Union.ql 427757ef5aa4e95fde8f5047263cbbbc7e2614f9efabc51c9a5f9ba8d9b68310 d1d8840a4324e5727e1ecf6e696741e902b807b39ec82686b94211803eb2d0ba test/extractor-tests/generated/Use/Use.ql 1f084f3b49c910c6e01d2a81be2443e84c2836a5855b89874965efaf25d17511 d5bf37ba65f4d280312ca798bae22d2735c00cf91ff05ed6321f69b76b4551bc test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 46ff2cf0fc8b561b21f8dff3230550f2feafbe52a7ea8b28bf183abef94ff241 92646f3bd15a8cf4c23ee9de4d857ac5c147e570ef0eb223423a109b4b79aedf test/extractor-tests/generated/UseTree/UseTree.ql 3c2bc924b54b9af5c95784023d4098924571ba464c5982124acea712c3ce0e93 8d9f963b61a9a8a83efd93438ce8b43d4aa763493338ad9afd2a3dc7a440892d diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 22c7d3a1549..dd6ca829eed 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -3,7 +3,6 @@ /lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll linguist-generated /lib/codeql/rust/elements/Abi.qll linguist-generated /lib/codeql/rust/elements/Addressable.qll linguist-generated -/lib/codeql/rust/elements/Adt.qll linguist-generated /lib/codeql/rust/elements/ArgList.qll linguist-generated /lib/codeql/rust/elements/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/ArrayListExpr.qll linguist-generated @@ -170,6 +169,7 @@ /lib/codeql/rust/elements/TypeArg.qll linguist-generated /lib/codeql/rust/elements/TypeBound.qll linguist-generated /lib/codeql/rust/elements/TypeBoundList.qll linguist-generated +/lib/codeql/rust/elements/TypeItem.qll linguist-generated /lib/codeql/rust/elements/TypeParam.qll linguist-generated /lib/codeql/rust/elements/TypeRepr.qll linguist-generated /lib/codeql/rust/elements/UnderscoreExpr.qll linguist-generated @@ -192,7 +192,6 @@ /lib/codeql/rust/elements/YieldExpr.qll linguist-generated /lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated -/lib/codeql/rust/elements/internal/AdtImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArrayExprInternal.qll linguist-generated @@ -417,6 +416,7 @@ /lib/codeql/rust/elements/internal/TypeArgImpl.qll linguist-generated /lib/codeql/rust/elements/internal/TypeBoundConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/TypeBoundListConstructor.qll linguist-generated +/lib/codeql/rust/elements/internal/TypeItemImpl.qll linguist-generated /lib/codeql/rust/elements/internal/TypeParamConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/TypeReprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/UnderscoreExprConstructor.qll linguist-generated @@ -447,7 +447,6 @@ /lib/codeql/rust/elements/internal/YieldExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Abi.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Addressable.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/Adt.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArgList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll linguist-generated @@ -622,6 +621,7 @@ /lib/codeql/rust/elements/internal/generated/TypeArg.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeBound.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeBoundList.qll linguist-generated +/lib/codeql/rust/elements/internal/generated/TypeItem.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeParam.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeRepr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 9c7d0be306f..1377c543f78 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -6,7 +6,6 @@ import codeql.files.FileSystem import codeql.rust.elements.Abi import codeql.rust.elements.Addressable -import codeql.rust.elements.Adt import codeql.rust.elements.ArgList import codeql.rust.elements.ArrayExpr import codeql.rust.elements.ArrayListExpr @@ -173,6 +172,7 @@ import codeql.rust.elements.TypeAlias import codeql.rust.elements.TypeArg import codeql.rust.elements.TypeBound import codeql.rust.elements.TypeBoundList +import codeql.rust.elements.TypeItem import codeql.rust.elements.TypeParam import codeql.rust.elements.TypeRepr import codeql.rust.elements.UnderscoreExpr diff --git a/rust/ql/lib/codeql/rust/elements/Adt.qll b/rust/ql/lib/codeql/rust/elements/Adt.qll deleted file mode 100644 index c8fa30d743d..00000000000 --- a/rust/ql/lib/codeql/rust/elements/Adt.qll +++ /dev/null @@ -1,13 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the public class `Adt`. - */ - -private import internal.AdtImpl -import codeql.rust.elements.Item -import codeql.rust.elements.MacroItems - -/** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - */ -final class Adt = Impl::Adt; diff --git a/rust/ql/lib/codeql/rust/elements/Enum.qll b/rust/ql/lib/codeql/rust/elements/Enum.qll index 9d52b558f53..9bad986cef5 100644 --- a/rust/ql/lib/codeql/rust/elements/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/Enum.qll @@ -4,13 +4,8 @@ */ private import internal.EnumImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name +import codeql.rust.elements.TypeItem import codeql.rust.elements.VariantList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause /** * An enum declaration. diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index 7627f866f05..fb9bec418da 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -4,13 +4,8 @@ */ private import internal.StructImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr import codeql.rust.elements.FieldList -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.TypeItem /** * A Struct. For example: diff --git a/rust/ql/lib/codeql/rust/elements/TypeItem.qll b/rust/ql/lib/codeql/rust/elements/TypeItem.qll new file mode 100644 index 00000000000..48d22478df0 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/TypeItem.qll @@ -0,0 +1,18 @@ +// generated by codegen, do not edit +/** + * This module provides the public class `TypeItem`. + */ + +private import internal.TypeItemImpl +import codeql.rust.elements.Attr +import codeql.rust.elements.GenericParamList +import codeql.rust.elements.Item +import codeql.rust.elements.MacroItems +import codeql.rust.elements.Name +import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause + +/** + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + */ +final class TypeItem = Impl::TypeItem; diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index 988a1cf9799..4fc8584c9fe 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -4,13 +4,8 @@ */ private import internal.UnionImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.TypeItem /** * A union declaration. diff --git a/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll similarity index 56% rename from rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll rename to rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll index 2243aed17a3..df7ebbcbbca 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll @@ -1,19 +1,19 @@ // generated by codegen, remove this comment if you wish to edit this file /** - * This module provides a hand-modifiable wrapper around the generated class `Adt`. + * This module provides a hand-modifiable wrapper around the generated class `TypeItem`. * * INTERNAL: Do not use. */ -private import codeql.rust.elements.internal.generated.Adt +private import codeql.rust.elements.internal.generated.TypeItem /** - * INTERNAL: This module contains the customizable definition of `Adt` and should not + * INTERNAL: This module contains the customizable definition of `TypeItem` and should not * be referenced directly. */ module Impl { /** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. */ - class Adt extends Generated::Adt { } + class TypeItem extends Generated::TypeItem { } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll deleted file mode 100644 index 385e3930fb8..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll +++ /dev/null @@ -1,45 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the generated definition of `Adt`. - * INTERNAL: Do not import directly. - */ - -private import codeql.rust.elements.internal.generated.Synth -private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl -import codeql.rust.elements.MacroItems - -/** - * INTERNAL: This module contains the fully generated definition of `Adt` and should not - * be referenced directly. - */ -module Generated { - /** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - * INTERNAL: Do not reference the `Generated::Adt` class directly. - * Use the subclass `Adt`, where the following predicates are available. - */ - class Adt extends Synth::TAdt, ItemImpl::Item { - /** - * Gets the `index`th derive macro expansion of this adt (0-based). - */ - MacroItems getDeriveMacroExpansion(int index) { - result = - Synth::convertMacroItemsFromRaw(Synth::convertAdtToRaw(this) - .(Raw::Adt) - .getDeriveMacroExpansion(index)) - } - - /** - * Gets any of the derive macro expansions of this adt. - */ - final MacroItems getADeriveMacroExpansion() { result = this.getDeriveMacroExpansion(_) } - - /** - * Gets the number of derive macro expansions of this adt. - */ - final int getNumberOfDeriveMacroExpansions() { - result = count(int i | exists(this.getDeriveMacroExpansion(i))) - } - } -} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll index b829ead848c..35ff29361bc 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl import codeql.rust.elements.VariantList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause /** * INTERNAL: This module contains the fully generated definition of `Enum` and should not @@ -29,53 +24,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Enum` class directly. * Use the subclass `Enum`, where the following predicates are available. */ - class Enum extends Synth::TEnum, AdtImpl::Adt { + class Enum extends Synth::TEnum, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Enum" } - /** - * Gets the `index`th attr of this enum (0-based). - */ - Attr getAttr(int index) { - result = Synth::convertAttrFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getAttr(index)) - } - - /** - * Gets any of the attrs of this enum. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this enum. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the generic parameter list of this enum, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertEnumToRaw(this) - .(Raw::Enum) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this enum, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - /** * Gets the variant list of this enum, if it exists. */ @@ -88,31 +39,5 @@ module Generated { * Holds if `getVariantList()` exists. */ final predicate hasVariantList() { exists(this.getVariantList()) } - - /** - * Gets the visibility of this enum, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this enum, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 9d6ec74a53e..2b51f614619 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -2656,7 +2656,7 @@ private module Impl { private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nVariantList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nVariantList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -2664,9 +2664,9 @@ private module Impl { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nVariantList = nName + 1 and - nVisibility = nVariantList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nVariantList = nWhereClause + 1 and ( none() or @@ -2687,15 +2687,15 @@ private module Impl { or index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" or - index = nName and result = e.getVariantList() and partialPredicateCall = "VariantList()" - or - index = nVariantList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" + index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" or index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and + result = e.getVariantList() and + partialPredicateCall = "VariantList()" ) ) } @@ -2862,18 +2862,18 @@ private module Impl { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { exists( - int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, int nFieldList, - int nGenericParamList, int nName, int nVisibility, int nWhereClause + int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and nDeriveMacroExpansion = nAttributeMacroExpansion + e.getNumberOfDeriveMacroExpansions() and nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and - nFieldList = nAttr + 1 and - nGenericParamList = nFieldList + 1 and + nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nFieldList = nWhereClause + 1 and ( none() or @@ -2888,9 +2888,7 @@ private module Impl { result = e.getAttr(index - nDeriveMacroExpansion) and partialPredicateCall = "Attr(" + (index - nDeriveMacroExpansion).toString() + ")" or - index = nAttr and result = e.getFieldList() and partialPredicateCall = "FieldList()" - or - index = nFieldList and + index = nAttr and result = e.getGenericParamList() and partialPredicateCall = "GenericParamList()" or @@ -2901,6 +2899,8 @@ private module Impl { index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and result = e.getFieldList() and partialPredicateCall = "FieldList()" ) ) } @@ -2955,7 +2955,7 @@ private module Impl { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nStructFieldList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nStructFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -2963,9 +2963,9 @@ private module Impl { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nStructFieldList = nName + 1 and - nVisibility = nStructFieldList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nStructFieldList = nWhereClause + 1 and ( none() or @@ -2986,17 +2986,15 @@ private module Impl { or index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" or - index = nName and - result = e.getStructFieldList() and - partialPredicateCall = "StructFieldList()" - or - index = nStructFieldList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" + index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" or index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and + result = e.getStructFieldList() and + partialPredicateCall = "StructFieldList()" ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 7682b4b99f4..5cc81a8777b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -5958,26 +5958,6 @@ module Raw { ) } - /** - * INTERNAL: Do not use. - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - */ - class Adt extends @adt, Item { - /** - * Gets the `index`th derive macro expansion of this adt (0-based). - */ - MacroItems getDeriveMacroExpansion(int index) { - adt_derive_macro_expansions(this, index, result) - } - - /** - * Gets the number of derive macro expansions of this adt. - */ - int getNumberOfDeriveMacroExpansions() { - result = count(int i | adt_derive_macro_expansions(this, i, _)) - } - } - /** * INTERNAL: Do not use. * An inline assembly expression. For example: @@ -6824,6 +6804,56 @@ module Raw { ) } + /** + * INTERNAL: Do not use. + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + */ + class TypeItem extends @type_item, Item { + /** + * Gets the `index`th derive macro expansion of this type item (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + type_item_derive_macro_expansions(this, index, result) + } + + /** + * Gets the number of derive macro expansions of this type item. + */ + int getNumberOfDeriveMacroExpansions() { + result = count(int i | type_item_derive_macro_expansions(this, i, _)) + } + + /** + * Gets the `index`th attr of this type item (0-based). + */ + Attr getAttr(int index) { type_item_attrs(this, index, result) } + + /** + * Gets the number of attrs of this type item. + */ + int getNumberOfAttrs() { result = count(int i | type_item_attrs(this, i, _)) } + + /** + * Gets the generic parameter list of this type item, if it exists. + */ + GenericParamList getGenericParamList() { type_item_generic_param_lists(this, result) } + + /** + * Gets the name of this type item, if it exists. + */ + Name getName() { type_item_names(this, result) } + + /** + * Gets the visibility of this type item, if it exists. + */ + Visibility getVisibility() { type_item_visibilities(this, result) } + + /** + * Gets the where clause of this type item, if it exists. + */ + WhereClause getWhereClause() { type_item_where_clauses(this, result) } + } + /** * INTERNAL: Do not use. * A `use` statement. For example: @@ -6992,49 +7022,19 @@ module Raw { * enum E {A, B(i32), C {x: i32}} * ``` */ - class Enum extends @enum, Adt { + class Enum extends @enum, TypeItem { override string toString() { result = "Enum" } - /** - * Gets the `index`th attr of this enum (0-based). - */ - Attr getAttr(int index) { enum_attrs(this, index, result) } - - /** - * Gets the number of attrs of this enum. - */ - int getNumberOfAttrs() { result = count(int i | enum_attrs(this, i, _)) } - - /** - * Gets the generic parameter list of this enum, if it exists. - */ - GenericParamList getGenericParamList() { enum_generic_param_lists(this, result) } - - /** - * Gets the name of this enum, if it exists. - */ - Name getName() { enum_names(this, result) } - /** * Gets the variant list of this enum, if it exists. */ VariantList getVariantList() { enum_variant_lists(this, result) } - - /** - * Gets the visibility of this enum, if it exists. - */ - Visibility getVisibility() { enum_visibilities(this, result) } - - /** - * Gets the where clause of this enum, if it exists. - */ - WhereClause getWhereClause() { enum_where_clauses(this, result) } } private Element getImmediateChildOfEnum(Enum e, int index) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nVariantList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nVariantList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -7042,9 +7042,9 @@ module Raw { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nVariantList = nName + 1 and - nVisibility = nVariantList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nVariantList = nWhereClause + 1 and ( none() or @@ -7058,11 +7058,11 @@ module Raw { or index = nGenericParamList and result = e.getName() or - index = nName and result = e.getVariantList() - or - index = nVariantList and result = e.getVisibility() + index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getVariantList() ) ) } @@ -7473,59 +7473,29 @@ module Raw { * } * ``` */ - class Struct extends @struct, Adt { + class Struct extends @struct, TypeItem { override string toString() { result = "Struct" } - /** - * Gets the `index`th attr of this struct (0-based). - */ - Attr getAttr(int index) { struct_attrs(this, index, result) } - - /** - * Gets the number of attrs of this struct. - */ - int getNumberOfAttrs() { result = count(int i | struct_attrs(this, i, _)) } - /** * Gets the field list of this struct, if it exists. */ FieldList getFieldList() { struct_field_lists_(this, result) } - - /** - * Gets the generic parameter list of this struct, if it exists. - */ - GenericParamList getGenericParamList() { struct_generic_param_lists(this, result) } - - /** - * Gets the name of this struct, if it exists. - */ - Name getName() { struct_names(this, result) } - - /** - * Gets the visibility of this struct, if it exists. - */ - Visibility getVisibility() { struct_visibilities(this, result) } - - /** - * Gets the where clause of this struct, if it exists. - */ - WhereClause getWhereClause() { struct_where_clauses(this, result) } } private Element getImmediateChildOfStruct(Struct e, int index) { exists( - int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, int nFieldList, - int nGenericParamList, int nName, int nVisibility, int nWhereClause + int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and nDeriveMacroExpansion = nAttributeMacroExpansion + e.getNumberOfDeriveMacroExpansions() and nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and - nFieldList = nAttr + 1 and - nGenericParamList = nFieldList + 1 and + nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nFieldList = nWhereClause + 1 and ( none() or @@ -7535,15 +7505,15 @@ module Raw { or result = e.getAttr(index - nDeriveMacroExpansion) or - index = nAttr and result = e.getFieldList() - or - index = nFieldList and result = e.getGenericParamList() + index = nAttr and result = e.getGenericParamList() or index = nGenericParamList and result = e.getName() or index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getFieldList() ) ) } @@ -7654,49 +7624,19 @@ module Raw { * union U { f1: u32, f2: f32 } * ``` */ - class Union extends @union, Adt { + class Union extends @union, TypeItem { override string toString() { result = "Union" } - /** - * Gets the `index`th attr of this union (0-based). - */ - Attr getAttr(int index) { union_attrs(this, index, result) } - - /** - * Gets the number of attrs of this union. - */ - int getNumberOfAttrs() { result = count(int i | union_attrs(this, i, _)) } - - /** - * Gets the generic parameter list of this union, if it exists. - */ - GenericParamList getGenericParamList() { union_generic_param_lists(this, result) } - - /** - * Gets the name of this union, if it exists. - */ - Name getName() { union_names(this, result) } - /** * Gets the struct field list of this union, if it exists. */ StructFieldList getStructFieldList() { union_struct_field_lists(this, result) } - - /** - * Gets the visibility of this union, if it exists. - */ - Visibility getVisibility() { union_visibilities(this, result) } - - /** - * Gets the where clause of this union, if it exists. - */ - WhereClause getWhereClause() { union_where_clauses(this, result) } } private Element getImmediateChildOfUnion(Union e, int index) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nStructFieldList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nStructFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -7704,9 +7644,9 @@ module Raw { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nStructFieldList = nName + 1 and - nVisibility = nStructFieldList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nStructFieldList = nWhereClause + 1 and ( none() or @@ -7720,11 +7660,11 @@ module Raw { or index = nGenericParamList and result = e.getName() or - index = nName and result = e.getStructFieldList() - or - index = nStructFieldList and result = e.getVisibility() + index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getStructFieldList() ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 8910d269169..07c4657c651 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr import codeql.rust.elements.FieldList -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl /** * INTERNAL: This module contains the fully generated definition of `Struct` and should not @@ -30,27 +25,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, AdtImpl::Adt { + class Struct extends Synth::TStruct, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Struct" } - /** - * Gets the `index`th attr of this struct (0-based). - */ - Attr getAttr(int index) { - result = - Synth::convertAttrFromRaw(Synth::convertStructToRaw(this).(Raw::Struct).getAttr(index)) - } - - /** - * Gets any of the attrs of this struct. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this struct. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - /** * Gets the field list of this struct, if it exists. */ @@ -63,62 +40,5 @@ module Generated { * Holds if `getFieldList()` exists. */ final predicate hasFieldList() { exists(this.getFieldList()) } - - /** - * Gets the generic parameter list of this struct, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this struct, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertStructToRaw(this).(Raw::Struct).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - - /** - * Gets the visibility of this struct, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this struct, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index b5fc41677b2..8b22dbbac9d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -688,11 +688,6 @@ module Synth { */ class TAddressable = TItem or TVariant; - /** - * INTERNAL: Do not use. - */ - class TAdt = TEnum or TStruct or TUnion; - /** * INTERNAL: Do not use. */ @@ -769,8 +764,8 @@ module Synth { * INTERNAL: Do not use. */ class TItem = - TAdt or TAsmExpr or TAssocItem or TExternBlock or TExternCrate or TExternItem or TImpl or - TMacroDef or TMacroRules or TModule or TTrait or TTraitAlias or TUse; + TAsmExpr or TAssocItem or TExternBlock or TExternCrate or TExternItem or TImpl or TMacroDef or + TMacroRules or TModule or TTrait or TTraitAlias or TTypeItem or TUse; /** * INTERNAL: Do not use. @@ -820,6 +815,11 @@ module Synth { */ class TToken = TComment; + /** + * INTERNAL: Do not use. + */ + class TTypeItem = TEnum or TStruct or TUnion; + /** * INTERNAL: Do not use. */ @@ -2032,18 +2032,6 @@ module Synth { result = convertVariantFromRaw(e) } - /** - * INTERNAL: Do not use. - * Converts a raw DB element to a synthesized `TAdt`, if possible. - */ - TAdt convertAdtFromRaw(Raw::Element e) { - result = convertEnumFromRaw(e) - or - result = convertStructFromRaw(e) - or - result = convertUnionFromRaw(e) - } - /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TArrayExpr`, if possible. @@ -2379,8 +2367,6 @@ module Synth { * Converts a raw DB element to a synthesized `TItem`, if possible. */ TItem convertItemFromRaw(Raw::Element e) { - result = convertAdtFromRaw(e) - or result = convertAsmExprFromRaw(e) or result = convertAssocItemFromRaw(e) @@ -2403,6 +2389,8 @@ module Synth { or result = convertTraitAliasFromRaw(e) or + result = convertTypeItemFromRaw(e) + or result = convertUseFromRaw(e) } @@ -2534,6 +2522,18 @@ module Synth { */ TToken convertTokenFromRaw(Raw::Element e) { result = convertCommentFromRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a raw DB element to a synthesized `TTypeItem`, if possible. + */ + TTypeItem convertTypeItemFromRaw(Raw::Element e) { + result = convertEnumFromRaw(e) + or + result = convertStructFromRaw(e) + or + result = convertUnionFromRaw(e) + } + /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TTypeRepr`, if possible. @@ -3600,18 +3600,6 @@ module Synth { result = convertVariantToRaw(e) } - /** - * INTERNAL: Do not use. - * Converts a synthesized `TAdt` to a raw DB element, if possible. - */ - Raw::Element convertAdtToRaw(TAdt e) { - result = convertEnumToRaw(e) - or - result = convertStructToRaw(e) - or - result = convertUnionToRaw(e) - } - /** * INTERNAL: Do not use. * Converts a synthesized `TArrayExpr` to a raw DB element, if possible. @@ -3947,8 +3935,6 @@ module Synth { * Converts a synthesized `TItem` to a raw DB element, if possible. */ Raw::Element convertItemToRaw(TItem e) { - result = convertAdtToRaw(e) - or result = convertAsmExprToRaw(e) or result = convertAssocItemToRaw(e) @@ -3971,6 +3957,8 @@ module Synth { or result = convertTraitAliasToRaw(e) or + result = convertTypeItemToRaw(e) + or result = convertUseToRaw(e) } @@ -4102,6 +4090,18 @@ module Synth { */ Raw::Element convertTokenToRaw(TToken e) { result = convertCommentToRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TTypeItem` to a raw DB element, if possible. + */ + Raw::Element convertTypeItemToRaw(TTypeItem e) { + result = convertEnumToRaw(e) + or + result = convertStructToRaw(e) + or + result = convertUnionToRaw(e) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TTypeRepr` to a raw DB element, if possible. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll new file mode 100644 index 00000000000..5bc8bfb3c77 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll @@ -0,0 +1,126 @@ +// generated by codegen, do not edit +/** + * This module provides the generated definition of `TypeItem`. + * INTERNAL: Do not import directly. + */ + +private import codeql.rust.elements.internal.generated.Synth +private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.Attr +import codeql.rust.elements.GenericParamList +import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl +import codeql.rust.elements.MacroItems +import codeql.rust.elements.Name +import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause + +/** + * INTERNAL: This module contains the fully generated definition of `TypeItem` and should not + * be referenced directly. + */ +module Generated { + /** + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + * INTERNAL: Do not reference the `Generated::TypeItem` class directly. + * Use the subclass `TypeItem`, where the following predicates are available. + */ + class TypeItem extends Synth::TTypeItem, ItemImpl::Item { + /** + * Gets the `index`th derive macro expansion of this type item (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + result = + Synth::convertMacroItemsFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getDeriveMacroExpansion(index)) + } + + /** + * Gets any of the derive macro expansions of this type item. + */ + final MacroItems getADeriveMacroExpansion() { result = this.getDeriveMacroExpansion(_) } + + /** + * Gets the number of derive macro expansions of this type item. + */ + final int getNumberOfDeriveMacroExpansions() { + result = count(int i | exists(this.getDeriveMacroExpansion(i))) + } + + /** + * Gets the `index`th attr of this type item (0-based). + */ + Attr getAttr(int index) { + result = + Synth::convertAttrFromRaw(Synth::convertTypeItemToRaw(this).(Raw::TypeItem).getAttr(index)) + } + + /** + * Gets any of the attrs of this type item. + */ + final Attr getAnAttr() { result = this.getAttr(_) } + + /** + * Gets the number of attrs of this type item. + */ + final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } + + /** + * Gets the generic parameter list of this type item, if it exists. + */ + GenericParamList getGenericParamList() { + result = + Synth::convertGenericParamListFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getGenericParamList()) + } + + /** + * Holds if `getGenericParamList()` exists. + */ + final predicate hasGenericParamList() { exists(this.getGenericParamList()) } + + /** + * Gets the name of this type item, if it exists. + */ + Name getName() { + result = + Synth::convertNameFromRaw(Synth::convertTypeItemToRaw(this).(Raw::TypeItem).getName()) + } + + /** + * Holds if `getName()` exists. + */ + final predicate hasName() { exists(this.getName()) } + + /** + * Gets the visibility of this type item, if it exists. + */ + Visibility getVisibility() { + result = + Synth::convertVisibilityFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getVisibility()) + } + + /** + * Holds if `getVisibility()` exists. + */ + final predicate hasVisibility() { exists(this.getVisibility()) } + + /** + * Gets the where clause of this type item, if it exists. + */ + WhereClause getWhereClause() { + result = + Synth::convertWhereClauseFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getWhereClause()) + } + + /** + * Holds if `getWhereClause()` exists. + */ + final predicate hasWhereClause() { exists(this.getWhereClause()) } + } +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index e42eed69263..5d31edafa11 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl /** * INTERNAL: This module contains the fully generated definition of `Union` and should not @@ -29,53 +24,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, AdtImpl::Adt { + class Union extends Synth::TUnion, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Union" } - /** - * Gets the `index`th attr of this union (0-based). - */ - Attr getAttr(int index) { - result = Synth::convertAttrFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getAttr(index)) - } - - /** - * Gets any of the attrs of this union. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this union. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the generic parameter list of this union, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertUnionToRaw(this) - .(Raw::Union) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this union, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - /** * Gets the struct field list of this union, if it exists. */ @@ -90,33 +41,5 @@ module Generated { * Holds if `getStructFieldList()` exists. */ final predicate hasStructFieldList() { exists(this.getStructFieldList()) } - - /** - * Gets the visibility of this union, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this union, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertUnionToRaw(this) - .(Raw::Union) - .getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index e54d01f67a4..c467bf63916 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1876,8 +1876,7 @@ infer_type_reprs( ); @item = - @adt -| @asm_expr + @asm_expr | @assoc_item | @extern_block | @extern_crate @@ -1888,6 +1887,7 @@ infer_type_reprs( | @module | @trait | @trait_alias +| @type_item | @use ; @@ -2725,19 +2725,6 @@ yield_expr_exprs( int expr: @expr ref ); -@adt = - @enum -| @struct -| @union -; - -#keyset[id, index] -adt_derive_macro_expansions( - int id: @adt ref, - int index: int ref, - int derive_macro_expansion: @macro_items ref -); - asm_exprs( unique int id: @asm_expr ); @@ -3157,6 +3144,50 @@ trait_alias_where_clauses( int where_clause: @where_clause ref ); +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + uses( unique int id: @use ); @@ -3246,43 +3277,12 @@ enums( unique int id: @enum ); -#keyset[id, index] -enum_attrs( - int id: @enum ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -enum_generic_param_lists( - int id: @enum ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -enum_names( - int id: @enum ref, - int name: @name ref -); - #keyset[id] enum_variant_lists( int id: @enum ref, int variant_list: @variant_list ref ); -#keyset[id] -enum_visibilities( - int id: @enum ref, - int visibility: @visibility ref -); - -#keyset[id] -enum_where_clauses( - int id: @enum ref, - int where_clause: @where_clause ref -); - for_exprs( unique int id: @for_expr ); @@ -3476,43 +3476,12 @@ structs( unique int id: @struct ); -#keyset[id, index] -struct_attrs( - int id: @struct ref, - int index: int ref, - int attr: @attr ref -); - #keyset[id] struct_field_lists_( int id: @struct ref, int field_list: @field_list ref ); -#keyset[id] -struct_generic_param_lists( - int id: @struct ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -struct_names( - int id: @struct ref, - int name: @name ref -); - -#keyset[id] -struct_visibilities( - int id: @struct ref, - int visibility: @visibility ref -); - -#keyset[id] -struct_where_clauses( - int id: @struct ref, - int where_clause: @where_clause ref -); - type_aliases( unique int id: @type_alias ); @@ -3569,43 +3538,12 @@ unions( unique int id: @union ); -#keyset[id, index] -union_attrs( - int id: @union ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -union_generic_param_lists( - int id: @union ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -union_names( - int id: @union ref, - int name: @name ref -); - #keyset[id] union_struct_field_lists( int id: @union ref, int struct_field_list: @struct_field_list ref ); -#keyset[id] -union_visibilities( - int id: @union ref, - int visibility: @visibility ref -); - -#keyset[id] -union_where_clauses( - int id: @union ref, - int where_clause: @where_clause ref -); - while_exprs( unique int id: @while_expr ); diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 0aa1bda8041..d9843feecc3 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -26,10 +26,6 @@ query predicate getName(Enum x, Name getName) { toBeTested(x) and not x.isUnknown() and getName = x.getName() } -query predicate getVariantList(Enum x, VariantList getVariantList) { - toBeTested(x) and not x.isUnknown() and getVariantList = x.getVariantList() -} - query predicate getVisibility(Enum x, Visibility getVisibility) { toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() } @@ -37,3 +33,7 @@ query predicate getVisibility(Enum x, Visibility getVisibility) { query predicate getWhereClause(Enum x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getVariantList(Enum x, VariantList getVariantList) { + toBeTested(x) and not x.isUnknown() and getVariantList = x.getVariantList() +} diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index 25a980701c5..a4cf01bbfdc 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -18,10 +18,6 @@ query predicate getAttr(Struct x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) } -query predicate getFieldList(Struct x, FieldList getFieldList) { - toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() -} - query predicate getGenericParamList(Struct x, GenericParamList getGenericParamList) { toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() } @@ -37,3 +33,7 @@ query predicate getVisibility(Struct x, Visibility getVisibility) { query predicate getWhereClause(Struct x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getFieldList(Struct x, FieldList getFieldList) { + toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() +} diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index 9c555d1e590..922e8ef4a59 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -26,10 +26,6 @@ query predicate getName(Union x, Name getName) { toBeTested(x) and not x.isUnknown() and getName = x.getName() } -query predicate getStructFieldList(Union x, StructFieldList getStructFieldList) { - toBeTested(x) and not x.isUnknown() and getStructFieldList = x.getStructFieldList() -} - query predicate getVisibility(Union x, Visibility getVisibility) { toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() } @@ -37,3 +33,7 @@ query predicate getVisibility(Union x, Visibility getVisibility) { query predicate getWhereClause(Union x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getStructFieldList(Union x, StructFieldList getStructFieldList) { + toBeTested(x) and not x.isUnknown() and getStructFieldList = x.getStructFieldList() +} From 5c604fce48df6421995aa6a7bfd8d766340346c6 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 17 Dec 2025 11:52:28 +0100 Subject: [PATCH 177/194] Rust: Fix bad join Before ``` Evaluated relational algebra for predicate TypeInference::MethodResolution::MethodCall.getTrait/0#dispred#fc13ba6e@914858bt with tuple counts: 153112 ~2% {2} r1 = SCAN `Operation::Operation.isOverloaded/3#f0e64084` OUTPUT In.0, In.1 153112 ~2% {2} | STREAM DEDUP 18807 ~0% {2} r2 = JOIN `TypeInference::getCallExprTraitQualifier/1#c084fe9f` WITH TypeInference::MethodResolution::MethodCallCallExpr#6eae461f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 65859035 ~3% {3} r3 = JOIN `_IndexExpr::Generated::IndexExpr#9975e37a_TypeInference::MethodResolution::MethodCallIndexExpr.isInM__#shared` WITH Trait::Generated::Trait#ecf50173 CARTESIAN PRODUCT OUTPUT Rhs.0, _, Lhs.0 65859035 ~0% {3} | REWRITE WITH Out.1 := "core::ops::index::Index" 11191 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0 671 ~0% {1} r4 = JOIN IndexExpr::Generated::IndexExpr#9975e37a WITH `TypeInference::MethodResolution::MethodCallIndexExpr.isInMutableContext/0#dispred#8c8ad425` ON FIRST 1 OUTPUT Lhs.0 3948835 ~2% {3} | JOIN WITH Trait::Generated::Trait#ecf50173 CARTESIAN PRODUCT OUTPUT Rhs.0, _, Lhs.0 3948835 ~2% {3} | REWRITE WITH Out.1 := "core::ops::index::IndexMut" 671 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0 183781 ~0% {2} r5 = r1 UNION r2 UNION r3 UNION r4 return r5 ``` After ``` Evaluated relational algebra for predicate TypeInference::MethodResolution::MethodCall.getTrait/0#dispred#fc13ba6e@1b4a55e3 with tuple counts: 153112 ~2% {2} r1 = SCAN `Operation::Operation.isOverloaded/3#f0e64084` OUTPUT In.0, In.1 153112 ~2% {2} | STREAM DEDUP 11191 ~0% {2} r2 = JOIN `_IndexExpr::Generated::IndexExpr#9975e37a_TypeInference::MethodResolution::MethodCallIndexExpr.isInM__#shared` WITH Stdlib::IndexTrait#e80543a5 CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0 18807 ~0% {2} r3 = JOIN `TypeInference::getCallExprTraitQualifier/1#c084fe9f` WITH TypeInference::MethodResolution::MethodCallCallExpr#6eae461f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 671 ~0% {1} r4 = JOIN IndexExpr::Generated::IndexExpr#9975e37a WITH `TypeInference::MethodResolution::MethodCallIndexExpr.isInMutableContext/0#dispred#8c8ad425` ON FIRST 1 OUTPUT Lhs.0 671 ~1% {2} | JOIN WITH Stdlib::IndexMutTrait#4d6c31bd CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0 183781 ~0% {2} r5 = r1 UNION r2 UNION r3 UNION r4 return r5 ``` --- .../ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll | 13 +++++++++++++ rust/ql/lib/codeql/rust/internal/TypeInference.qll | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 00e03053654..ec0e38f5739 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -250,6 +250,19 @@ class IndexTrait extends Trait { } } +/** + * The [`IndexMut` trait][1]. + * + * [1]: https://doc.rust-lang.org/std/ops/trait.IndexMut.html + */ +class IndexMutTrait extends Trait { + pragma[nomagic] + IndexMutTrait() { this.getCanonicalPath() = "core::ops::index::IndexMut" } + + /** Gets the `index_mut` function. */ + Function getIndexMutFunction() { result = this.(TraitItemNode).getAssocItem("index_mut") } +} + /** * The [`Box` struct][1]. * diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 602f964df0f..488a391150a 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1786,8 +1786,8 @@ private module MethodResolution { override Trait getTrait() { if this.isInMutableContext() - then result.getCanonicalPath() = "core::ops::index::IndexMut" - else result.getCanonicalPath() = "core::ops::index::Index" + then result instanceof IndexMutTrait + else result instanceof IndexTrait } } From 08339fe0dfcb56fa5bd0a0b954e47e7f5ff6abf0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 17 Dec 2025 13:08:11 +0100 Subject: [PATCH 178/194] Shared: Add library for unbound lists --- .../typeinference/internal/TypeInference.qll | 121 ++------------ shared/util/codeql/util/UnboundList.qll | 153 ++++++++++++++++++ 2 files changed, 162 insertions(+), 112 deletions(-) create mode 100644 shared/util/codeql/util/UnboundList.qll diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 4bb348979c1..f53f15b5a6a 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -224,25 +224,17 @@ signature module InputSig1 { module Make1 Input1> { private import Input1 + private import codeql.util.UnboundList as UnboundListImpl - private module TypeParameter { - private import codeql.util.DenseRank + private module UnboundListInput implements UnboundListImpl::InputSig { + class Element = TypeParameter; - private module DenseRankInput implements DenseRankInputSig { - class Ranked = TypeParameter; + predicate getId = getTypeParameterId/1; - predicate getRank = getTypeParameterId/1; - } - - int getRank(TypeParameter tp) { tp = DenseRank::denseRank(result) } - - string encode(TypeParameter tp) { result = getRank(tp).toString() } - - bindingset[s] - TypeParameter decode(string s) { encode(result) = s } + predicate getLengthLimit = getTypePathLimit/0; } - final private class String = string; + private import UnboundListImpl::Make /** * A path into a type. @@ -274,101 +266,10 @@ module Make1 Input1> { * implementation uses unique type parameter identifiers, in order to not mix * up type parameters from different types. */ - class TypePath extends String { - bindingset[this] - TypePath() { exists(this) } - - bindingset[this] - private TypeParameter getTypeParameter(int i) { - result = TypeParameter::decode(this.splitAt(".", i)) - } - - /** Gets a textual representation of this type path. */ - bindingset[this] - string toString() { - result = - concat(int i, TypeParameter tp | - tp = this.getTypeParameter(i) - | - tp.toString(), "." order by i - ) - } - - /** Holds if this type path is empty. */ - predicate isEmpty() { this = "" } - - /** Gets the length of this path. */ - bindingset[this] - pragma[inline_late] - int length() { - // Same as - // `result = count(this.indexOf("."))` - // but performs better because it doesn't use an aggregate - result = this.regexpReplaceAll("[0-9]+", "").length() - } - - /** Gets the path obtained by appending `suffix` onto this path. */ - bindingset[this, suffix] - TypePath append(TypePath suffix) { - result = this + suffix and - ( - not exists(getTypePathLimit()) - or - result.length() <= getTypePathLimit() - ) - } - - /** - * Gets the path obtained by appending `suffix` onto this path. - * - * Unlike `append`, this predicate has `result` in the binding set, - * so there is no need to check the length of `result`. - */ - bindingset[this, result] - TypePath appendInverse(TypePath suffix) { suffix = result.stripPrefix(this) } - - /** Gets the path obtained by removing `prefix` from this path. */ - bindingset[this, prefix] - TypePath stripPrefix(TypePath prefix) { this = prefix + result } - - /** Holds if this path starts with `tp`, followed by `suffix`. */ - bindingset[this] - predicate isCons(TypeParameter tp, TypePath suffix) { - exists(string regexp | regexp = "([0-9]+)\\.(.*)" | - tp = TypeParameter::decode(this.regexpCapture(regexp, 1)) and - suffix = this.regexpCapture(regexp, 2) - ) - } - - /** Holds if this path starts with `prefix`, followed by `tp`. */ - bindingset[this] - predicate isSnoc(TypePath prefix, TypeParameter tp) { - exists(string regexp | regexp = "(|.+\\.)([0-9]+)\\." | - prefix = this.regexpCapture(regexp, 1) and - tp = TypeParameter::decode(this.regexpCapture(regexp, 2)) - ) - } - - /** Gets the head of this path, if any. */ - bindingset[this] - TypeParameter getHead() { result = this.getTypeParameter(0) } - } + class TypePath = UnboundList; /** Provides predicates for constructing `TypePath`s. */ - module TypePath { - /** Gets the empty type path. */ - TypePath nil() { result.isEmpty() } - - /** Gets the singleton type path `tp`. */ - TypePath singleton(TypeParameter tp) { result = TypeParameter::encode(tp) + "." } - - /** - * Gets the type path obtained by appending the singleton type path `tp` - * onto `suffix`. - */ - bindingset[suffix] - TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } - } + module TypePath = UnboundList; /** * A class that has a type tree associated with it. @@ -600,11 +501,7 @@ module Make1 Input1> { private TypeParameter getNthTypeParameter(TypeAbstraction abs, int i) { result = - rank[i + 1](TypeParameter tp | - tp = abs.getATypeParameter() - | - tp order by TypeParameter::getRank(tp) - ) + rank[i + 1](TypeParameter tp | tp = abs.getATypeParameter() | tp order by getRank(tp)) } /** diff --git a/shared/util/codeql/util/UnboundList.qll b/shared/util/codeql/util/UnboundList.qll new file mode 100644 index 00000000000..78432fb77dd --- /dev/null +++ b/shared/util/codeql/util/UnboundList.qll @@ -0,0 +1,153 @@ +/** + * Provides logic for representing unbound lists. + * + * The lists are represented internally as strings, and generally it should + * be preferred to instead use a `newtype` representation, but in certain + * cases where this is not feasible (typically because of performance) unbound + * lists can be used. + */ +overlay[local?] +module; + +private import Location + +/** Provide the input to `Make`. */ +signature module InputSig { + /** An element. */ + class Element { + /** Gets a textual representation of this element. */ + string toString(); + + /** Gets the location of this element. */ + Location getLocation(); + } + + /** Gets a unique ID used to identify element `e` amongst all elements. */ + int getId(Element e); + + /** + * Gets a textual representation for element `e`, which will be used in the + * `toString` representation for unbound lists. + */ + default string getElementString(Element e) { result = e.toString() } + + /** Gets an optional length limit for unbound lists. */ + default int getLengthLimit() { none() } +} + +final private class String = string; + +/** Provides the `UnboundList` implementation. */ +module Make Input> { + private import Input + private import codeql.util.DenseRank + + // Use dense ranking to assign compact IDs to elements + private module DenseRankInput implements DenseRankInputSig { + class Ranked = Element; + + predicate getRank = getId/1; + } + + /** Gets the rank of element `e`, which is used internally in the string encoding. */ + int getRank(Element e) { e = DenseRank::denseRank(result) } + + private string encode(Element e) { result = getRank(e).toString() } + + bindingset[s] + private Element decode(string s) { encode(result) = s } + + /** + * An unbound list encoded as a string. + */ + class UnboundList extends String { + bindingset[this] + UnboundList() { exists(this) } + + /** Gets the `i`th element in this list. */ + bindingset[this] + private Element getElement(int i) { result = decode(this.splitAt(".", i)) } + + /** Gets a textual representation of this list. */ + bindingset[this] + string toString() { + result = + concat(int i, Element e | e = this.getElement(i) | getElementString(e), "." order by i) + } + + /** Holds if this list is empty. */ + predicate isEmpty() { this = "" } + + /** Gets the length of this list. */ + bindingset[this] + pragma[inline_late] + int length() { + // Same as + // `result = count(this.indexOf("."))` + // but performs better because it doesn't use an aggregate + result = this.regexpReplaceAll("[0-9]+", "").length() + } + + /** Gets the list obtained by appending `suffix` onto this list. */ + bindingset[this, suffix] + UnboundList append(UnboundList suffix) { + result = this + suffix and + ( + not exists(getLengthLimit()) + or + result.length() <= getLengthLimit() + ) + } + + /** + * Gets the list obtained by appending `suffix` onto this list. + * + * Unlike `append`, this predicate has `result` in the binding set, + * so there is no need to check the length of `result`. + */ + bindingset[this, result] + UnboundList appendInverse(UnboundList suffix) { suffix = result.stripPrefix(this) } + + /** Gets the list obtained by removing `prefix` from this list. */ + bindingset[this, prefix] + UnboundList stripPrefix(UnboundList prefix) { this = prefix + result } + + /** Holds if this list starts with `e`, followed by `suffix`. */ + bindingset[this] + predicate isCons(Element e, UnboundList suffix) { + exists(string regexp | regexp = "([0-9]+)\\.(.*)" | + e = decode(this.regexpCapture(regexp, 1)) and + suffix = this.regexpCapture(regexp, 2) + ) + } + + /** Holds if this list starts with `prefix`, followed by `e`. */ + bindingset[this] + predicate isSnoc(UnboundList prefix, Element e) { + exists(string regexp | regexp = "(|.+\\.)([0-9]+)\\." | + prefix = this.regexpCapture(regexp, 1) and + e = decode(this.regexpCapture(regexp, 2)) + ) + } + + /** Gets the head of this list, if any. */ + bindingset[this] + Element getHead() { result = this.getElement(0) } + } + + /** Provides predicates for constructing `UnboundList`s. */ + module UnboundList { + /** Gets the empty list. */ + UnboundList nil() { result.isEmpty() } + + /** Gets the singleton list `e`. */ + UnboundList singleton(Element e) { result = encode(e) + "." } + + /** + * Gets the list obtained by appending the singleton list `e` + * onto `suffix`. + */ + bindingset[suffix] + UnboundList cons(Element e, UnboundList suffix) { result = singleton(e).append(suffix) } + } +} From b6cda4a29bd67a03b63e4f4f3a7b3a7994f0b7d4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 17 Dec 2025 13:44:47 +0100 Subject: [PATCH 179/194] Update shared/util/codeql/util/UnboundList.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- shared/util/codeql/util/UnboundList.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/util/codeql/util/UnboundList.qll b/shared/util/codeql/util/UnboundList.qll index 78432fb77dd..d9a8b905a13 100644 --- a/shared/util/codeql/util/UnboundList.qll +++ b/shared/util/codeql/util/UnboundList.qll @@ -11,7 +11,7 @@ module; private import Location -/** Provide the input to `Make`. */ +/** Provides the input to `Make`. */ signature module InputSig { /** An element. */ class Element { From b64809cbd3a5e18d83a7bbf283ed6574daf29cf3 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 11:12:16 +0100 Subject: [PATCH 180/194] Rust: Adapt QL to AST changes --- rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll | 2 +- rust/ql/lib/codeql/rust/internal/PathResolution.qll | 6 +++--- rust/ql/test/extractor-tests/macro-expansion/test.ql | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll index 158a5ee9670..df586df6424 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll @@ -46,7 +46,7 @@ module Impl { private predicate isMacroExpansion(AstNode macro, AstNode expansion) { expansion = macro.(MacroCall).getMacroCallExpansion() or - expansion = macro.(Adt).getDeriveMacroExpansion(_) + expansion = macro.(TypeItem).getDeriveMacroExpansion(_) or expansion = macro.(Item).getAttributeMacroExpansion() } diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 28a72d370ae..c969e62a357 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -1796,9 +1796,9 @@ private module DollarCrateResolution { macroDefPath = mc.getPath() ) or - exists(ItemNode adt | - expansion = adt.(Adt).getDeriveMacroExpansion(_) and - macroDefPath = adt.getAttr("derive").getMeta().getPath() + exists(ItemNode type | + expansion = type.(TypeItem).getDeriveMacroExpansion(_) and + macroDefPath = type.getAttr("derive").getMeta().getPath() ) } diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.ql b/rust/ql/test/extractor-tests/macro-expansion/test.ql index 7d97ea6a10f..6372dc2e93f 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.ql +++ b/rust/ql/test/extractor-tests/macro-expansion/test.ql @@ -5,7 +5,7 @@ query predicate attribute_macros(Item i, int index, Item expanded) { i.fromSource() and expanded = i.getAttributeMacroExpansion().getItem(index) } -query predicate derive_macros(Adt i, int index, int subIndex, Item expanded) { +query predicate derive_macros(TypeItem i, int index, int subIndex, Item expanded) { i.fromSource() and expanded = i.getDeriveMacroExpansion(index).getItem(subIndex) } From f1364caaa9ce1d9cc28f06b095bf2d2663247f7b Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 12:15:16 +0100 Subject: [PATCH 181/194] Rust: Add upgrade and downgrade scripts --- .../downgrade.ql | 73 + .../old.dbscheme | 3562 ++++++++++++++++ .../rust.dbscheme | 3624 +++++++++++++++++ .../upgrade.properties | 29 + .../upgrade.properties | 4 +- .../old.dbscheme | 3624 +++++++++++++++++ .../rust.dbscheme | 3562 ++++++++++++++++ .../upgrade.properties | 29 + .../upgrade.ql | 45 + 9 files changed, 14550 insertions(+), 2 deletions(-) create mode 100644 rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql create mode 100644 rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme create mode 100644 rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme create mode 100644 rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme create mode 100644 rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql new file mode 100644 index 00000000000..6df51a29ffe --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql @@ -0,0 +1,73 @@ +class Element extends @element { + string toString() { none() } +} + +class Enum extends Element, @enum { } + +class Struct extends Element, @struct { } + +class Union extends Element, @union { } + +class Attr extends Element, @attr { } + +class GenericParamList extends Element, @generic_param_list { } + +class Name extends Element, @name { } + +class Visibility extends Element, @visibility { } + +class WhereClause extends Element, @where_clause { } + +query predicate new_enum_attrs(Enum enum, int index, Attr attr) { + type_item_attrs(enum, index, attr) +} + +query predicate new_enum_generic_param_lists(Enum enum, GenericParamList g) { + type_item_generic_param_lists(enum, g) +} + +query predicate new_enum_names(Enum enum, Name name) { type_item_names(enum, name) } + +query predicate new_enum_visibilities(Enum enum, Visibility visibility) { + type_item_visibilities(enum, visibility) +} + +query predicate new_enum_where_clauses(Enum enum, WhereClause whereClause) { + type_item_where_clauses(enum, whereClause) +} + +query predicate new_struct_attrs(Struct struct, int index, Attr attr) { + type_item_attrs(struct, index, attr) +} + +query predicate new_struct_generic_param_lists(Struct struct, GenericParamList g) { + type_item_generic_param_lists(struct, g) +} + +query predicate new_struct_names(Struct struct, Name name) { type_item_names(struct, name) } + +query predicate new_struct_visibilities(Struct struct, Visibility visibility) { + type_item_visibilities(struct, visibility) +} + +query predicate new_struct_where_clauses(Struct struct, WhereClause whereClause) { + type_item_where_clauses(struct, whereClause) +} + +query predicate new_union_attrs(Union union, int index, Attr attr) { + type_item_attrs(union, index, attr) +} + +query predicate new_union_generic_param_lists(Union union, GenericParamList g) { + type_item_generic_param_lists(union, g) +} + +query predicate new_union_names(Union union, Name name) { type_item_names(union, name) } + +query predicate new_union_visibilities(Union union, Visibility visibility) { + type_item_visibilities(union, visibility) +} + +query predicate new_union_where_clauses(Union union, WhereClause whereClause) { + type_item_where_clauses(union, whereClause) +} diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme new file mode 100644 index 00000000000..e54d01f67a4 --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme @@ -0,0 +1,3624 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @adt +| @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties new file mode 100644 index 00000000000..e73d8c313cc --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties @@ -0,0 +1,29 @@ +description: Renamed the `@type_item` union type to `@adt` and updated its relations +compatibility: full + +type_item_derive_macro_expansions.rel: delete +type_item_attrs.rel: delete +type_item_generic_param_lists.rel: delete +type_item_names.rel: delete +type_item_visibilities.rel: delete +type_item_where_clauses.rel: delete + +adt_derive_macro_expansions.rel: reorder type_item_derive_macro_expansions.rel (@type_item id, int index, @macro_items items) id index items + +enum_attrs.rel: run downgrade.ql new_enum_attrs +enum_generic_param_lists.rel: run downgrade.ql new_enum_generic_param_lists +enum_names.rel: run downgrade.ql new_enum_names +enum_visibilities.rel: run downgrade.ql new_enum_visibilities +enum_where_clauses.rel: run downgrade.ql new_enum_where_clauses + +struct_attrs.rel: run downgrade.ql new_struct_attrs +struct_generic_param_lists.rel: run downgrade.ql new_struct_generic_param_lists +struct_names.rel: run downgrade.ql new_struct_names +struct_visibilities.rel: run downgrade.ql new_struct_visibilities +struct_where_clauses.rel: run downgrade.ql new_struct_where_clauses + +union_attrs.rel: run downgrade.ql new_union_attrs +union_generic_param_lists.rel: run downgrade.ql new_union_generic_param_lists +union_names.rel: run downgrade.ql new_union_names +union_visibilities.rel: run downgrade.ql new_union_visibilities +union_where_clauses.rel: run downgrade.ql new_union_where_clauses \ No newline at end of file diff --git a/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties b/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties index d753a48ad74..bb950e335a9 100644 --- a/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties +++ b/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties @@ -1,5 +1,5 @@ -description: Added the `@call_expr_base` union type -compatibility: backwards +description: Added the `@type_item` union type +compatibility: full call_expr_arg_lists.rel: delete call_expr_attrs.rel: delete diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme new file mode 100644 index 00000000000..e54d01f67a4 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme @@ -0,0 +1,3624 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @adt +| @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties new file mode 100644 index 00000000000..2377b8d6e23 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties @@ -0,0 +1,29 @@ +description: Renamed the `@adt` union type to `@type_item` and updated its relations +compatibility: full + +adt_derive_macro_expansions.rel: delete + +enum_attrs.rel: delete +enum_generic_param_lists.rel: delete +enum_names.rel: delete +enum_visibilities.rel: delete +enum_where_clauses.rel: delete + +struct_attrs.rel: delete +struct_generic_param_lists.rel: delete +struct_names.rel: delete +struct_visibilities.rel: delete +struct_where_clauses.rel: delete + +union_attrs.rel: delete +union_generic_param_lists.rel: delete +union_names.rel: delete +union_visibilities.rel: delete +union_where_clauses.rel: delete + +type_item_derive_macro_expansions.rel: reorder adt_derive_macro_expansions.rel (@adt id, int index, @macro_items items) id index items +type_item_attrs.rel: run upgrade.ql new_type_item_attrs +type_item_generic_param_lists.rel: run upgrade.ql new_type_item_generic_param_lists +type_item_names.rel: run upgrade.ql new_type_item_names +type_item_visibilities.rel: run upgrade.ql new_type_item_visibilities +type_item_where_clauses.rel: run upgrade.ql new_type_item_where_clauses \ No newline at end of file diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql new file mode 100644 index 00000000000..c8e8e956fd8 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql @@ -0,0 +1,45 @@ +class Element extends @element { + string toString() { none() } +} + +class Adt extends Element, @adt { } + +class Attr extends Element, @attr { } + +class GenericParamList extends Element, @generic_param_list { } + +class Name extends Element, @name { } + +class Visibility extends Element, @visibility { } + +class WhereClause extends Element, @where_clause { } + +query predicate new_type_item_attrs(Adt adt, int index, Attr attr) { + enum_attrs(adt, index, attr) or + struct_attrs(adt, index, attr) or + union_attrs(adt, index, attr) +} + +query predicate new_type_item_generic_param_lists(Adt adt, GenericParamList g) { + enum_generic_param_lists(adt, g) or + struct_generic_param_lists(adt, g) or + union_generic_param_lists(adt, g) +} + +query predicate new_type_item_names(Adt adt, Name name) { + enum_names(adt, name) or + struct_names(adt, name) or + union_names(adt, name) +} + +query predicate new_type_item_visibilities(Adt adt, Visibility visibility) { + enum_visibilities(adt, visibility) or + struct_visibilities(adt, visibility) or + union_visibilities(adt, visibility) +} + +query predicate new_type_item_where_clauses(Adt adt, WhereClause where_clause) { + enum_where_clauses(adt, where_clause) or + struct_where_clauses(adt, where_clause) or + union_where_clauses(adt, where_clause) +} From 97fd70e4f4cd4093fb0b54df069bf7cce29fccfe Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 13:56:48 +0100 Subject: [PATCH 182/194] Rust: Accept change to expected file --- .../ql/test/extractor-tests/macro-expansion/PrintAst.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index e50dc4d5274..5d43ff532fd 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -699,6 +699,7 @@ macro_expansion.rs: # 76| getSegment(): [PathSegment] i32 # 76| getIdentifier(): [NameRef] i32 # 78| getItem(16): [Struct] struct MyStruct +# 78| getName(): [Name] MyStruct # 78| getFieldList(): [StructFieldList] StructFieldList # 79| getField(0): [StructField] field: ... # 79| getName(): [Name] field @@ -712,7 +713,6 @@ macro_expansion.rs: # 79| getPath(): [Path] i32 # 79| getSegment(): [PathSegment] i32 # 79| getIdentifier(): [NameRef] i32 -# 78| getName(): [Name] MyStruct # 83| getItem(17): [Struct] struct MyDerive # 84| getDeriveMacroExpansion(0): [MacroItems] MacroItems # 84| getItem(0): [Impl] impl ...::Debug for MyDerive::<...> { ... } @@ -808,6 +808,7 @@ macro_expansion.rs: # 83| getSegment(): [PathSegment] derive # 83| getIdentifier(): [NameRef] derive # 83| getTokenTree(): [TokenTree] TokenTree +# 84| getName(): [Name] MyDerive # 84| getFieldList(): [StructFieldList] StructFieldList # 85| getField(0): [StructField] field: usize # 85| getName(): [Name] field @@ -815,7 +816,6 @@ macro_expansion.rs: # 85| getPath(): [Path] usize # 85| getSegment(): [PathSegment] usize # 85| getIdentifier(): [NameRef] usize -# 84| getName(): [Name] MyDerive # 88| getItem(18): [Enum] enum MyDeriveEnum # 89| getDeriveMacroExpansion(0): [MacroItems] MacroItems # 89| getItem(0): [Impl] impl ...::PartialEq for MyDeriveEnum::<...> { ... } From 8564c1f4582750b0b89a7e48ffa7722c913201b4 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 17 Dec 2025 14:50:50 +0100 Subject: [PATCH 183/194] Rust: Add change note --- rust/ql/lib/change-notes/2025-12-17-adt-rename.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/lib/change-notes/2025-12-17-adt-rename.md diff --git a/rust/ql/lib/change-notes/2025-12-17-adt-rename.md b/rust/ql/lib/change-notes/2025-12-17-adt-rename.md new file mode 100644 index 00000000000..0b66b4664a1 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-17-adt-rename.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Renamed the `Adt` class to `TypeItem` and moved common predicates from `Struct`, `Enum`, and `Union` to `TypeItem`. \ No newline at end of file From 7423f6f99b5b1de5fa1444e3617dec4e782c0407 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Wed, 17 Dec 2025 09:16:05 -0600 Subject: [PATCH 184/194] Fix typo in warning message for Path.Combine --- csharp/ql/src/Bad Practices/PathCombine.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index e0548b2c5e1..2354ef39d70 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -16,4 +16,4 @@ import semmle.code.csharp.frameworks.System from MethodCall call where call.getTarget().hasFullyQualifiedName("System.IO", "Path", "Combine") -select call, "Call to 'System.IO.Path.Combine' may silently drop its earlier arguments" +select call, "Call to 'System.IO.Path.Combine' may silently drop its earlier arguments." From e36b602743175c5d822688342ac47bf1fb8fccfd Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Wed, 17 Dec 2025 09:16:56 -0600 Subject: [PATCH 185/194] Enhance PathCombine.ql metadata details --- csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md index 19d51896ebf..011c0d743ae 100644 --- a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md +++ b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md @@ -1,4 +1,4 @@ --- category: queryMetadata --- -* Updated the `name` and `description` of PathCombine.ql to have more details about why it's a problem +* Updated the `name`, `description`, and alert message of PathCombine.ql to have more details about why it's a problem. From 425d62cfd6cef4950e98d0b5645d29b29c65f67f Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Wed, 17 Dec 2025 09:50:11 -0600 Subject: [PATCH 186/194] Update PathCombine metadata for clarity --- csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md index 011c0d743ae..23c74d27398 100644 --- a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md +++ b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md @@ -1,4 +1,4 @@ --- category: queryMetadata --- -* Updated the `name`, `description`, and alert message of PathCombine.ql to have more details about why it's a problem. +* Updated the `name`, `description`, and alert message of `cs/path-combine` to have more details about why it's a problem. From a3c0082ac70a01ff7000e5b881bece13096c5772 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Wed, 17 Dec 2025 09:53:07 -0600 Subject: [PATCH 187/194] Update PathCombine.expected --- .../query-tests/Bad Practices/Path Combine/PathCombine.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected b/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected index c0f9e405516..cf1fa3e2c8f 100644 --- a/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected +++ b/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected @@ -1 +1 @@ -| PathCombine.cs:7:9:7:54 | call to method Combine | Call to 'System.IO.Path.Combine'. | +| PathCombine.cs:7:9:7:54 | call to method Combine | Call to 'System.IO.Path.Combine' may silently drop its earlier arguments. | From 96a986228d24515594d30a49daf597ac2926a328 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 18 Dec 2025 09:04:07 +0100 Subject: [PATCH 188/194] Rust: Revert accidental changes --- .../upgrade.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties b/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties index bb950e335a9..d753a48ad74 100644 --- a/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties +++ b/rust/downgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties @@ -1,5 +1,5 @@ -description: Added the `@type_item` union type -compatibility: full +description: Added the `@call_expr_base` union type +compatibility: backwards call_expr_arg_lists.rel: delete call_expr_attrs.rel: delete From 3c6a757c3e48330ad8218ce958c9162e56223898 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 5 Dec 2025 12:50:13 +0100 Subject: [PATCH 189/194] Rust: Distinguish `&mut T` from `&T` in type inference --- .../rust/elements/internal/OperationImpl.qll | 1 + .../rust/frameworks/stdlib/Builtins.qll | 15 +- .../codeql/rust/internal/PathResolution.qll | 8 +- rust/ql/lib/codeql/rust/internal/Type.qll | 32 +- .../codeql/rust/internal/TypeInference.qll | 295 ++++++++--- .../lib/codeql/rust/internal/TypeMention.qll | 39 +- .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 4 - .../PathResolutionConsistency.expected | 8 - .../PathResolutionConsistency.expected | 3 - .../dataflow/global/viableCallable.expected | 2 - .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 26 - .../dataflow/pointers/inline-flow.expected | 9 +- .../PathResolutionConsistency.expected | 3 - .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 5 - .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 45 -- .../PathResolutionConsistency.expected | 33 -- .../type-inference/dereference.rs | 12 +- .../test/library-tests/type-inference/main.rs | 2 +- .../type-inference/pattern_matching.rs | 2 +- .../type-inference/type-inference.expected | 488 +++++++++--------- .../PathResolutionConsistency.expected | 17 - .../PathResolutionConsistency.expected | 2 - .../diagnostics/SummaryStatsReduced.expected | 2 +- .../PathResolutionConsistency.expected | 27 - .../PathResolutionConsistency.expected | 2 - .../PathResolutionConsistency.expected | 37 -- .../PathResolutionConsistency.expected | 16 - .../PathResolutionConsistency.expected | 31 -- .../PathResolutionConsistency.expected | 9 - 34 files changed, 527 insertions(+), 658 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll index 31e30c8dcb8..3cc84e71de9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -30,6 +30,7 @@ module Impl { op = "!" and path = "core::ops::bit::Not" and method = "not" and borrows = 0 or // Dereference + // todo: handle `core::ops::deref::DerefMut` op = "*" and path = "core::ops::deref::Deref" and method = "deref" and borrows = 1 ) or diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll index 9021e5d3643..6b09ababd74 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll @@ -162,15 +162,20 @@ class ArrayType extends BuiltinType { override string getDisplayName() { result = "[;]" } } -/** The builtin reference type `&T`. */ -class RefType extends BuiltinType { - RefType() { this.getName() = "Ref" } +/** A builtin reference type `&T` or `&mut T`. */ +abstract private class RefTypeImpl extends BuiltinType { } + +final class RefType = RefTypeImpl; + +/** The builtin shared reference type `&T`. */ +class RefSharedType extends RefTypeImpl { + RefSharedType() { this.getName() = "Ref" } override string getDisplayName() { result = "&" } } -/** The builtin reference type `&mut T`. */ -class RefMutType extends BuiltinType { +/** The builtin mutable reference type `&mut T`. */ +class RefMutType extends RefTypeImpl { RefMutType() { this.getName() = "RefMut" } override string getDisplayName() { result = "&mut" } diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index c969e62a357..e62f11b8e83 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -771,8 +771,12 @@ private TypeItemNode resolveBuiltin(TypeRepr tr) { tr instanceof ArrayTypeRepr and result instanceof Builtins::ArrayType or - tr instanceof RefTypeRepr and - result instanceof Builtins::RefType + tr = + any(RefTypeRepr rtr | + if rtr.isMut() + then result instanceof Builtins::RefMutType + else result instanceof Builtins::RefSharedType + ) or tr.(PtrTypeRepr).isConst() and result instanceof Builtins::PtrConstType diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index b187a64dec1..83dcfff8c3a 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -224,21 +224,33 @@ TypeParamTypeParameter getArrayTypeParameter() { result = any(ArrayType t).getPositionalTypeParameter(0) } -/** - * A reference type. - * - * Reference types like `& i64` are modeled as normal generic types - * with a single type argument. - */ -class RefType extends StructType { - RefType() { this.getStruct() instanceof Builtins::RefType } +abstract class RefType extends StructType { } + +pragma[nomagic] +TypeParamTypeParameter getRefTypeParameter() { + result = any(RefType t).getPositionalTypeParameter(0) +} + +class RefMutType extends RefType { + RefMutType() { this.getStruct() instanceof Builtins::RefMutType } + + override string toString() { result = "&mut" } +} + +pragma[nomagic] +TypeParamTypeParameter getRefMutTypeParameter() { + result = any(RefMutType t).getPositionalTypeParameter(0) +} + +class RefSharedType extends RefType { + RefSharedType() { this.getStruct() instanceof Builtins::RefSharedType } override string toString() { result = "&" } } pragma[nomagic] -TypeParamTypeParameter getRefTypeParameter() { - result = any(RefType t).getPositionalTypeParameter(0) +TypeParamTypeParameter getRefSharedTypeParameter() { + result = any(RefSharedType t).getPositionalTypeParameter(0) } /** diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 3275d5d9895..a004b2cbf4f 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -500,7 +500,10 @@ module CertainTypeInference { n2 = ip.getName() and prefix1.isEmpty() and if ip.isRef() - then prefix2 = TypePath::singleton(getRefTypeParameter()) + then + if ip.isMut() + then prefix2 = TypePath::singleton(getRefMutTypeParameter()) + else prefix2 = TypePath::singleton(getRefSharedTypeParameter()) else prefix2.isEmpty() ) } @@ -719,9 +722,14 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat prefix2 = TypePath::singleton(inferRefExprType(re).getPositionalTypeParameter(0)) ) or - n1 = n2.(RefPat).getPat() and - prefix1.isEmpty() and - prefix2 = TypePath::singleton(getRefTypeParameter()) + n2 = + any(RefPat rp | + n1 = rp.getPat() and + prefix1.isEmpty() and + if rp.isMut() + then prefix2 = TypePath::singleton(getRefMutTypeParameter()) + else prefix2 = TypePath::singleton(getRefSharedTypeParameter()) + ) or exists(int i, int arity | prefix1.isEmpty() and @@ -1262,6 +1270,34 @@ private predicate isComplexRootStripped(TypePath path, Type type) { type != TNeverType() } +private newtype TBorrowKind = + TNoBorrowKind() or + TSharedBorrowKind() or + TMutBorrowKind() + +private class BorrowKind extends TBorrowKind { + predicate isNoBorrow() { this = TNoBorrowKind() } + + RefType getRefType() { + this = TSharedBorrowKind() and + result instanceof RefSharedType + or + this = TMutBorrowKind() and + result instanceof RefMutType + } + + string toString() { + this = TNoBorrowKind() and + result = "" + or + this = TSharedBorrowKind() and + result = "&" + or + this = TMutBorrowKind() and + result = "&mut" + } +} + /** * Provides logic for resolving calls to methods. * @@ -1304,7 +1340,7 @@ private module MethodResolution { * * `strippedTypePath` points to the type `strippedType` inside `selfType`, * which is the (possibly complex-stripped) root type of `selfType`. For example, - * if `m` has a `&self` parameter, then `strippedTypePath` is `getRefTypeParameter()` + * if `m` has a `&self` parameter, then `strippedTypePath` is `getRefSharedTypeParameter()` * and `strippedType` is the type inside the reference. */ pragma[nomagic] @@ -1520,7 +1556,7 @@ private module MethodResolution { or this.supportsAutoDerefAndBorrow() and exists(TypePath path0, Type t0, string derefChain0 | - this.hasNoCompatibleTargetBorrow(derefChain0) and + this.hasNoCompatibleTargetMutBorrow(derefChain0) and t0 = this.getACandidateReceiverTypeAtNoBorrow(derefChain0, path0) | path0.isCons(getRefTypeParameter(), path) and @@ -1545,7 +1581,7 @@ private module MethodResolution { */ pragma[nomagic] private predicate hasIncompatibleTarget( - ImplOrTraitItemNode i, string derefChain, boolean borrow, Type root + ImplOrTraitItemNode i, string derefChain, BorrowKind borrow, Type root ) { exists(TypePath path | ReceiverIsInstantiationOfSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, @@ -1562,7 +1598,7 @@ private module MethodResolution { */ pragma[nomagic] private predicate hasIncompatibleBlanketLikeTarget( - ImplItemNode impl, string derefChain, boolean borrow + ImplItemNode impl, string derefChain, BorrowKind borrow ) { ReceiverIsNotInstantiationOfBlanketLikeSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, derefChain, borrow), impl, _, _) @@ -1575,21 +1611,23 @@ private module MethodResolution { * Same as `getACandidateReceiverTypeAt`, but excludes pseudo types `!` and `unknown`. */ pragma[nomagic] - Type getANonPseudoCandidateReceiverTypeAt(string derefChain, boolean borrow, TypePath path) { + Type getANonPseudoCandidateReceiverTypeAt(string derefChain, BorrowKind borrow, TypePath path) { result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and result != TNeverType() and result != TUnknownType() } pragma[nomagic] - private Type getComplexStrippedType(string derefChain, boolean borrow, TypePath strippedTypePath) { + private Type getComplexStrippedType( + string derefChain, BorrowKind borrow, TypePath strippedTypePath + ) { result = this.getANonPseudoCandidateReceiverTypeAt(derefChain, borrow, strippedTypePath) and isComplexRootStripped(strippedTypePath, result) } bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleNonBlanketLikeTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { forall(ImplOrTraitItemNode i | methodCallNonBlanketCandidate(this, _, i, _, strippedTypePath, strippedType) @@ -1600,7 +1638,7 @@ private module MethodResolution { bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, strippedType) and @@ -1611,7 +1649,7 @@ private module MethodResolution { bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleNonBlanketTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, strippedType) and @@ -1634,12 +1672,12 @@ private module MethodResolution { // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` derefChain = "" ) and - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and + strippedType = this.getComplexStrippedType(derefChain, TNoBorrowKind(), strippedTypePath) and n = -1 or this.hasNoCompatibleTargetNoBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleTargetCheck(derefChain, false, strippedTypePath, t) + this.hasNoCompatibleTargetCheck(derefChain, TNoBorrowKind(), strippedTypePath, t) ) } @@ -1667,13 +1705,13 @@ private module MethodResolution { // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` derefChain = "" ) and - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and + strippedType = this.getComplexStrippedType(derefChain, TNoBorrowKind(), strippedTypePath) and n = -1 or this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, false, strippedTypePath, t) + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TNoBorrowKind(), strippedTypePath, t) ) } @@ -1691,55 +1729,114 @@ private module MethodResolution { // forex using recursion pragma[nomagic] - private predicate hasNoCompatibleTargetBorrowToIndex( + private predicate hasNoCompatibleTargetSharedBorrowToIndex( string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and + strippedType = this.getComplexStrippedType(derefChain, TSharedBorrowKind(), strippedTypePath) and n = -1 or - this.hasNoCompatibleTargetBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and + this.hasNoCompatibleTargetSharedBorrowToIndex(derefChain, strippedTypePath, strippedType, + n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, true, strippedTypePath, t) + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSharedBorrowKind(), + strippedTypePath, t) ) } /** * Holds if the candidate receiver type represented by `derefChain`, followed - * by a borrow, does not have a matching method target. + * by a shared borrow, does not have a matching method target. */ pragma[nomagic] - predicate hasNoCompatibleTargetBorrow(string derefChain) { + predicate hasNoCompatibleTargetSharedBorrow(string derefChain) { exists(Type strippedType | - this.hasNoCompatibleTargetBorrowToIndex(derefChain, _, strippedType, + this.hasNoCompatibleTargetSharedBorrowToIndex(derefChain, _, strippedType, getLastLookupTypeIndex(strippedType)) ) } // forex using recursion pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetBorrowToIndex( + private predicate hasNoCompatibleTargetMutBorrowToIndex( string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { - this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and + this.hasNoCompatibleTargetSharedBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, TMutBorrowKind(), strippedTypePath) and n = -1 or - this.hasNoCompatibleNonBlanketTargetBorrowToIndex(derefChain, strippedTypePath, strippedType, - n - 1) and + this.hasNoCompatibleTargetMutBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, true, strippedTypePath, t) + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TMutBorrowKind(), + strippedTypePath, t) ) } /** * Holds if the candidate receiver type represented by `derefChain`, followed - * by a borrow, does not have a matching non-blanket method target. + * by a `mut` borrow, does not have a matching method target. */ pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetBorrow(string derefChain) { + predicate hasNoCompatibleTargetMutBorrow(string derefChain) { exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetBorrowToIndex(derefChain, _, strippedType, + this.hasNoCompatibleTargetMutBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetSharedBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, TSharedBorrowKind(), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSharedBorrowKind(), strippedTypePath, + t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain`, followed + * by a shared borrow, does not have a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetSharedBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetMutBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, TMutBorrowKind(), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TMutBorrowKind(), strippedTypePath, t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain`, followed + * by a `mut` borrow, does not have a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetMutBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(derefChain, _, strippedType, getLastLookupTypeIndex(strippedType)) ) } @@ -1757,20 +1854,29 @@ private module MethodResolution { * [1]: https://doc.rust-lang.org/reference/expressions/method-call-expr.html#r-expr.method.candidate-receivers */ pragma[nomagic] - Type getACandidateReceiverTypeAt(string derefChain, boolean borrow, TypePath path) { + Type getACandidateReceiverTypeAt(string derefChain, BorrowKind borrow, TypePath path) { result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, path) and - borrow = false + borrow = TNoBorrowKind() or - this.supportsAutoDerefAndBorrow() and - this.hasNoCompatibleTargetNoBorrow(derefChain) and - borrow = true and - ( - path.isEmpty() and - result instanceof RefType + exists(RefType rt | + // first try shared borrow + this.supportsAutoDerefAndBorrow() and + this.hasNoCompatibleTargetNoBorrow(derefChain) and + borrow = TSharedBorrowKind() or - exists(TypePath suffix | - result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + // then try mutable borrow + this.hasNoCompatibleTargetSharedBorrow(derefChain) and + borrow = TMutBorrowKind() + | + rt = borrow.getRefType() and + ( + path.isEmpty() and + result = rt + or + exists(TypePath suffix | + result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, suffix) and + path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) + ) ) ) } @@ -1778,10 +1884,10 @@ private module MethodResolution { /** * Gets a method that this call resolves to after having applied a sequence of * dereferences and possibly a borrow on the receiver type, encoded in the string - * `derefChain` and the Boolean `borrow`. + * `derefChain` and the enum `borrow`. */ pragma[nomagic] - Method resolveCallTarget(ImplOrTraitItemNode i, string derefChain, boolean borrow) { + Method resolveCallTarget(ImplOrTraitItemNode i, string derefChain, BorrowKind borrow) { exists(MethodCallCand mcc | mcc = MkMethodCallCand(this, derefChain, borrow) and result = mcc.resolveCallTarget(i) @@ -1789,12 +1895,13 @@ private module MethodResolution { } predicate receiverHasImplicitDeref(AstNode receiver) { - exists(this.resolveCallTarget(_, ".ref", false)) and + exists(this.resolveCallTarget(_, ".ref", TNoBorrowKind())) and receiver = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } - predicate argumentHasImplicitBorrow(AstNode arg) { - exists(this.resolveCallTarget(_, "", true)) and + predicate argumentHasImplicitBorrow(AstNode arg, BorrowKind borrow) { + exists(this.resolveCallTarget(_, "", borrow)) and + borrow != TNoBorrowKind() and arg = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } } @@ -1903,30 +2010,41 @@ private module MethodResolution { result = super.getOperand(pos.asPosition() + 1) } - private predicate implicitBorrowAt(ArgumentPosition pos) { + private predicate implicitBorrowAt(ArgumentPosition pos, BorrowKind borrow) { exists(int borrows | super.isOverloaded(_, _, borrows) | - pos.isSelf() and borrows >= 1 + pos.isSelf() and + borrows >= 1 and + if this instanceof AssignmentOperation + then borrow = TMutBorrowKind() + else borrow = TSharedBorrowKind() or - pos.asPosition() = 0 and borrows = 2 + pos.asPosition() = 0 and + borrows = 2 and + borrow = TSharedBorrowKind() ) } override Type getArgumentTypeAt(ArgumentPosition pos, TypePath path) { - if this.implicitBorrowAt(pos) - then - result instanceof RefType and + exists(BorrowKind borrow, RefType rt | + this.implicitBorrowAt(pos, borrow) and + rt = borrow.getRefType() + | + result = rt and path.isEmpty() or exists(TypePath path0 | result = inferType(this.getArg(pos), path0) and - path = TypePath::cons(getRefTypeParameter(), path0) + path = TypePath::cons(rt.getPositionalTypeParameter(0), path0) ) - else result = inferType(this.getArg(pos), path) + ) + or + not this.implicitBorrowAt(pos, _) and + result = inferType(this.getArg(pos), path) } - override predicate argumentHasImplicitBorrow(AstNode arg) { + override predicate argumentHasImplicitBorrow(AstNode arg, BorrowKind borrow) { exists(ArgumentPosition pos | - this.implicitBorrowAt(pos) and + this.implicitBorrowAt(pos, borrow) and arg = this.getArg(pos) ) } @@ -1943,7 +2061,7 @@ private module MethodResolution { } private newtype TMethodCallCand = - MkMethodCallCand(MethodCall mc, string derefChain, boolean borrow) { + MkMethodCallCand(MethodCall mc, string derefChain, BorrowKind borrow) { exists(mc.getACandidateReceiverTypeAt(derefChain, borrow, _)) } @@ -1951,7 +2069,7 @@ private module MethodResolution { private class MethodCallCand extends MkMethodCallCand { MethodCall mc_; string derefChain; - boolean borrow; + BorrowKind borrow; MethodCallCand() { this = MkMethodCallCand(mc_, derefChain, borrow) } @@ -1964,11 +2082,14 @@ private module MethodResolution { pragma[nomagic] predicate hasNoCompatibleNonBlanketTarget() { - mc_.hasNoCompatibleNonBlanketTargetBorrow(derefChain) and - borrow = true + mc_.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and + borrow = TSharedBorrowKind() + or + mc_.hasNoCompatibleNonBlanketTargetMutBorrow(derefChain) and + borrow = TMutBorrowKind() or mc_.hasNoCompatibleNonBlanketTargetNoBorrow(derefChain) and - borrow = false + borrow = TNoBorrowKind() } pragma[nomagic] @@ -2039,8 +2160,6 @@ private module MethodResolution { MethodArgsAreInstantiationsOf::argsAreInstantiationsOf(this, i, result) } - predicate hasNoBorrow() { borrow = false } - string toString() { result = mc_.toString() + " [" + derefChain + "; " + borrow + "]" } Location getLocation() { result = mc_.getLocation() } @@ -2053,17 +2172,17 @@ private module MethodResolution { predicate hasBlanketCandidate( MethodCallCand mcc, ImplItemNode impl, TypePath blanketPath, TypeParam blanketTypeParam ) { - exists(MethodCall mc | - mc = mcc.getMethodCall() and + exists(MethodCall mc, BorrowKind borrow | + mcc = MkMethodCallCand(mc, _, borrow) and methodCallBlanketLikeCandidate(mc, _, impl, _, blanketPath, blanketTypeParam) and // Only apply blanket implementations when no other implementations are possible; // this is to account for codebases that use the (unstable) specialization feature // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) (mcc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) | - mcc.hasNoBorrow() + borrow.isNoBorrow() or - blanketPath.getHead() = getRefTypeParameter() + blanketPath.getHead() = borrow.getRefType().getPositionalTypeParameter(0) ) } } @@ -2272,10 +2391,8 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi class AccessEnvironment = string; bindingset[derefChain, borrow] - private AccessEnvironment encodeDerefChainBorrow(string derefChain, boolean borrow) { - exists(string suffix | if borrow = true then suffix = "borrow" else suffix = "" | - result = derefChain + ";" + suffix - ) + private AccessEnvironment encodeDerefChainBorrow(string derefChain, BorrowKind borrow) { + result = derefChain + ";" + borrow } final private class MethodCallFinal = MethodResolution::MethodCall; @@ -2300,7 +2417,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi pragma[nomagic] private Type getInferredSelfType(AccessPosition apos, string derefChainBorrow, TypePath path) { - exists(string derefChain, boolean borrow | + exists(string derefChain, BorrowKind borrow | result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and apos.isSelf() @@ -2336,7 +2453,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi } Method getTarget(ImplOrTraitItemNode i, string derefChainBorrow) { - exists(string derefChain, boolean borrow | + exists(string derefChain, BorrowKind borrow | derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and result = this.resolveCallTarget(i, derefChain, borrow) // mutual recursion; resolving method calls requires resolving types and vice versa ) @@ -2411,7 +2528,7 @@ private Type inferMethodCallType1(AstNode n, boolean isReturn, TypePath path) { or // adjust for implicit borrow apos.isSelf() and - derefChainBorrow = ";borrow" and + derefChainBorrow = [";&", ";&mut"] and path0.isCons(getRefTypeParameter(), path) ) } @@ -3218,14 +3335,26 @@ private Type inferRefExprType(RefExpr ref) { ref.isMut() and result instanceof PtrMutType or ref.isConst() and result instanceof PtrConstType - else result instanceof RefType + else + if ref.isMut() + then result instanceof RefMutType + else result instanceof RefSharedType } /** Gets the root type of the reference node `ref`. */ pragma[nomagic] private Type inferRefPatType(AstNode ref) { - (ref = any(IdentPat ip | ip.isRef()).getName() or ref instanceof RefPat) and - result instanceof RefType + exists(boolean isMut | + ref = + any(IdentPat ip | + ip.isRef() and + if ip.isMut() then isMut = true else isMut = false + ).getName() + or + ref = any(RefPat rp | if rp.isMut() then isMut = true else isMut = false) + | + if isMut = true then result instanceof RefMutType else result instanceof RefSharedType + ) } pragma[nomagic] @@ -3279,9 +3408,9 @@ private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { or le instanceof StringLiteralExpr and ( - path.isEmpty() and result instanceof RefType + path.isEmpty() and result instanceof RefSharedType or - path = TypePath::singleton(getRefTypeParameter()) and + path = TypePath::singleton(getRefSharedTypeParameter()) and result = getStrStruct() ) and certain = true @@ -3715,7 +3844,7 @@ private module Cached { /** Holds if `n` is implicitly borrowed. */ cached predicate implicitBorrow(AstNode n) { - any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n) + any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n, _) } /** diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index 3e2ca811107..4da6a3aca34 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -54,13 +54,16 @@ class ArrayTypeReprMention extends TypeMention instanceof ArrayTypeRepr { } class RefTypeReprMention extends TypeMention instanceof RefTypeRepr { + private RefType resolveRootType() { + if super.isMut() then result instanceof RefMutType else result instanceof RefSharedType + } + override Type resolveTypeAt(TypePath path) { - path.isEmpty() and - result instanceof RefType + path.isEmpty() and result = this.resolveRootType() or exists(TypePath suffix | result = super.getTypeRepr().(TypeMention).resolveTypeAt(suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + path = TypePath::cons(this.resolveRootType().getPositionalTypeParameter(0), suffix) ) } } @@ -438,20 +441,24 @@ class ShorthandSelfParameterMention extends TypeMention instanceof SelfParam { private Type resolveSelfType(TypePath path) { result = resolveImplOrTraitType(encl, path) } + private RefType resolveSelfRefRootType() { + super.isRef() and + if super.isMut() then result instanceof RefMutType else result instanceof RefSharedType + } + override Type resolveTypeAt(TypePath typePath) { - if super.isRef() - then - // `fn f(&self, ...)` - typePath.isEmpty() and - result instanceof RefType - or - exists(TypePath suffix | - result = this.resolveSelfType(suffix) and - typePath = TypePath::cons(getRefTypeParameter(), suffix) - ) - else - // `fn f(self, ...)` - result = this.resolveSelfType(typePath) + // `fn f(&self, ...)` + typePath.isEmpty() and + result = this.resolveSelfRefRootType() + or + exists(TypePath suffix | + result = this.resolveSelfType(suffix) and + typePath = TypePath::cons(this.resolveSelfRefRootType().getPositionalTypeParameter(0), suffix) + ) + or + // `fn f(self, ...)` + not super.isRef() and + result = this.resolveSelfType(typePath) } } diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index f5a5b9b7b19..00000000000 --- a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| proc_macro.rs:44:27:44:30 | ...::to_tokens(...) | diff --git a/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 97a93c16a2d..00000000000 --- a/rust/ql/test/library-tests/controlflow/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,4 +0,0 @@ -multipleResolvedTargets -| test.rs:419:34:419:35 | * ... | -| test.rs:420:26:420:27 | * ... | -| test.rs:597:9:597:10 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 9ff99af9fac..00000000000 --- a/rust/ql/test/library-tests/dataflow/collections/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,8 +0,0 @@ -multipleResolvedTargets -| main.rs:18:14:18:26 | * ... | -| main.rs:22:14:22:26 | * ... | -| main.rs:42:9:42:25 | * ... | -| main.rs:85:15:85:25 | * ... | -| main.rs:94:9:94:23 | * ... | -| main.rs:104:9:104:23 | * ... | -| main.rs:110:10:110:24 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 603574572d8..00000000000 --- a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -multipleResolvedTargets -| main.rs:252:11:252:15 | * ... | -| main.rs:288:13:288:29 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index fa2d58f5a3a..d90eebdf5e5 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -61,7 +61,6 @@ | main.rs:228:24:228:33 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:230:5:230:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:252:11:252:15 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:252:11:252:15 | * ... | {EXTERNAL LOCATION} | fn deref | | main.rs:258:28:258:36 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:260:13:260:17 | ... + ... | main.rs:236:5:239:5 | fn add | | main.rs:261:5:261:17 | sink(...) | main.rs:5:1:7:1 | fn sink | @@ -79,7 +78,6 @@ | main.rs:283:5:283:17 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:286:28:286:37 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:288:13:288:29 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:288:13:288:29 | * ... | {EXTERNAL LOCATION} | fn deref | | main.rs:288:14:288:29 | ...::deref(...) | main.rs:251:5:253:5 | fn deref | | main.rs:289:5:289:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:291:28:291:37 | source(...) | main.rs:1:1:3:1 | fn source | diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index f99062c73d1..00000000000 --- a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| main.rs:562:10:562:15 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 9ec1dde87a0..00000000000 --- a/rust/ql/test/library-tests/dataflow/modeled/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| main.rs:115:14:115:35 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 3610f061406..00000000000 --- a/rust/ql/test/library-tests/dataflow/pointers/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,26 +0,0 @@ -multipleResolvedTargets -| main.rs:19:17:19:18 | * ... | -| main.rs:53:14:53:15 | * ... | -| main.rs:59:33:59:34 | * ... | -| main.rs:72:14:72:15 | * ... | -| main.rs:73:9:73:10 | * ... | -| main.rs:74:14:74:15 | * ... | -| main.rs:75:9:75:10 | * ... | -| main.rs:76:14:76:15 | * ... | -| main.rs:83:9:83:10 | * ... | -| main.rs:90:9:90:17 | * ... | -| main.rs:97:9:97:10 | * ... | -| main.rs:105:9:105:10 | * ... | -| main.rs:106:14:106:15 | * ... | -| main.rs:113:14:113:15 | * ... | -| main.rs:114:9:114:10 | * ... | -| main.rs:115:14:115:15 | * ... | -| main.rs:122:9:122:10 | * ... | -| main.rs:125:9:125:10 | * ... | -| main.rs:135:17:135:18 | * ... | -| main.rs:136:17:136:18 | * ... | -| main.rs:201:9:201:10 | * ... | -| main.rs:209:14:209:15 | * ... | -| main.rs:211:14:211:15 | * ... | -| main.rs:224:13:224:17 | * ... | -| main.rs:229:9:229:10 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected b/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected index 2c7fbc9381f..55b07f9efcc 100644 --- a/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected @@ -1,5 +1,6 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | +| 2 | Summary: <&mut as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | edges | main.rs:17:13:17:13 | a | main.rs:18:18:18:18 | a | provenance | | | main.rs:17:17:17:26 | source(...) | main.rs:17:13:17:13 | a | provenance | | @@ -40,17 +41,17 @@ edges | main.rs:59:34:59:34 | p [&ref] | main.rs:59:33:59:34 | * ... | provenance | MaD:1 | | main.rs:73:10:73:10 | [post] b [&ref] | main.rs:74:15:74:15 | b [&ref] | provenance | | | main.rs:73:14:73:23 | source(...) | main.rs:73:10:73:10 | [post] b [&ref] | provenance | | -| main.rs:74:15:74:15 | b [&ref] | main.rs:74:14:74:15 | * ... | provenance | MaD:1 | +| main.rs:74:15:74:15 | b [&ref] | main.rs:74:14:74:15 | * ... | provenance | MaD:2 | | main.rs:90:11:90:16 | [post] &mut a [&ref] | main.rs:90:16:90:16 | [post] a | provenance | | | main.rs:90:16:90:16 | [post] a | main.rs:91:14:91:14 | a | provenance | | | main.rs:90:21:90:30 | source(...) | main.rs:90:11:90:16 | [post] &mut a [&ref] | provenance | | | main.rs:105:10:105:10 | [post] c [&ref] | main.rs:106:15:106:15 | c [&ref] | provenance | | | main.rs:105:14:105:23 | source(...) | main.rs:105:10:105:10 | [post] c [&ref] | provenance | | -| main.rs:106:15:106:15 | c [&ref] | main.rs:106:14:106:15 | * ... | provenance | MaD:1 | +| main.rs:106:15:106:15 | c [&ref] | main.rs:106:14:106:15 | * ... | provenance | MaD:2 | | main.rs:112:13:112:21 | ref mut a | main.rs:112:21:112:21 | a [&ref] | provenance | | | main.rs:112:21:112:21 | a [&ref] | main.rs:113:15:113:15 | a [&ref] | provenance | | | main.rs:112:25:112:34 | source(...) | main.rs:112:13:112:21 | ref mut a | provenance | | -| main.rs:113:15:113:15 | a [&ref] | main.rs:113:14:113:15 | * ... | provenance | MaD:1 | +| main.rs:113:15:113:15 | a [&ref] | main.rs:113:14:113:15 | * ... | provenance | MaD:2 | | main.rs:149:14:149:24 | ...: MyNumber [MyNumber] | main.rs:150:11:150:11 | m [MyNumber] | provenance | | | main.rs:150:11:150:11 | m [MyNumber] | main.rs:151:9:151:34 | ...::MyNumber(...) [MyNumber] | provenance | | | main.rs:151:9:151:34 | ...::MyNumber(...) [MyNumber] | main.rs:151:28:151:33 | number | provenance | | @@ -92,7 +93,7 @@ edges | main.rs:210:17:210:17 | [post] p [&ref] | main.rs:211:15:211:15 | p [&ref] | provenance | | | main.rs:210:20:210:29 | source(...) | main.rs:200:29:200:38 | ...: i64 | provenance | | | main.rs:210:20:210:29 | source(...) | main.rs:210:17:210:17 | [post] p [&ref] | provenance | | -| main.rs:211:15:211:15 | p [&ref] | main.rs:211:14:211:15 | * ... | provenance | MaD:1 | +| main.rs:211:15:211:15 | p [&ref] | main.rs:211:14:211:15 | * ... | provenance | MaD:2 | | main.rs:218:17:218:22 | [post] &mut n [&ref] | main.rs:218:22:218:22 | [post] n | provenance | | | main.rs:218:22:218:22 | [post] n | main.rs:219:14:219:14 | n | provenance | | | main.rs:218:25:218:34 | source(...) | main.rs:200:29:200:38 | ...: i64 | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected index 5dfb62baf4b..8ca58acd1d0 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected @@ -1,9 +1,6 @@ multipleResolvedTargets -| test.rs:59:62:59:77 | ...::from(...) | -| test.rs:66:58:66:73 | ...::from(...) | | test.rs:389:30:389:67 | pinned.poll_read(...) | | test.rs:416:26:416:54 | pinned.poll_fill_buf(...) | | test.rs:423:27:423:71 | ... .poll_fill_buf(...) | | test.rs:447:30:447:67 | pinned.poll_read(...) | | test.rs:470:26:470:54 | pinned.poll_fill_buf(...) | -| test.rs:519:50:519:66 | ...::from(...) | diff --git a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index a8f80f6f39c..00000000000 --- a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| main.rs:52:14:52:29 | ...::from(...) | diff --git a/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 8ebb39522b3..00000000000 --- a/rust/ql/test/library-tests/definitions/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,5 +0,0 @@ -multipleResolvedTargets -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | diff --git a/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index cb94b0abf16..00000000000 --- a/rust/ql/test/library-tests/elements/operations/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| test.rs:52:2:52:5 | * ... | diff --git a/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 93e644c9abb..00000000000 --- a/rust/ql/test/library-tests/formatstrings/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,45 +0,0 @@ -multipleResolvedTargets -| main.rs:28:5:28:14 | * ... | -| main.rs:28:5:28:14 | * ... | -| main.rs:28:5:28:14 | * ... | -| main.rs:28:5:28:14 | * ... | -| main.rs:29:5:29:14 | * ... | -| main.rs:29:5:29:14 | * ... | -| main.rs:29:5:29:14 | * ... | -| main.rs:29:5:29:14 | * ... | -| main.rs:30:5:30:14 | * ... | -| main.rs:30:5:30:14 | * ... | -| main.rs:30:5:30:14 | * ... | -| main.rs:30:5:30:14 | * ... | -| main.rs:31:5:31:14 | * ... | -| main.rs:31:5:31:14 | * ... | -| main.rs:31:5:31:14 | * ... | -| main.rs:31:5:31:14 | * ... | -| main.rs:33:5:33:14 | * ... | -| main.rs:33:5:33:14 | * ... | -| main.rs:33:5:33:14 | * ... | -| main.rs:33:5:33:14 | * ... | -| main.rs:34:5:34:14 | * ... | -| main.rs:34:5:34:14 | * ... | -| main.rs:34:5:34:14 | * ... | -| main.rs:34:5:34:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:35:5:35:14 | * ... | -| main.rs:36:5:36:14 | * ... | -| main.rs:36:5:36:14 | * ... | -| main.rs:36:5:36:14 | * ... | -| main.rs:36:5:36:14 | * ... | -| main.rs:37:5:37:14 | * ... | -| main.rs:37:5:37:14 | * ... | -| main.rs:37:5:37:14 | * ... | -| main.rs:37:5:37:14 | * ... | -| main.rs:75:5:75:14 | * ... | -| main.rs:75:5:75:14 | * ... | -| main.rs:75:5:75:14 | * ... | -| main.rs:75:5:75:14 | * ... | -| main.rs:76:5:76:14 | * ... | -| main.rs:76:5:76:14 | * ... | -| main.rs:76:5:76:14 | * ... | -| main.rs:76:5:76:14 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index e00293919a6..28242d86a7b 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,35 +1,2 @@ multipleResolvedTargets -| blanket_impl.rs:33:13:33:17 | * ... | -| dereference.rs:69:15:69:24 | e1.deref() | -| dereference.rs:73:15:73:17 | * ... | -| dereference.rs:77:16:77:18 | * ... | -| dereference.rs:182:17:182:26 | ... .foo() | -| dereference.rs:183:17:183:23 | S.foo() | -| dereference.rs:184:17:184:30 | ... .foo() | -| dereference.rs:186:17:186:25 | S.bar(...) | -| dereference.rs:187:17:187:29 | S.bar(...) | -| dyn_type.rs:65:20:65:23 | * ... | -| dyn_type.rs:69:21:69:24 | * ... | -| dyn_type.rs:90:10:90:13 | * ... | -| invalid/main.rs:69:13:69:17 | * ... | -| invalid/main.rs:76:13:76:17 | * ... | -| main.rs:1092:14:1092:18 | * ... | -| main.rs:1174:26:1174:30 | * ... | -| main.rs:1518:14:1518:21 | * ... | -| main.rs:1518:16:1518:20 | * ... | -| main.rs:1523:14:1523:18 | * ... | -| main.rs:1554:27:1554:29 | * ... | -| main.rs:1668:17:1668:24 | * ... | -| main.rs:1668:18:1668:24 | * ... | -| main.rs:1806:17:1806:21 | * ... | -| main.rs:1821:28:1821:32 | * ... | -| main.rs:2454:13:2454:18 | * ... | -| main.rs:2648:13:2648:31 | ...::from(...) | -| main.rs:2649:13:2649:31 | ...::from(...) | -| main.rs:2650:13:2650:31 | ...::from(...) | -| main.rs:2656:13:2656:31 | ...::from(...) | -| main.rs:2657:13:2657:31 | ...::from(...) | -| main.rs:2658:13:2658:31 | ...::from(...) | | main.rs:3087:13:3087:17 | x.f() | -| pattern_matching.rs:273:13:273:27 | * ... | -| pattern_matching.rs:273:14:273:27 | * ... | diff --git a/rust/ql/test/library-tests/type-inference/dereference.rs b/rust/ql/test/library-tests/type-inference/dereference.rs index f84d03a3a4e..6b8d659eb3e 100644 --- a/rust/ql/test/library-tests/type-inference/dereference.rs +++ b/rust/ql/test/library-tests/type-inference/dereference.rs @@ -179,12 +179,12 @@ mod ref_vs_mut_ref { } pub fn test() { - let x = (&S).foo(); // $ target=MyTrait1::foo1 type=x:S $ SPURIOUS: target=MyTrait1::foo2 - let y = S.foo(); // $ target=MyTrait1::foo1 type=y:S $ SPURIOUS: target=MyTrait1::foo2 - let z = (&mut S).foo(); // $ target=MyTrait1::foo2 type=z:i64 $ SPURIOUS: target=MyTrait1::foo1 + let x = (&S).foo(); // $ target=MyTrait1::foo1 type=x:S + let y = S.foo(); // $ target=MyTrait1::foo1 type=y:S + let z = (&mut S).foo(); // $ target=MyTrait1::foo2 type=z:i64 - let x = S.bar(&S); // $ target=MyTrait2::bar1 type=x:S $ SPURIOUS: target=MyTrait2::bar2 - let y = S.bar(&mut S); // $ target=MyTrait2::bar2 type=y:i64 $ SPURIOUS: target=MyTrait2::bar1 + let x = S.bar(&S); // $ target=MyTrait2::bar1 type=x:S + let y = S.bar(&mut S); // $ target=MyTrait2::bar2 type=y:i64 } } @@ -212,7 +212,7 @@ mod rust_reference_example { pub fn main() { let mut f = Foo {}; - f.bar(); // $ SPURIOUS: target=bar1 $ MISSING: target=bar2 + f.bar(); // $ target=bar2 } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index a45b97d306d..d367525c7b8 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -2640,7 +2640,7 @@ mod loops { let mut strings1 = ["foo", "bar", "baz"]; // $ type=strings1:TArray.TRef.str for s in &strings1 {} // $ type=s:TRef.TRef.str - for s in &mut strings1 {} // $ type=s:TRef.TRef.str + for s in &mut strings1 {} // $ type=s:TRefMut.TRef.str for s in strings1 {} // $ type=s:TRef.str let strings2 = // $ type=strings2:TArray.String diff --git a/rust/ql/test/library-tests/type-inference/pattern_matching.rs b/rust/ql/test/library-tests/type-inference/pattern_matching.rs index b7f96cd555b..33e6b9f09f3 100755 --- a/rust/ql/test/library-tests/type-inference/pattern_matching.rs +++ b/rust/ql/test/library-tests/type-inference/pattern_matching.rs @@ -269,7 +269,7 @@ pub fn identifier_patterns() { let mut ref_mut_val = 5i32; match &mut ref_mut_val { ref mut x => { - let ref_mut_bound = x; // $ type=ref_mut_bound:TRef.TRef.i32 + let ref_mut_bound = x; // $ type=ref_mut_bound:TRefMut.TRefMut.i32 **ref_mut_bound += 1; // $ target=deref target=add_assign println!("Ref mut pattern"); } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 1c69fe5a44b..d5b9e30f05e 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -418,8 +418,8 @@ inferCertainType | dereference.rs:151:16:151:19 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:151:16:151:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:151:27:153:9 | { ... } | | dereference.rs:147:5:147:13 | S | -| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:158:16:158:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:158:16:158:19 | SelfParam | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:158:29:160:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:164:16:164:19 | SelfParam | | dereference.rs:163:5:165:5 | Self [trait MyTrait2] | | dereference.rs:164:22:164:24 | arg | | dereference.rs:163:20:163:21 | T1 | @@ -428,20 +428,20 @@ inferCertainType | dereference.rs:169:22:169:24 | arg | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:169:36:171:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:176:16:176:19 | SelfParam | | dereference.rs:147:5:147:13 | S | -| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | & | -| dereference.rs:176:22:176:24 | arg | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:176:22:176:24 | arg | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:176:42:178:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:181:19:188:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:182:17:182:20 | (...) | | {EXTERNAL LOCATION} | & | | dereference.rs:182:18:182:19 | &S | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | & | +| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | &mut | | dereference.rs:186:23:186:24 | &S | | {EXTERNAL LOCATION} | & | -| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | & | +| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | &mut | | dereference.rs:196:16:196:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:196:16:196:20 | SelfParam | TRef | dereference.rs:195:5:197:5 | Self [trait Bar] | -| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:201:16:201:24 | SelfParam | TRef | dereference.rs:193:5:193:17 | Foo | +| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:201:16:201:24 | SelfParam | TRefMut | dereference.rs:193:5:193:17 | Foo | | dereference.rs:201:27:203:9 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | | {EXTERNAL LOCATION} | & | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -1803,19 +1803,19 @@ inferCertainType | main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | | main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | | main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1404:16:1404:24 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1406:21:1406:29 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | | main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1407:13:1407:16 | self | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1413:16:1413:24 | SelfParam | TRef | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1413:16:1413:24 | SelfParam | TRef.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | | main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | | main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | @@ -1858,7 +1858,7 @@ inferCertainType | main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | | main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -2052,13 +2052,13 @@ inferCertainType | main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | | main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1637:17:1637:25 | SelfParam | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1638:13:1638:16 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1638:26:1638:29 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | | main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -2105,7 +2105,7 @@ inferCertainType | main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | | main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | | main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | & | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | | main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | @@ -2277,7 +2277,7 @@ inferCertainType | main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | | main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | | main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | & | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | | main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | | main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | | main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | @@ -2307,15 +2307,15 @@ inferCertainType | main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1882:23:1882:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1883:13:1883:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1884:13:1884:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2325,15 +2325,15 @@ inferCertainType | main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1900:23:1900:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1901:13:1901:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1902:13:1902:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2343,15 +2343,15 @@ inferCertainType | main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1917:23:1917:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1918:13:1918:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1919:13:1919:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2361,15 +2361,15 @@ inferCertainType | main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1934:23:1934:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1935:13:1935:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1936:13:1936:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2379,15 +2379,15 @@ inferCertainType | main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1951:23:1951:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1952:13:1952:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1953:13:1953:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2397,15 +2397,15 @@ inferCertainType | main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1968:26:1968:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1969:13:1969:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1970:13:1970:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2415,15 +2415,15 @@ inferCertainType | main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1985:25:1985:33 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1986:13:1986:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1987:13:1987:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -2433,15 +2433,15 @@ inferCertainType | main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2002:26:2002:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2003:13:2003:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2004:13:2004:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | @@ -2451,15 +2451,15 @@ inferCertainType | main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2019:23:2019:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2020:13:2020:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2021:13:2021:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | @@ -2469,15 +2469,15 @@ inferCertainType | main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2036:23:2036:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2037:13:2037:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2038:13:2038:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | @@ -2768,10 +2768,10 @@ inferCertainType | main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | | main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRef | main.rs:2253:5:2253:14 | S2 | -| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2260:13:2260:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | | main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | | main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | | main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -2856,14 +2856,14 @@ inferCertainType | main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | | main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | | main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2387:17:2387:25 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2387:17:2387:25 | SelfParam | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | | main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | | main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2388:13:2388:16 | self | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2388:13:2388:16 | self | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | | main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | | main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | @@ -3080,7 +3080,7 @@ inferCertainType | main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | | main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | | main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | | main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | @@ -3829,13 +3829,13 @@ inferCertainType | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:270:16:270:26 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:271:22:275:9 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:274:22:274:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | @@ -3931,9 +3931,9 @@ inferCertainType | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:338:22:338:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:342:16:342:28 | mutable_value | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:343:18:343:18 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:343:23:346:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:344:17:344:29 | mut_ref_bound | | {EXTERNAL LOCATION} | & | @@ -4507,7 +4507,7 @@ inferCertainType | raw_pointer.rs:54:5:54:32 | raw_pointer_const_deref(...) | | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:54:29:54:31 | &10 | | {EXTERNAL LOCATION} | & | | raw_pointer.rs:55:5:55:36 | raw_pointer_mut_deref(...) | | {EXTERNAL LOCATION} | i32 | -| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | & | +| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | &mut | | raw_pointer.rs:55:32:55:35 | true | | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:56:5:56:22 | raw_const_borrow(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:57:5:57:20 | raw_mut_borrow(...) | | {EXTERNAL LOCATION} | () | @@ -5321,8 +5321,8 @@ inferType | dereference.rs:151:16:151:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:151:27:153:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:152:13:152:13 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:158:16:158:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:158:16:158:19 | SelfParam | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:158:29:160:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:159:13:159:14 | 42 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:159:13:159:14 | 42 | | {EXTERNAL LOCATION} | i64 | @@ -5334,55 +5334,45 @@ inferType | dereference.rs:169:36:171:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:170:13:170:13 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:176:16:176:19 | SelfParam | | dereference.rs:147:5:147:13 | S | -| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | & | -| dereference.rs:176:22:176:24 | arg | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:176:22:176:24 | arg | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:176:42:178:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:177:13:177:14 | 42 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:177:13:177:14 | 42 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:181:19:188:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:182:13:182:13 | x | | dereference.rs:147:5:147:13 | S | -| dereference.rs:182:13:182:13 | x | | {EXTERNAL LOCATION} | i64 | | dereference.rs:182:17:182:20 | (...) | | {EXTERNAL LOCATION} | & | | dereference.rs:182:17:182:20 | (...) | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:182:17:182:26 | ... .foo() | | dereference.rs:147:5:147:13 | S | -| dereference.rs:182:17:182:26 | ... .foo() | | {EXTERNAL LOCATION} | i64 | | dereference.rs:182:18:182:19 | &S | | {EXTERNAL LOCATION} | & | | dereference.rs:182:18:182:19 | &S | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:182:19:182:19 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:183:13:183:13 | y | | dereference.rs:147:5:147:13 | S | -| dereference.rs:183:13:183:13 | y | | {EXTERNAL LOCATION} | i64 | | dereference.rs:183:17:183:17 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:183:17:183:23 | S.foo() | | dereference.rs:147:5:147:13 | S | -| dereference.rs:183:17:183:23 | S.foo() | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:13:184:13 | z | | dereference.rs:147:5:147:13 | S | | dereference.rs:184:13:184:13 | z | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:17:184:24 | (...) | TRef | dereference.rs:147:5:147:13 | S | -| dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:147:5:147:13 | S | +| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:17:184:24 | (...) | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:184:17:184:30 | ... .foo() | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:18:184:23 | &mut S | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:18:184:23 | &mut S | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:184:23:184:23 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:186:13:186:13 | x | | dereference.rs:147:5:147:13 | S | -| dereference.rs:186:13:186:13 | x | | {EXTERNAL LOCATION} | i64 | | dereference.rs:186:17:186:17 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:147:5:147:13 | S | -| dereference.rs:186:17:186:25 | S.bar(...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:186:23:186:24 | &S | | {EXTERNAL LOCATION} | & | | dereference.rs:186:23:186:24 | &S | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:186:24:186:24 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:187:13:187:13 | y | | dereference.rs:147:5:147:13 | S | | dereference.rs:187:13:187:13 | y | | {EXTERNAL LOCATION} | i64 | | dereference.rs:187:17:187:17 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:187:17:187:29 | S.bar(...) | | dereference.rs:147:5:147:13 | S | | dereference.rs:187:17:187:29 | S.bar(...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | & | -| dereference.rs:187:23:187:28 | &mut S | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:187:23:187:28 | &mut S | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:187:28:187:28 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:196:16:196:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:196:16:196:20 | SelfParam | TRef | dereference.rs:195:5:197:5 | Self [trait Bar] | -| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:201:16:201:24 | SelfParam | TRef | dereference.rs:193:5:193:17 | Foo | +| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:201:16:201:24 | SelfParam | TRefMut | dereference.rs:193:5:193:17 | Foo | | dereference.rs:201:27:203:9 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:202:13:202:39 | MacroExpr | | {EXTERNAL LOCATION} | () | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | | {EXTERNAL LOCATION} | & | @@ -7653,20 +7643,20 @@ inferType | main.rs:1391:17:1391:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | | main.rs:1391:17:1391:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | | main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1404:16:1404:24 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1406:21:1406:29 | SelfParam | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | | main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1407:13:1407:16 | self | TRef | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | | main.rs:1407:13:1407:27 | self.set(...) | | {EXTERNAL LOCATION} | () | | main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1413:16:1413:24 | SelfParam | TRef | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1413:16:1413:24 | SelfParam | TRef.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | | main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | | main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | @@ -7739,9 +7729,9 @@ inferType | main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1446:22:1446:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1447:23:1447:29 | &mut x4 | TRef | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1447:23:1447:29 | &mut x4 | TRef.T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1447:23:1447:29 | &mut x4 | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:23:1447:29 | &mut x4 | TRefMut.T | main.rs:1431:5:1432:13 | S | | main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1447:28:1447:29 | x4 | T | main.rs:1431:5:1432:13 | S | | main.rs:1447:32:1447:32 | S | | main.rs:1431:5:1432:13 | S | @@ -8170,16 +8160,16 @@ inferType | main.rs:1626:16:1626:17 | &x | TRef.T | main.rs:1607:5:1607:13 | S | | main.rs:1626:17:1626:17 | x | | main.rs:1609:5:1609:26 | MyStruct | | main.rs:1626:17:1626:17 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1637:17:1637:25 | SelfParam | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1638:13:1638:16 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1638:13:1638:21 | self.bool | | {EXTERNAL LOCATION} | bool | | main.rs:1638:13:1638:34 | ... = ... | | {EXTERNAL LOCATION} | () | | main.rs:1638:25:1638:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1638:26:1638:29 | self | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1638:26:1638:34 | self.bool | | {EXTERNAL LOCATION} | bool | | main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | @@ -8271,8 +8261,8 @@ inferType | main.rs:1672:17:1672:20 | flag | | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1672:24:1672:41 | ...::default(...) | | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1673:22:1673:30 | &mut flag | TRef | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:22:1673:30 | &mut flag | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1673:27:1673:30 | flag | | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -8631,8 +8621,8 @@ inferType | main.rs:1829:21:1829:22 | 42 | | {EXTERNAL LOCATION} | i32 | | main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | | main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1830:27:1830:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1830:27:1830:32 | &mut v | TRefMut | {EXTERNAL LOCATION} | i32 | | main.rs:1830:32:1830:32 | v | | {EXTERNAL LOCATION} | i32 | | main.rs:1831:13:1831:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1831:13:1831:13 | x | TRef | {EXTERNAL LOCATION} | i32 | @@ -8700,18 +8690,18 @@ inferType | main.rs:1875:20:1875:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1875:29:1875:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1882:23:1882:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1883:13:1883:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1883:13:1883:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1883:13:1883:27 | ... += ... | | {EXTERNAL LOCATION} | () | | main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1883:23:1883:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1884:13:1884:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1884:13:1884:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1884:13:1884:27 | ... += ... | | {EXTERNAL LOCATION} | () | | main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8730,18 +8720,18 @@ inferType | main.rs:1893:20:1893:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1893:29:1893:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1900:23:1900:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1901:13:1901:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1901:13:1901:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1901:13:1901:27 | ... -= ... | | {EXTERNAL LOCATION} | () | | main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1901:23:1901:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1902:13:1902:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1902:13:1902:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1902:13:1902:27 | ... -= ... | | {EXTERNAL LOCATION} | () | | main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8760,18 +8750,18 @@ inferType | main.rs:1911:20:1911:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1911:29:1911:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1917:23:1917:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1918:13:1918:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1918:13:1918:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1918:13:1918:27 | ... *= ... | | {EXTERNAL LOCATION} | () | | main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1918:23:1918:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1919:13:1919:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1919:13:1919:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1919:13:1919:27 | ... *= ... | | {EXTERNAL LOCATION} | () | | main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8790,18 +8780,18 @@ inferType | main.rs:1928:20:1928:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1928:29:1928:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1934:23:1934:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1935:13:1935:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1935:13:1935:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1935:13:1935:27 | ... /= ... | | {EXTERNAL LOCATION} | () | | main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1935:23:1935:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1936:13:1936:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1936:13:1936:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1936:13:1936:27 | ... /= ... | | {EXTERNAL LOCATION} | () | | main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8820,18 +8810,18 @@ inferType | main.rs:1945:20:1945:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1945:29:1945:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1951:23:1951:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1952:13:1952:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1952:13:1952:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1952:13:1952:27 | ... %= ... | | {EXTERNAL LOCATION} | () | | main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1952:23:1952:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1953:13:1953:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1953:13:1953:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1953:13:1953:27 | ... %= ... | | {EXTERNAL LOCATION} | () | | main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8850,18 +8840,18 @@ inferType | main.rs:1962:20:1962:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1962:29:1962:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1968:26:1968:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1969:13:1969:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1969:13:1969:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1969:13:1969:27 | ... &= ... | | {EXTERNAL LOCATION} | () | | main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1969:23:1969:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1970:13:1970:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1970:13:1970:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1970:13:1970:27 | ... &= ... | | {EXTERNAL LOCATION} | () | | main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8880,18 +8870,18 @@ inferType | main.rs:1979:20:1979:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1979:29:1979:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1985:25:1985:33 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1986:13:1986:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1986:13:1986:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1986:13:1986:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | | main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1986:23:1986:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1987:13:1987:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1987:13:1987:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1987:13:1987:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | | main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8910,18 +8900,18 @@ inferType | main.rs:1996:20:1996:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:1996:29:1996:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2002:26:2002:34 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2003:13:2003:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2003:13:2003:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2003:13:2003:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | | main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2003:23:2003:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2004:13:2004:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2004:13:2004:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2004:13:2004:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | | main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | @@ -8938,17 +8928,17 @@ inferType | main.rs:2013:20:2013:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2013:20:2013:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | | main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2019:23:2019:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2020:13:2020:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2020:13:2020:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2020:13:2020:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | | main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2021:13:2021:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2021:13:2021:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2021:13:2021:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | | main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | @@ -8964,17 +8954,17 @@ inferType | main.rs:2030:20:2030:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2030:20:2030:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | | main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2036:23:2036:31 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2037:13:2037:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2037:13:2037:18 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2037:13:2037:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | | main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2038:13:2038:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2038:13:2038:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2038:13:2038:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | | main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | @@ -9433,10 +9423,10 @@ inferType | main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | | main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | | main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRef | main.rs:2253:5:2253:14 | S2 | -| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2260:13:2260:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | | main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | | main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | | main.rs:2262:13:2262:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | @@ -9611,14 +9601,14 @@ inferType | main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | | main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | main.rs:2384:27:2384:36 | ...::new(...) | T | main.rs:2382:10:2382:10 | T | -| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2387:17:2387:25 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2387:17:2387:25 | SelfParam | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | | main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | | main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2388:13:2388:16 | self | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2388:13:2388:16 | self | TRef.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | | main.rs:2388:13:2388:21 | self.data | | {EXTERNAL LOCATION} | Vec | | main.rs:2388:13:2388:21 | self.data | A | {EXTERNAL LOCATION} | Global | | main.rs:2388:13:2388:21 | self.data | T | main.rs:2382:10:2382:10 | T | @@ -10002,13 +9992,13 @@ inferType | main.rs:2642:19:2642:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | | main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:13:2643:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2643:13:2643:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2643:13:2643:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2643:18:2643:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2643:18:2643:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2643:18:2643:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:13:2643:13 | s | | {EXTERNAL LOCATION} | &mut | +| main.rs:2643:13:2643:13 | s | TRefMut | {EXTERNAL LOCATION} | & | +| main.rs:2643:13:2643:13 | s | TRefMut.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray.TRef | {EXTERNAL LOCATION} | str | | main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | | main.rs:2643:23:2643:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | | main.rs:2643:23:2643:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | @@ -11650,26 +11640,26 @@ inferType | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:16:270:26 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:271:17:271:17 | x | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:271:17:271:17 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:271:17:271:17 | x | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:271:17:271:17 | x | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:271:22:275:9 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:13:273:27 | * ... | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:13:273:32 | ... += ... | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:273:14:273:27 | * ... | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:14:273:27 | * ... | TRef | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:273:14:273:27 | * ... | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:14:273:27 | * ... | TRefMut | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:32:273:32 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -11793,11 +11783,11 @@ inferType | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:50:338:60 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:5:347:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:16:342:28 | mutable_value | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:343:9:343:18 | &mut ... | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:343:9:343:18 | &mut ... | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:343:18:343:18 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:343:18:343:18 | x | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:343:23:346:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -13013,8 +13003,8 @@ inferType | raw_pointer.rs:54:29:54:31 | &10 | TRef | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:54:30:54:31 | 10 | | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:55:5:55:36 | raw_pointer_mut_deref(...) | | {EXTERNAL LOCATION} | i32 | -| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | & | -| raw_pointer.rs:55:27:55:35 | &mut true | TRef | {EXTERNAL LOCATION} | bool | +| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | &mut | +| raw_pointer.rs:55:27:55:35 | &mut true | TRefMut | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:55:32:55:35 | true | | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:56:5:56:22 | raw_const_borrow(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:57:5:57:20 | raw_mut_borrow(...) | | {EXTERNAL LOCATION} | () | diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 8dfdad04adf..00000000000 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,17 +0,0 @@ -multipleResolvedTargets -| main.rs:16:15:16:16 | * ... | -| main.rs:91:19:91:40 | ...::from(...) | -| main.rs:113:19:113:40 | ...::from(...) | -| main.rs:507:5:507:10 | * ... | -| main.rs:512:5:512:6 | * ... | -| main.rs:513:9:513:10 | * ... | -| main.rs:514:9:514:10 | * ... | -| main.rs:519:5:519:6 | * ... | -| main.rs:520:9:520:10 | * ... | -| main.rs:521:9:521:10 | * ... | -| main.rs:522:5:522:6 | * ... | -| main.rs:530:5:530:6 | * ... | -| main.rs:542:5:542:7 | * ... | -| main.rs:542:6:542:7 | * ... | -| main.rs:552:5:552:6 | * ... | -| main.rs:699:9:699:13 | * ... | diff --git a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index fbf9238f366..00000000000 --- a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| my_struct.rs:25:19:25:37 | ...::from(...) | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index 563e370b4ed..ed21d9772fc 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -6,7 +6,7 @@ | Files extracted - without errors % | 57 | | Inconsistencies - AST | 0 | | Inconsistencies - CFG | 0 | -| Inconsistencies - Path resolution | 1 | +| Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | | Lines of code extracted | 60 | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 3187982b20e..f957ba46e0f 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -1,30 +1,3 @@ -multipleResolvedTargets -| mysql.rs:15:24:15:39 | ...::from(...) | -| mysql.rs:16:26:16:85 | ...::from(...) | -| mysql.rs:18:13:18:66 | ...::from(...) | -| mysql.rs:19:30:19:83 | ...::from(...) | -| mysql.rs:100:24:100:39 | ...::from(...) | -| mysql.rs:101:26:101:85 | ...::from(...) | -| mysql.rs:103:13:103:66 | ...::from(...) | -| mysql.rs:104:30:104:83 | ...::from(...) | -| sqlx.rs:46:24:46:44 | ...::from(...) | -| sqlx.rs:47:56:47:76 | ...::from(...) | -| sqlx.rs:48:97:48:117 | ...::from(...) | -| sqlx.rs:50:24:50:83 | ...::from(...) | -| sqlx.rs:51:24:51:77 | ...::from(...) | -| sqlx.rs:55:26:55:79 | ...::from(...) | -| sqlx.rs:61:28:61:81 | ...::from(...) | -| sqlx.rs:99:24:99:44 | ...::from(...) | -| sqlx.rs:100:97:100:117 | ...::from(...) | -| sqlx.rs:101:24:101:77 | ...::from(...) | -| sqlx.rs:102:26:102:79 | ...::from(...) | -| sqlx.rs:103:28:103:81 | ...::from(...) | -| sqlx.rs:172:24:172:44 | ...::from(...) | -| sqlx.rs:173:97:173:117 | ...::from(...) | -| sqlx.rs:174:24:174:77 | ...::from(...) | -| sqlx.rs:175:26:175:79 | ...::from(...) | -| sqlx.rs:176:28:176:82 | ...::from(...) | -| sqlx.rs:202:57:202:85 | ...::from(...) | multiplePathResolutions | mysql.rs:5:37:5:74 | Result::<...> | | mysql.rs:26:20:26:44 | Result::<...> | diff --git a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 698af5a0279..00000000000 --- a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleResolvedTargets -| main.rs:9:43:9:63 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 260e09db470..580c9cd8202 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,39 +1,2 @@ multipleResolvedTargets -| test_logging.rs:214:13:214:22 | * ... | -| test_logging.rs:214:13:214:22 | * ... | -| test_logging.rs:214:13:214:22 | * ... | -| test_logging.rs:214:13:214:22 | * ... | -| test_logging.rs:217:13:217:22 | * ... | -| test_logging.rs:217:13:217:22 | * ... | -| test_logging.rs:217:13:217:22 | * ... | -| test_logging.rs:217:13:217:22 | * ... | -| test_logging.rs:223:13:223:28 | * ... | -| test_logging.rs:223:13:223:28 | * ... | -| test_logging.rs:223:13:223:28 | * ... | -| test_logging.rs:223:13:223:28 | * ... | -| test_logging.rs:226:13:226:28 | * ... | -| test_logging.rs:226:13:226:28 | * ... | -| test_logging.rs:226:13:226:28 | * ... | -| test_logging.rs:226:13:226:28 | * ... | -| test_storage.rs:13:10:13:33 | ...::from(...) | -| test_storage.rs:17:10:17:35 | ...::from(...) | -| test_storage.rs:21:10:21:35 | ...::from(...) | -| test_storage.rs:25:10:25:32 | ...::from(...) | -| test_storage.rs:29:10:29:35 | ...::from(...) | | test_storage.rs:36:45:36:57 | text.as_ref() | -| test_storage.rs:68:25:68:74 | ...::from(...) | -| test_storage.rs:69:25:69:76 | ...::from(...) | -| test_storage.rs:70:25:70:82 | ...::from(...) | -| test_storage.rs:71:25:71:79 | ...::from(...) | -| test_storage.rs:72:25:72:70 | ...::from(...) | -| test_storage.rs:73:25:73:67 | ...::from(...) | -| test_storage.rs:75:25:75:65 | ...::from(...) | -| test_storage.rs:76:25:76:65 | ...::from(...) | -| test_storage.rs:78:25:78:65 | ...::from(...) | -| test_storage.rs:79:25:79:65 | ...::from(...) | -| test_storage.rs:80:25:80:70 | ...::from(...) | -| test_storage.rs:81:25:81:72 | ...::from(...) | -| test_storage.rs:82:26:82:77 | ...::from(...) | -| test_storage.rs:188:29:188:86 | ...::from(...) | -| test_storage.rs:189:28:189:82 | ...::from(...) | -| test_storage.rs:190:28:190:81 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index b3a011a27af..00000000000 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,16 +0,0 @@ -multipleResolvedTargets -| deallocation.rs:354:11:354:29 | ...::from(...) | -| deallocation.rs:355:11:355:29 | ...::from(...) | -| deallocation.rs:420:2:420:4 | * ... | -| deallocation.rs:421:23:421:25 | * ... | -| deallocation.rs:425:33:425:35 | * ... | -| deallocation.rs:430:27:430:29 | * ... | -| lifetime.rs:217:17:217:25 | * ... | -| lifetime.rs:610:13:610:31 | ...::from(...) | -| lifetime.rs:611:13:611:31 | ...::from(...) | -| lifetime.rs:628:13:628:31 | ...::from(...) | -| lifetime.rs:630:11:630:25 | * ... | -| lifetime.rs:692:12:692:14 | * ... | -| lifetime.rs:693:12:693:14 | * ... | -| lifetime.rs:694:12:694:14 | * ... | -| lifetime.rs:734:11:734:13 | * ... | diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index be3b445209d..00000000000 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,31 +0,0 @@ -multipleResolvedTargets -| main.rs:14:13:14:29 | ...::from(...) | -| main.rs:15:13:15:29 | ...::from(...) | -| main.rs:223:9:223:18 | * ... | -| main.rs:223:9:223:18 | * ... | -| main.rs:223:9:223:18 | * ... | -| main.rs:223:9:223:18 | * ... | -| main.rs:228:9:228:18 | * ... | -| main.rs:228:9:228:18 | * ... | -| main.rs:228:9:228:18 | * ... | -| main.rs:228:9:228:18 | * ... | -| main.rs:353:5:353:14 | * ... | -| main.rs:353:5:353:14 | * ... | -| main.rs:353:5:353:14 | * ... | -| main.rs:353:5:353:14 | * ... | -| main.rs:539:13:539:14 | * ... | -| main.rs:544:19:544:20 | * ... | -| more.rs:34:11:34:19 | * ... | -| more.rs:45:20:45:26 | * ... | -| more.rs:56:20:56:30 | * ... | -| more.rs:56:21:56:30 | * ... | -| more.rs:61:20:61:30 | * ... | -| more.rs:61:21:61:30 | * ... | -| more.rs:67:20:67:25 | * ... | -| more.rs:71:5:71:10 | * ... | -| more.rs:75:5:75:10 | * ... | -| more.rs:80:5:80:10 | * ... | -| more.rs:82:20:82:26 | * ... | -| unreachable.rs:165:20:165:42 | ...::from(...) | -| unreachable.rs:171:9:171:15 | ...::from(...) | -| unreachable.rs:177:17:177:25 | ...::from(...) | diff --git a/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index b9195fc15f0..00000000000 --- a/rust/ql/test/utils-tests/modelgenerator/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,9 +0,0 @@ -multipleResolvedTargets -| option.rs:34:18:34:22 | * ... | -| option.rs:61:15:61:19 | * ... | -| option.rs:69:15:69:19 | * ... | -| option.rs:306:9:306:13 | * ... | -| option.rs:335:13:335:17 | * ... | -| option.rs:483:27:483:29 | * ... | -| summaries.rs:87:5:87:6 | * ... | -| summaries.rs:92:5:92:6 | * ... | From aae6cd93a28d0b380ef4b46db594a66ed93db403 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 18 Dec 2025 12:44:23 +0100 Subject: [PATCH 190/194] Address review comments --- .../codeql/rust/dataflow/internal/Node.qll | 4 +- rust/ql/lib/codeql/rust/internal/Type.qll | 21 ++- .../codeql/rust/internal/TypeInference.qll | 132 +++++++++--------- 3 files changed, 79 insertions(+), 78 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index cc738d1dc86..f2f6fa1b0d8 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -230,7 +230,7 @@ final class ExprArgumentNode extends ArgumentNode, ExprNode { ExprArgumentNode() { isArgumentForCall(n, call_, pos_) and not TypeInference::implicitDeref(n) and - not TypeInference::implicitBorrow(n) + not TypeInference::implicitBorrow(n, _) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { @@ -579,7 +579,7 @@ newtype TNode = TypeInference::implicitDeref(n) and borrow = false or - TypeInference::implicitBorrow(n) and + TypeInference::implicitBorrow(n, _) and borrow = true } or TDerefOutNode(DerefExpr de, Boolean isPost) or diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index 83dcfff8c3a..b4907dee172 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -226,22 +226,12 @@ TypeParamTypeParameter getArrayTypeParameter() { abstract class RefType extends StructType { } -pragma[nomagic] -TypeParamTypeParameter getRefTypeParameter() { - result = any(RefType t).getPositionalTypeParameter(0) -} - class RefMutType extends RefType { RefMutType() { this.getStruct() instanceof Builtins::RefMutType } override string toString() { result = "&mut" } } -pragma[nomagic] -TypeParamTypeParameter getRefMutTypeParameter() { - result = any(RefMutType t).getPositionalTypeParameter(0) -} - class RefSharedType extends RefType { RefSharedType() { this.getStruct() instanceof Builtins::RefSharedType } @@ -249,8 +239,15 @@ class RefSharedType extends RefType { } pragma[nomagic] -TypeParamTypeParameter getRefSharedTypeParameter() { - result = any(RefSharedType t).getPositionalTypeParameter(0) +RefType getRefType(boolean isMutable) { + isMutable = true and result instanceof RefMutType + or + isMutable = false and result instanceof RefSharedType +} + +pragma[nomagic] +TypeParamTypeParameter getRefTypeParameter(boolean isMutable) { + result = getRefType(isMutable).getPositionalTypeParameter(0) } /** diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index a004b2cbf4f..5b0ed687357 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -501,9 +501,9 @@ module CertainTypeInference { prefix1.isEmpty() and if ip.isRef() then - if ip.isMut() - then prefix2 = TypePath::singleton(getRefMutTypeParameter()) - else prefix2 = TypePath::singleton(getRefSharedTypeParameter()) + exists(boolean isMutable | if ip.isMut() then isMutable = true else isMutable = false | + prefix2 = TypePath::singleton(getRefTypeParameter(isMutable)) + ) else prefix2.isEmpty() ) } @@ -726,9 +726,9 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat any(RefPat rp | n1 = rp.getPat() and prefix1.isEmpty() and - if rp.isMut() - then prefix2 = TypePath::singleton(getRefMutTypeParameter()) - else prefix2 = TypePath::singleton(getRefSharedTypeParameter()) + exists(boolean isMutable | if rp.isMut() then isMutable = true else isMutable = false | + prefix2 = TypePath::singleton(getRefTypeParameter(isMutable)) + ) ) or exists(int i, int arity | @@ -1272,29 +1272,31 @@ private predicate isComplexRootStripped(TypePath path, Type type) { private newtype TBorrowKind = TNoBorrowKind() or - TSharedBorrowKind() or - TMutBorrowKind() + TSomeBorrowKind(Boolean isMutable) private class BorrowKind extends TBorrowKind { predicate isNoBorrow() { this = TNoBorrowKind() } + predicate isSharedBorrow() { this = TSomeBorrowKind(false) } + + predicate isMutableBorrow() { this = TSomeBorrowKind(true) } + RefType getRefType() { - this = TSharedBorrowKind() and - result instanceof RefSharedType - or - this = TMutBorrowKind() and - result instanceof RefMutType + exists(boolean isMutable | + this = TSomeBorrowKind(isMutable) and + result = getRefType(isMutable) + ) } string toString() { - this = TNoBorrowKind() and + this.isNoBorrow() and result = "" or - this = TSharedBorrowKind() and - result = "&" - or - this = TMutBorrowKind() and + this.isMutableBorrow() and result = "&mut" + or + this.isSharedBorrow() and + result = "&" } } @@ -1559,7 +1561,7 @@ private module MethodResolution { this.hasNoCompatibleTargetMutBorrow(derefChain0) and t0 = this.getACandidateReceiverTypeAtNoBorrow(derefChain0, path0) | - path0.isCons(getRefTypeParameter(), path) and + path0.isCons(getRefTypeParameter(_), path) and result = t0 and derefChain = derefChain0 + ".ref" or @@ -1733,13 +1735,14 @@ private module MethodResolution { string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, TSharedBorrowKind(), strippedTypePath) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(false), strippedTypePath) and n = -1 or this.hasNoCompatibleTargetSharedBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSharedBorrowKind(), + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSomeBorrowKind(false), strippedTypePath, t) ) } @@ -1762,12 +1765,13 @@ private module MethodResolution { string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { this.hasNoCompatibleTargetSharedBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, TMutBorrowKind(), strippedTypePath) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(true), strippedTypePath) and n = -1 or this.hasNoCompatibleTargetMutBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TMutBorrowKind(), + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSomeBorrowKind(true), strippedTypePath, t) ) } @@ -1790,14 +1794,15 @@ private module MethodResolution { string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, TSharedBorrowKind(), strippedTypePath) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(false), strippedTypePath) and n = -1 or this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSharedBorrowKind(), strippedTypePath, - t) + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSomeBorrowKind(false), + strippedTypePath, t) ) } @@ -1819,13 +1824,15 @@ private module MethodResolution { string derefChain, TypePath strippedTypePath, Type strippedType, int n ) { this.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, TMutBorrowKind(), strippedTypePath) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(true), strippedTypePath) and n = -1 or this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and exists(Type t | t = getNthLookupType(strippedType, n) | - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TMutBorrowKind(), strippedTypePath, t) + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSomeBorrowKind(true), + strippedTypePath, t) ) } @@ -1856,17 +1863,17 @@ private module MethodResolution { pragma[nomagic] Type getACandidateReceiverTypeAt(string derefChain, BorrowKind borrow, TypePath path) { result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, path) and - borrow = TNoBorrowKind() + borrow.isNoBorrow() or exists(RefType rt | // first try shared borrow this.supportsAutoDerefAndBorrow() and this.hasNoCompatibleTargetNoBorrow(derefChain) and - borrow = TSharedBorrowKind() + borrow.isSharedBorrow() or // then try mutable borrow this.hasNoCompatibleTargetSharedBorrow(derefChain) and - borrow = TMutBorrowKind() + borrow.isMutableBorrow() | rt = borrow.getRefType() and ( @@ -1899,9 +1906,8 @@ private module MethodResolution { receiver = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } - predicate argumentHasImplicitBorrow(AstNode arg, BorrowKind borrow) { - exists(this.resolveCallTarget(_, "", borrow)) and - borrow != TNoBorrowKind() and + predicate argumentHasImplicitBorrow(AstNode arg, boolean isMutable) { + exists(this.resolveCallTarget(_, "", TSomeBorrowKind(isMutable))) and arg = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } } @@ -2010,24 +2016,22 @@ private module MethodResolution { result = super.getOperand(pos.asPosition() + 1) } - private predicate implicitBorrowAt(ArgumentPosition pos, BorrowKind borrow) { + private predicate implicitBorrowAt(ArgumentPosition pos, boolean isMutable) { exists(int borrows | super.isOverloaded(_, _, borrows) | pos.isSelf() and borrows >= 1 and - if this instanceof AssignmentOperation - then borrow = TMutBorrowKind() - else borrow = TSharedBorrowKind() + if this instanceof CompoundAssignmentExpr then isMutable = true else isMutable = false or pos.asPosition() = 0 and borrows = 2 and - borrow = TSharedBorrowKind() + isMutable = false ) } override Type getArgumentTypeAt(ArgumentPosition pos, TypePath path) { - exists(BorrowKind borrow, RefType rt | - this.implicitBorrowAt(pos, borrow) and - rt = borrow.getRefType() + exists(boolean isMutable, RefType rt | + this.implicitBorrowAt(pos, isMutable) and + rt = getRefType(isMutable) | result = rt and path.isEmpty() @@ -2042,9 +2046,9 @@ private module MethodResolution { result = inferType(this.getArg(pos), path) } - override predicate argumentHasImplicitBorrow(AstNode arg, BorrowKind borrow) { + override predicate argumentHasImplicitBorrow(AstNode arg, boolean isMutable) { exists(ArgumentPosition pos | - this.implicitBorrowAt(pos, borrow) and + this.implicitBorrowAt(pos, isMutable) and arg = this.getArg(pos) ) } @@ -2083,13 +2087,13 @@ private module MethodResolution { pragma[nomagic] predicate hasNoCompatibleNonBlanketTarget() { mc_.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and - borrow = TSharedBorrowKind() + borrow.isSharedBorrow() or mc_.hasNoCompatibleNonBlanketTargetMutBorrow(derefChain) and - borrow = TMutBorrowKind() + borrow.isMutableBorrow() or mc_.hasNoCompatibleNonBlanketTargetNoBorrow(derefChain) and - borrow = TNoBorrowKind() + borrow.isNoBorrow() } pragma[nomagic] @@ -2391,7 +2395,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi class AccessEnvironment = string; bindingset[derefChain, borrow] - private AccessEnvironment encodeDerefChainBorrow(string derefChain, BorrowKind borrow) { + additional AccessEnvironment encodeDerefChainBorrow(string derefChain, BorrowKind borrow) { result = derefChain + ";" + borrow } @@ -2437,7 +2441,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi or exists(TypePath suffix | result = inferType(this.getNodeAt(apos), suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + path = TypePath::cons(getRefTypeParameter(_), suffix) ) else ( not apos.isSelf() and @@ -2500,7 +2504,7 @@ private Type inferMethodCallType0( // the implicit deref apos.isReturn() and a instanceof IndexExpr - then path0.isCons(getRefTypeParameter(), path) + then path0.isCons(getRefTypeParameter(_), path) else path = path0 ) } @@ -2523,13 +2527,13 @@ private Type inferMethodCallType1(AstNode n, boolean isReturn, TypePath path) { or // adjust for implicit deref apos.isSelf() and - derefChainBorrow = ".ref;" and - path = TypePath::cons(getRefTypeParameter(), path0) + derefChainBorrow = MethodCallMatchingInput::encodeDerefChainBorrow(".ref", TNoBorrowKind()) and + path = TypePath::cons(getRefTypeParameter(_), path0) or // adjust for implicit borrow apos.isSelf() and - derefChainBorrow = [";&", ";&mut"] and - path0.isCons(getRefTypeParameter(), path) + derefChainBorrow = MethodCallMatchingInput::encodeDerefChainBorrow("", TSomeBorrowKind(_)) and + path0.isCons(getRefTypeParameter(_), path) ) } @@ -3121,7 +3125,7 @@ private module OperationMatchingInput implements MatchingInputSig { this.borrowsAt(dpos) or dpos.isReturn() and this.derefsReturn() - then path0.isCons(getRefTypeParameter(), path) + then path0.isCons(getRefTypeParameter(_), path) else path0 = path ) } @@ -3274,9 +3278,9 @@ private module FieldExprMatchingInput implements MatchingInputSig { if apos.isSelf() then // adjust for implicit deref - path0.isCons(getRefTypeParameter(), path) + path0.isCons(getRefTypeParameter(_), path) or - not path0.isCons(getRefTypeParameter(), _) and + not path0.isCons(getRefTypeParameter(_), _) and not (result instanceof RefType and path0.isEmpty()) and path = path0 else path = path0 @@ -3318,9 +3322,9 @@ private Type inferFieldExprType(AstNode n, TypePath path) { if receiverType instanceof RefType then // adjust for implicit deref - not path0.isCons(getRefTypeParameter(), _) and + not path0.isCons(getRefTypeParameter(_), _) and not (path0.isEmpty() and result instanceof RefType) and - path = TypePath::cons(getRefTypeParameter(), path0) + path = TypePath::cons(getRefTypeParameter(_), path0) else path = path0 ) else path = path0 @@ -3353,7 +3357,7 @@ private Type inferRefPatType(AstNode ref) { or ref = any(RefPat rp | if rp.isMut() then isMut = true else isMut = false) | - if isMut = true then result instanceof RefMutType else result instanceof RefSharedType + result = getRefType(isMut) ) } @@ -3410,7 +3414,7 @@ private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { ( path.isEmpty() and result instanceof RefSharedType or - path = TypePath::singleton(getRefSharedTypeParameter()) and + path = TypePath::singleton(getRefTypeParameter(false)) and result = getStrStruct() ) and certain = true @@ -3531,7 +3535,7 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { exprPath.isCons(getArrayTypeParameter(), path) or exists(TypePath path0 | - exprPath.isCons(getRefTypeParameter(), path0) and + exprPath.isCons(getRefTypeParameter(_), path0) and path0.isCons(getSliceTypeParameter(), path) ) ) @@ -3843,8 +3847,8 @@ private module Cached { /** Holds if `n` is implicitly borrowed. */ cached - predicate implicitBorrow(AstNode n) { - any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n, _) + predicate implicitBorrow(AstNode n, boolean isMutable) { + any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n, isMutable) } /** From 64ee0d3b9d9a43765cbb1ac41c6a2c4841b27a50 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 18 Dec 2025 15:43:33 +0100 Subject: [PATCH 191/194] Swift: Add change note --- swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md diff --git a/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md b/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md new file mode 100644 index 00000000000..b8106460049 --- /dev/null +++ b/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.2.3. \ No newline at end of file From ed7854cc0de983b8ac0e6f0a46c29106cbcf8648 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 18 Dec 2025 15:45:35 +0100 Subject: [PATCH 192/194] Swift: Update LFS artifacts --- swift/third_party/load.bzl | 4 ---- swift/third_party/resources/resource-dir-linux.zip | 4 ++-- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- swift/third_party/resources/swift-prebuilt-linux.tar.zst | 4 ++-- swift/third_party/resources/swift-prebuilt-macos.tar.zst | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index 5881227d2fb..d19345a1880 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,10 +5,6 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main - "swift-prebuilt-macOS-swift-6.2.3-RELEASE-137.tar.zst": "a96536acde3a054a2528feedbb6ffa71fb7ffa6b68f0838f2f007e7474fc0b84", - "swift-prebuilt-Linux-swift-6.2.3-RELEASE-137.tar.zst": "ad8d6611bfd3c749435e44fa25a300082efb308c21c5da1305c65bd2c5d8fec4", - "resource-dir-macOS-swift-6.2.3-RELEASE-137.zip": "e358d99dab2bf07d70a06d8d4119c05ee40e33cdc659ad787595dc56cb405755", - "resource-dir-Linux-swift-6.2.3-RELEASE-137.zip": "ab0279edb35706dbd5c238f6ea29b2a275bb837e1d6485e150801551c7f0740e", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index 21f02672b1b..2daa0182274 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d2aa88f3f9e2ff181a9c9607f95804b959fb334947cf72c566666b3be98ff2e -size 385200751 +oid sha256:ab0279edb35706dbd5c238f6ea29b2a275bb837e1d6485e150801551c7f0740e +size 385211225 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index 1a059eda5ef..3bcca5372ba 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5e4bfbfaf1c9bae0bff0580797803a05328c08fffee47de406a5fa6cd7e19c7 -size 613729529 +oid sha256:e358d99dab2bf07d70a06d8d4119c05ee40e33cdc659ad787595dc56cb405755 +size 613934298 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 2770d5be19f..5caeaeb8b5f 100644 --- a/swift/third_party/resources/swift-prebuilt-linux.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-linux.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5efba3953668d02a15b74bcf637831be99824702cfd74ac8cf53b31d89a4f2a -size 132824388 +oid sha256:ad8d6611bfd3c749435e44fa25a300082efb308c21c5da1305c65bd2c5d8fec4 +size 132921192 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index 7121b9743a5..b57ed126f8f 100644 --- a/swift/third_party/resources/swift-prebuilt-macos.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-macos.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b5e8997a99155330871e146288a8947fa224ba05e54539c795f21c082c7a940 -size 115298351 +oid sha256:a96536acde3a054a2528feedbb6ffa71fb7ffa6b68f0838f2f007e7474fc0b84 +size 115338478 From dde845e92f20c850e09e4fb508eea1d39fe0081a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 18 Dec 2025 15:16:08 +0100 Subject: [PATCH 193/194] Rust: Refactor type inference to use new `TypeItem` class --- .../rust/frameworks/rustcrypto/RustCrypto.qll | 3 +- rust/ql/lib/codeql/rust/internal/Type.qll | 93 +++++-------- .../codeql/rust/internal/TypeInference.qll | 129 +++++++----------- .../lib/codeql/rust/internal/TypeMention.qll | 6 +- rust/ql/lib/codeql/rust/security/Barriers.qll | 8 +- 5 files changed, 89 insertions(+), 150 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll index 6e50659103d..cbc638c8ae5 100644 --- a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll +++ b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll @@ -30,7 +30,8 @@ class StreamCipherInit extends Cryptography::CryptographicOperation::Range { // extract the algorithm name from the type of `ce` or its receiver. exists(Type t, TypePath tp | t = inferType([call, call.(MethodCall).getReceiver()], tp) and - rawAlgorithmName = t.(StructType).getStruct().(Addressable).getCanonicalPath().splitAt("::") + rawAlgorithmName = + t.(StructType).getTypeItem().(Addressable).getCanonicalPath().splitAt("::") ) and algorithmName = simplifyAlgorithmName(rawAlgorithmName) and // only match a known cryptographic algorithm diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index b4907dee172..50dd99fb73a 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -32,10 +32,8 @@ private predicate dynTraitTypeParameter(Trait trait, AstNode n) { cached newtype TType = - TStruct(Struct s) { Stages::TypeInferenceStage::ref() } or - TEnum(Enum e) or + TDataType(TypeItem ti) { Stages::TypeInferenceStage::ref() } or TTrait(Trait t) or - TUnion(Union u) or TImplTraitType(ImplTraitTypeRepr impl) or TDynTraitType(Trait t) { t = any(DynTraitTypeRepr dt).getTrait() } or TNeverType() or @@ -92,7 +90,7 @@ abstract class Type extends TType { class TupleType extends StructType { private int arity; - TupleType() { arity = this.getStruct().(Builtins::TupleType).getArity() } + TupleType() { arity = this.getTypeItem().(Builtins::TupleType).getArity() } /** Gets the arity of this tuple type. */ int getArity() { result = arity } @@ -112,48 +110,49 @@ class UnitType extends TupleType { override string toString() { result = "()" } } -/** A struct type. */ -class StructType extends Type, TStruct { - private Struct struct; +class DataType extends Type, TDataType { + private TypeItem typeItem; - StructType() { this = TStruct(struct) } + DataType() { this = TDataType(typeItem) } - /** Gets the struct that this struct type represents. */ - Struct getStruct() { result = struct } + /** Gets the type item that this data type represents. */ + TypeItem getTypeItem() { result = typeItem } override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(struct.getGenericParamList().getTypeParam(i)) + result = TTypeParamTypeParameter(typeItem.getGenericParamList().getTypeParam(i)) } override TypeMention getTypeParameterDefault(int i) { - result = struct.getGenericParamList().getTypeParam(i).getDefaultType() + result = typeItem.getGenericParamList().getTypeParam(i).getDefaultType() } - override string toString() { result = struct.getName().getText() } + override string toString() { result = typeItem.getName().getText() } - override Location getLocation() { result = struct.getLocation() } + override Location getLocation() { result = typeItem.getLocation() } +} + +/** A struct type. */ +class StructType extends DataType { + StructType() { super.getTypeItem() instanceof Struct } + + /** Gets the struct that this struct type represents. */ + override Struct getTypeItem() { result = super.getTypeItem() } } /** An enum type. */ -class EnumType extends Type, TEnum { - private Enum enum; - - EnumType() { this = TEnum(enum) } +class EnumType extends DataType { + EnumType() { super.getTypeItem() instanceof Enum } /** Gets the enum that this enum type represents. */ - Enum getEnum() { result = enum } + override Enum getTypeItem() { result = super.getTypeItem() } +} - override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(enum.getGenericParamList().getTypeParam(i)) - } +/** A union type. */ +class UnionType extends DataType { + UnionType() { super.getTypeItem() instanceof Union } - override TypeMention getTypeParameterDefault(int i) { - result = enum.getGenericParamList().getTypeParam(i).getDefaultType() - } - - override string toString() { result = enum.getName().getText() } - - override Location getLocation() { result = enum.getLocation() } + /** Gets the union that this union type represents. */ + override Union getTypeItem() { result = super.getTypeItem() } } /** A trait type. */ @@ -186,35 +185,13 @@ class TraitType extends Type, TTrait { override Location getLocation() { result = trait.getLocation() } } -/** A union type. */ -class UnionType extends Type, TUnion { - private Union union; - - UnionType() { this = TUnion(union) } - - /** Gets the union that this union type represents. */ - Union getUnion() { result = union } - - override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(union.getGenericParamList().getTypeParam(i)) - } - - override TypeMention getTypeParameterDefault(int i) { - result = union.getGenericParamList().getTypeParam(i).getDefaultType() - } - - override string toString() { result = union.getName().getText() } - - override Location getLocation() { result = union.getLocation() } -} - /** * An array type. * * Array types like `[i64; 5]` are modeled as normal generic types. */ class ArrayType extends StructType { - ArrayType() { this.getStruct() instanceof Builtins::ArrayType } + ArrayType() { this.getTypeItem() instanceof Builtins::ArrayType } override string toString() { result = "[;]" } } @@ -227,13 +204,13 @@ TypeParamTypeParameter getArrayTypeParameter() { abstract class RefType extends StructType { } class RefMutType extends RefType { - RefMutType() { this.getStruct() instanceof Builtins::RefMutType } + RefMutType() { this.getTypeItem() instanceof Builtins::RefMutType } override string toString() { result = "&mut" } } class RefSharedType extends RefType { - RefSharedType() { this.getStruct() instanceof Builtins::RefSharedType } + RefSharedType() { this.getTypeItem() instanceof Builtins::RefSharedType } override string toString() { result = "&" } } @@ -330,7 +307,7 @@ class ImplTraitReturnType extends ImplTraitType { * with a single type argument. */ class SliceType extends StructType { - SliceType() { this.getStruct() instanceof Builtins::SliceType } + SliceType() { this.getTypeItem() instanceof Builtins::SliceType } override string toString() { result = "[]" } } @@ -356,13 +333,13 @@ TypeParamTypeParameter getPtrTypeParameter() { } class PtrMutType extends PtrType { - PtrMutType() { this.getStruct() instanceof Builtins::PtrMutType } + PtrMutType() { this.getTypeItem() instanceof Builtins::PtrMutType } override string toString() { result = "*mut" } } class PtrConstType extends PtrType { - PtrConstType() { this.getStruct() instanceof Builtins::PtrConstType } + PtrConstType() { this.getTypeItem() instanceof Builtins::PtrConstType } override string toString() { result = "*const" } } @@ -624,7 +601,7 @@ pragma[nomagic] predicate validSelfType(Type t) { t instanceof RefType or - exists(Struct s | t = TStruct(s) | + exists(Struct s | t = TDataType(s) | s instanceof BoxStruct or s instanceof RcStruct or s instanceof ArcStruct or diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 5b0ed687357..b05e2921d3e 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -619,7 +619,7 @@ private Type inferLogicalOperationType(AstNode n, TypePath path) { exists(Builtins::Bool t, BinaryLogicalOperation be | n = [be, be.getLhs(), be.getRhs()] and path.isEmpty() and - result = TStruct(t) + result = TDataType(t) ) } @@ -887,14 +887,14 @@ private module StructExprMatchingInput implements MatchingInputSig { } abstract class Declaration extends AstNode { - abstract TypeParam getATypeParam(); - final TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getATypeParam(), result, ppos) + typeParamMatchPosition(this.getTypeItem().getGenericParamList().getATypeParam(), result, ppos) } abstract StructField getField(string name); + abstract TypeItem getTypeItem(); + Type getDeclaredType(DeclarationPosition dpos, TypePath path) { // type of a field exists(TypeMention tp | @@ -906,45 +906,28 @@ private module StructExprMatchingInput implements MatchingInputSig { dpos.isStructPos() and result = this.getTypeParameter(_) and path = TypePath::singleton(result) + or + // type of the struct itself + dpos.isStructPos() and + path.isEmpty() and + result = TDataType(this.getTypeItem()) } } private class StructDecl extends Declaration, Struct { StructDecl() { this.isStruct() or this.isUnit() } - override TypeParam getATypeParam() { result = this.getGenericParamList().getATypeParam() } - override StructField getField(string name) { result = this.getStructField(name) } - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - // type of the struct itself - dpos.isStructPos() and - path.isEmpty() and - result = TStruct(this) - } + override TypeItem getTypeItem() { result = this } } private class StructVariantDecl extends Declaration, Variant { StructVariantDecl() { this.isStruct() or this.isUnit() } - Enum getEnum() { result.getVariantList().getAVariant() = this } - - override TypeParam getATypeParam() { - result = this.getEnum().getGenericParamList().getATypeParam() - } - override StructField getField(string name) { result = this.getStructField(name) } - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - // type of the enum itself - dpos.isStructPos() and - path.isEmpty() and - result = TEnum(this.getEnum()) - } + override TypeItem getTypeItem() { result = this.getEnum() } } class AccessPosition = DeclarationPosition; @@ -2841,11 +2824,21 @@ private module NonMethodResolution { } abstract private class TupleLikeConstructor extends Addressable { - abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); + final TypeParameter getTypeParameter(TypeParameterPosition ppos) { + typeParamMatchPosition(this.getTypeItem().getGenericParamList().getATypeParam(), result, ppos) + } - abstract Type getParameterType(FunctionPosition pos, TypePath path); + abstract TypeItem getTypeItem(); - abstract Type getReturnType(TypePath path); + abstract TupleField getTupleField(int i); + + Type getReturnType(TypePath path) { + result = TDataType(this.getTypeItem()) and + path.isEmpty() + or + result = TTypeParamTypeParameter(this.getTypeItem().getGenericParamList().getATypeParam()) and + path = TypePath::singleton(result) + } Type getDeclaredType(FunctionPosition pos, TypePath path) { result = this.getParameterType(pos, path) @@ -2856,54 +2849,26 @@ abstract private class TupleLikeConstructor extends Addressable { pos.isSelf() and result = this.getReturnType(path) } -} -private class TupleStruct extends TupleLikeConstructor, Struct { - TupleStruct() { this.isTuple() } - - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - } - - override Type getParameterType(FunctionPosition pos, TypePath path) { - exists(int i | - result = this.getTupleField(i).getTypeRepr().(TypeMention).resolveTypeAt(path) and - i = pos.asPosition() - ) - } - - override Type getReturnType(TypePath path) { - result = TStruct(this) and - path.isEmpty() - or - result = TTypeParamTypeParameter(this.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) + Type getParameterType(FunctionPosition pos, TypePath path) { + result = this.getTupleField(pos.asPosition()).getTypeRepr().(TypeMention).resolveTypeAt(path) } } -private class TupleVariant extends TupleLikeConstructor, Variant { - TupleVariant() { this.isTuple() } +private class TupleLikeStruct extends TupleLikeConstructor instanceof Struct { + TupleLikeStruct() { this.isTuple() } - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getEnum().getGenericParamList().getATypeParam(), result, ppos) - } + override TypeItem getTypeItem() { result = this } - override Type getParameterType(FunctionPosition pos, TypePath path) { - exists(int i | - result = this.getTupleField(i).getTypeRepr().(TypeMention).resolveTypeAt(path) and - i = pos.asPosition() - ) - } + override TupleField getTupleField(int i) { result = this.(Struct).getTupleField(i) } +} - override Type getReturnType(TypePath path) { - exists(Enum enum | enum = this.getEnum() | - result = TEnum(enum) and - path.isEmpty() - or - result = TTypeParamTypeParameter(enum.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) - ) - } +private class TupleLikeVariant extends TupleLikeConstructor instanceof Variant { + TupleLikeVariant() { this.isTuple() } + + override TypeItem getTypeItem() { result = super.getEnum() } + + override TupleField getTupleField(int i) { result = this.(Variant).getTupleField(i) } } /** @@ -3224,7 +3189,7 @@ private module FieldExprMatchingInput implements MatchingInputSig { dpos.isSelf() and // no case for variants as those can only be destructured using pattern matching exists(Struct s | this.getAstNode() = [s.getStructField(_).(AstNode), s.getTupleField(_)] | - result = TStruct(s) and + result = TDataType(s) and path.isEmpty() or result = TTypeParamTypeParameter(s.getGenericParamList().getATypeParam()) and @@ -3374,15 +3339,15 @@ private Type inferTryExprType(TryExpr te, TypePath path) { } pragma[nomagic] -private StructType getStrStruct() { result = TStruct(any(Builtins::Str s)) } +private StructType getStrStruct() { result = TDataType(any(Builtins::Str s)) } pragma[nomagic] -private StructType getStringStruct() { result = TStruct(any(StringStruct s)) } +private StructType getStringStruct() { result = TDataType(any(StringStruct s)) } pragma[nomagic] private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { path.isEmpty() and - exists(Builtins::BuiltinType t | result = TStruct(t) | + exists(Builtins::BuiltinType t | result = TDataType(t) | le instanceof CharLiteralExpr and t instanceof Builtins::Char and certain = true @@ -3502,7 +3467,7 @@ private Type inferArrayExprType(ArrayExpr ae) { exists(ae) and result instanceof * Gets the root type of the range expression `re`. */ pragma[nomagic] -private Type inferRangeExprType(RangeExpr re) { result = TStruct(getRangeType(re)) } +private Type inferRangeExprType(RangeExpr re) { result = TDataType(getRangeType(re)) } /** * According to [the Rust reference][1]: _"array and slice-typed expressions @@ -3519,7 +3484,7 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { // TODO: Method resolution to the `std::ops::Index` trait can handle the // `Index` instances for slices and arrays. exists(TypePath exprPath, Builtins::BuiltinType t | - TStruct(t) = inferType(ie.getIndex()) and + TDataType(t) = inferType(ie.getIndex()) and ( // also allow `i32`, since that is currently the type that we infer for // integer literals like `0` @@ -3879,11 +3844,11 @@ private module Cached { */ cached StructField resolveStructFieldExpr(FieldExpr fe, boolean isDereferenced) { - exists(string name, Type ty | + exists(string name, DataType ty | ty = getFieldExprLookupType(fe, pragma[only_bind_into](name), isDereferenced) | - result = ty.(StructType).getStruct().getStructField(pragma[only_bind_into](name)) or - result = ty.(UnionType).getUnion().getStructField(pragma[only_bind_into](name)) + result = ty.(StructType).getTypeItem().getStructField(pragma[only_bind_into](name)) or + result = ty.(UnionType).getTypeItem().getStructField(pragma[only_bind_into](name)) ) } @@ -3896,7 +3861,7 @@ private module Cached { result = getTupleFieldExprLookupType(fe, pragma[only_bind_into](i), isDereferenced) .(StructType) - .getStruct() + .getTypeItem() .getTupleField(pragma[only_bind_into](i)) ) } diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index 4da6a3aca34..d8cf06827f6 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -271,9 +271,7 @@ class NonAliasPathTypeMention extends PathTypeMention { pragma[nomagic] private Type resolveRootType() { - result = TStruct(resolved) - or - result = TEnum(resolved) + result = TDataType(resolved) or exists(TraitItemNode trait | trait = resolved | // If this is a `Self` path, then it resolves to the implicit `Self` @@ -283,8 +281,6 @@ class NonAliasPathTypeMention extends PathTypeMention { else result = TTrait(trait) ) or - result = TUnion(resolved) - or result = TTypeParamTypeParameter(resolved) or result = TAssociatedTypeTypeParameter(resolved) diff --git a/rust/ql/lib/codeql/rust/security/Barriers.qll b/rust/ql/lib/codeql/rust/security/Barriers.qll index 845a689af11..a285bfe3569 100644 --- a/rust/ql/lib/codeql/rust/security/Barriers.qll +++ b/rust/ql/lib/codeql/rust/security/Barriers.qll @@ -14,7 +14,7 @@ private import codeql.rust.frameworks.stdlib.Builtins as Builtins /** A node whose type is a numeric type. */ class NumericTypeBarrier extends DataFlow::Node { NumericTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::NumericType } } @@ -22,14 +22,14 @@ class NumericTypeBarrier extends DataFlow::Node { /** A node whose type is `bool`. */ class BooleanTypeBarrier extends DataFlow::Node { BooleanTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof Builtins::Bool + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::Bool } } /** A node whose type is an integral (integer). */ class IntegralTypeBarrier extends DataFlow::Node { IntegralTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::IntegralType } } @@ -37,7 +37,7 @@ class IntegralTypeBarrier extends DataFlow::Node { /** A node whose type is a fieldless enum. */ class FieldlessEnumTypeBarrier extends DataFlow::Node { FieldlessEnumTypeBarrier() { - TypeInference::inferType(this.asExpr()).(EnumType).getEnum().isFieldless() + TypeInference::inferType(this.asExpr()).(EnumType).getTypeItem().isFieldless() } } From e0e493a9e394db76df291de54c6ad7761ac06e0d Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 19 Dec 2025 13:53:38 +0100 Subject: [PATCH 194/194] Rust: Address review comments --- rust/ql/lib/codeql/rust/internal/Type.qll | 18 ++++++++++++------ .../lib/codeql/rust/internal/TypeInference.qll | 6 +++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index 50dd99fb73a..9b409e20f76 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -133,26 +133,32 @@ class DataType extends Type, TDataType { /** A struct type. */ class StructType extends DataType { - StructType() { super.getTypeItem() instanceof Struct } + private Struct struct; + + StructType() { struct = super.getTypeItem() } /** Gets the struct that this struct type represents. */ - override Struct getTypeItem() { result = super.getTypeItem() } + override Struct getTypeItem() { result = struct } } /** An enum type. */ class EnumType extends DataType { - EnumType() { super.getTypeItem() instanceof Enum } + private Enum enum; + + EnumType() { enum = super.getTypeItem() } /** Gets the enum that this enum type represents. */ - override Enum getTypeItem() { result = super.getTypeItem() } + override Enum getTypeItem() { result = enum } } /** A union type. */ class UnionType extends DataType { - UnionType() { super.getTypeItem() instanceof Union } + private Union union; + + UnionType() { union = super.getTypeItem() } /** Gets the union that this union type represents. */ - override Union getTypeItem() { result = super.getTypeItem() } + override Union getTypeItem() { result = union } } /** A trait type. */ diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b05e2921d3e..c994cab6bb2 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -907,7 +907,7 @@ private module StructExprMatchingInput implements MatchingInputSig { result = this.getTypeParameter(_) and path = TypePath::singleton(result) or - // type of the struct itself + // type of the struct or enum itself dpos.isStructPos() and path.isEmpty() and result = TDataType(this.getTypeItem()) @@ -2860,7 +2860,7 @@ private class TupleLikeStruct extends TupleLikeConstructor instanceof Struct { override TypeItem getTypeItem() { result = this } - override TupleField getTupleField(int i) { result = this.(Struct).getTupleField(i) } + override TupleField getTupleField(int i) { result = Struct.super.getTupleField(i) } } private class TupleLikeVariant extends TupleLikeConstructor instanceof Variant { @@ -2868,7 +2868,7 @@ private class TupleLikeVariant extends TupleLikeConstructor instanceof Variant { override TypeItem getTypeItem() { result = super.getEnum() } - override TupleField getTupleField(int i) { result = this.(Variant).getTupleField(i) } + override TupleField getTupleField(int i) { result = Variant.super.getTupleField(i) } } /**