From f5134e312515d8fc882a80b69dbb24bb3b13f291 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Tue, 16 Sep 2025 17:20:44 +0100 Subject: [PATCH 01/63] Java: Eliminate pointless use of PathNodes over DataFlow::Node The use of PathNode prevents these from being overlay informed. --- java/ql/lib/experimental/quantum/JCA.qll | 40 ++++++++++-------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 108835c2c94ec..e2c03d698830b 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -556,40 +556,32 @@ module JCAModel { module GetInstanceToInitToUseFlow = DataFlow::GlobalWithState; - GetInstance getInstantiationFromUse( - Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result and - sink.getNode().asExpr() = use.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + GetInstance getInstantiationFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result and + sink.asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } - GetInstance getInstantiationFromInit( - Init init, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result and - sink.getNode().asExpr() = init.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + GetInstance getInstantiationFromInit(Init init, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result and + sink.asExpr() = init.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } - Init getInitFromUse( - Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result.(MethodCall).getQualifier() and - sink.getNode().asExpr() = use.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + Init getInitFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result.(MethodCall).getQualifier() and + sink.asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } predicate hasInit(Use use) { exists(getInitFromUse(use, _, _)) } - Use getAnIntermediateUseFromFinalUse( - Use final, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { + Use getAnIntermediateUseFromFinalUse(Use final, DataFlow::Node src, DataFlow::Node sink) { not final.isIntermediate() and result.isIntermediate() and - src.getNode().asExpr() = result.(MethodCall).getQualifier() and - sink.getNode().asExpr() = final.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + src.asExpr() = result.(MethodCall).getQualifier() and + sink.asExpr() = final.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } } From 969b0cf43951a05cfc474661bf9472d2b5281cdf Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 27 Nov 2025 23:44:35 +0000 Subject: [PATCH 02/63] Add SSRF sinks for `uriVariables` arguments of more methods on Spring RestTemplate --- .../frameworks/spring/SpringWebClient.qll | 90 ++-- .../security/CWE-918/RequestForgery.expected | 420 +++++++++++++----- .../security/CWE-918/SpringSSRF.java | 112 +++++ 3 files changed, 485 insertions(+), 137 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 0580415a34486..3fafd0a6c55de 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -31,50 +31,74 @@ class SpringWebClient extends Interface { } } -/** The method `getForObject` on `org.springframework.web.reactive.function.client.RestTemplate`. */ -class SpringRestTemplateGetForObjectMethod extends Method { - SpringRestTemplateGetForObjectMethod() { +/** + * A method on `org.springframework.web.reactive.function.client.RestTemplate` + * which has a parameter `uriVariables` (which can have type `Object..` or + * `Map`) which contains variables to be expanded into the URL + * template in parameter 0. + */ +private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { + int pos; + + SpringRestTemplateMethodWithUriVariablesParameter() { this.getDeclaringType() instanceof SpringRestTemplate and - this.hasName("getForObject") + ( + this.hasName("delete") and pos = 1 + or + this.hasName("exchange") and pos = 4 + or + this.hasName("execute") and pos = 4 + or + this.hasName("getForEntity") and pos = 2 + or + this.hasName("getForObject") and pos = 2 + or + this.hasName("headForHeaders") and pos = 1 + or + this.hasName("optionsForAllow") and pos = 1 + or + this.hasName("patchForObject") and pos = 3 + or + this.hasName("postForEntity") and pos = 3 + or + this.hasName("postForLocation") and pos = 2 + or + this.hasName("postForObject") and pos = 3 + or + this.hasName("put") and pos = 2 + ) } -} -/** A call to the method `getForObject` on `org.springframework.web.reactive.function.client.RestTemplate`. */ -class SpringRestTemplateGetForObjectMethodCall extends MethodCall { - SpringRestTemplateGetForObjectMethodCall() { - this.getMethod() instanceof SpringRestTemplateGetForObjectMethod - } + int getUriVariablesPosition() { result = pos } +} - /** Gets the first argument, if it is a compile time constant. */ - CompileTimeConstantExpr getConstantUrl() { result = this.getArgument(0) } +/** Gets the first argument, if it is a compile time constant. */ +pragma[inline] +private CompileTimeConstantExpr getConstantUrl(MethodCall mc) { result = mc.getArgument(0) } - /** - * Holds if the first argument is a compile time constant and it has a - * placeholder at offset `offset`, and there are `idx` placeholders that - * appear before it. - */ - predicate urlHasPlaceholderAtOffset(int idx, int offset) { - exists( - this.getConstantUrl() - .getStringValue() - .replaceAll("\\{", " ") - .replaceAll("\\}", " ") - .regexpFind("\\{[^}]*\\}", idx, offset) - ) - } +pragma[inline] +private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) { + exists( + getConstantUrl(mc) + .getStringValue() + .replaceAll("\\{", " ") + .replaceAll("\\}", " ") + .regexpFind("\\{[^}]*\\}", idx, offset) + ) } private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink { SpringWebClientRestTemplateGetForObject() { - exists(SpringRestTemplateGetForObjectMethodCall mc, int i | + exists(SpringRestTemplateMethodWithUriVariablesParameter m, MethodCall mc, int i | // Note that the first argument is modeled as a request forgery sink // separately. This model is for arguments beyond the first two. There // are two relevant overloads, one with third parameter type `Object...` // and one with third parameter type `Map`. For the latter we // cannot deal with MapValue content easily but there is a default // implicit taint read at sinks that will catch it. + mc.getMethod() = m and i >= 0 and - this.asExpr() = mc.getArgument(i + 2) + this.asExpr() = mc.getArgument(m.getUriVariablesPosition() + i) | // If we can determine that part of mc.getArgument(0) is a hostname // sanitizing prefix, then we count how many placeholders occur before it @@ -83,8 +107,8 @@ private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink // considering the map values as sinks if there is at least one // placeholder in the URL before the hostname sanitizing prefix. exists(int offset | - mc.urlHasPlaceholderAtOffset(i, offset) and - offset < mc.getConstantUrl().(HostnameSanitizingPrefix).getOffset() + urlHasPlaceholderAtOffset(mc, i, offset) and + offset < getConstantUrl(mc).(HostnameSanitizingPrefix).getOffset() ) or // If we cannot determine that part of mc.getArgument(0) is a hostname @@ -94,12 +118,12 @@ private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink // For the `Map` overload this has the effect of only // considering the map values as sinks if there is at least one // placeholder in the URL. - not mc.getConstantUrl() instanceof HostnameSanitizingPrefix and - mc.urlHasPlaceholderAtOffset(i, _) + not getConstantUrl(mc) instanceof HostnameSanitizingPrefix and + urlHasPlaceholderAtOffset(mc, i, _) or // If we cannot determine the string value of mc.getArgument(0), then we // conservatively consider all arguments as sinks. - not exists(mc.getConstantUrl().getStringValue()) + not exists(getConstantUrl(mc).getStringValue()) ) } } diff --git a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected index b08273da0ca97..c61fbdf81b857 100644 --- a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected +++ b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected @@ -253,35 +253,91 @@ | SanitizationTests.java:120:60:120:79 | new URI(...) | SanitizationTests.java:119:94:119:125 | getParameter(...) : String | SanitizationTests.java:120:60:120:79 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:119:94:119:125 | getParameter(...) | user-provided value | | SanitizationTests.java:121:25:121:33 | unsafer10 | SanitizationTests.java:119:94:119:125 | getParameter(...) : String | SanitizationTests.java:121:25:121:33 | unsafer10 | Potential server-side request forgery due to a $@. | SanitizationTests.java:119:94:119:125 | getParameter(...) | user-provided value | | SpringSSRF.java:32:39:32:59 | ... + ... | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:32:39:32:59 | ... + ... | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:33:35:33:48 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:35:33:48 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:34:34:34:47 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:34:34:47 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:35:39:35:52 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:39:35:52 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:36:69:36:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:36:69:36:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:37:73:37:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:37:73:37:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:40:69:40:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:69:40:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:42:69:42:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:42:69:42:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:44:41:44:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:41:44:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:45:40:45:62 | new URI(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:40:45:62 | new URI(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:46:42:46:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:42:46:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:47:40:47:53 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:47:40:47:53 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:48:30:48:43 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:48:30:48:43 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:49:33:49:46 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:33:49:46 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:50:41:50:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:50:41:50:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:51:42:51:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:42:51:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:56:44:56:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:44:56:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:58:35:58:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:58:35:58:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:59:35:59:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:59:35:59:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:60:38:60:40 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:38:60:40 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:61:39:61:41 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:61:39:61:41 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:62:37:62:39 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:37:62:39 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:63:36:63:38 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:63:36:63:38 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:64:44:64:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:64:44:64:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:70:49:70:51 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:70:49:70:51 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:71:58:71:60 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:58:71:60 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:72:57:72:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:72:57:72:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:73:66:73:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:66:73:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:74:57:74:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:74:57:74:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:75:66:75:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:75:66:75:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:33:69:33:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:69:33:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:34:73:34:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:73:34:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:35:87:35:100 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:87:35:100 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:38:69:38:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:38:69:38:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:40:69:40:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:69:40:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:43:35:43:48 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:43:35:43:48 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:44:91:44:104 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:91:44:104 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:45:95:45:108 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:95:45:108 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:46:109:46:122 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:109:46:122 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:49:91:49:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:91:49:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:51:91:51:141 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:91:51:141 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:54:34:54:47 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:54:34:54:47 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:55:79:55:92 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:55:79:55:92 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:56:83:56:96 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:83:56:96 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:57:97:57:110 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:57:97:57:110 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:60:79:60:107 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:79:60:107 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:62:79:62:129 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:79:62:129 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:65:39:65:52 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:65:39:65:52 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:66:69:66:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:66:69:66:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:67:73:67:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:67:73:67:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:68:87:68:100 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:68:87:68:100 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:71:69:71:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:69:71:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:73:69:73:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:69:73:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:76:41:76:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:76:41:76:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:77:93:77:106 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:77:93:77:106 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:78:97:78:110 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:78:97:78:110 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:79:111:79:124 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:79:111:79:124 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:82:93:82:121 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:82:93:82:121 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:84:93:84:143 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:84:93:84:143 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:87:40:87:62 | new URI(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:87:40:87:62 | new URI(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:88:92:88:105 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:88:92:88:105 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:89:96:89:109 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:89:96:89:109 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:90:110:90:123 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:90:110:90:123 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:93:92:93:120 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:93:92:93:120 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:95:92:95:142 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:95:92:95:142 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:98:42:98:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:98:42:98:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:99:80:99:93 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:99:80:99:93 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:100:84:100:97 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:100:84:100:97 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:101:98:101:111 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:101:98:101:111 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:104:80:104:108 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:104:80:104:108 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:106:80:106:130 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:106:80:106:130 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:109:40:109:53 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:109:40:109:53 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:110:92:110:105 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:110:92:110:105 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:111:96:111:109 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:111:96:111:109 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:112:110:112:123 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:112:110:112:123 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:115:92:115:120 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:115:92:115:120 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:117:92:117:142 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:117:92:117:142 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:120:30:120:43 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:120:30:120:43 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:121:68:121:81 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:121:68:121:81 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:122:72:122:85 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:122:72:122:85 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:123:86:123:99 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:123:86:123:99 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:126:68:126:96 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:126:68:126:96 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:128:68:128:118 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:128:68:128:118 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:131:33:131:46 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:131:33:131:46 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:132:49:132:62 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:132:49:132:62 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:133:53:133:66 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:133:53:133:66 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:134:67:134:80 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:134:67:134:80 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:137:49:137:77 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:137:49:137:77 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:139:49:139:99 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:139:49:139:99 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:142:41:142:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:142:41:142:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:143:57:143:70 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:143:57:143:70 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:144:61:144:74 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:144:61:144:74 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:145:75:145:88 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:145:75:145:88 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:148:57:148:85 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:148:57:148:85 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:150:57:150:107 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:150:57:150:107 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:153:42:153:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:153:42:153:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:154:58:154:71 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:154:58:154:71 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:155:62:155:75 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:155:62:155:75 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:156:76:156:89 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:156:76:156:89 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:159:58:159:86 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:159:58:159:86 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:161:58:161:108 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:161:58:161:108 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:168:44:168:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:168:44:168:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:170:35:170:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:170:35:170:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:171:35:171:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:171:35:171:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:172:38:172:40 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:172:38:172:40 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:173:39:173:41 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:173:39:173:41 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:174:37:174:39 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:174:37:174:39 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:175:36:175:38 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:175:36:175:38 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:176:44:176:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:176:44:176:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:182:49:182:51 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:182:49:182:51 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:183:58:183:60 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:183:58:183:60 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:184:57:184:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:184:57:184:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:185:66:185:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:185:66:185:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:186:57:186:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:186:57:186:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:187:66:187:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:187:66:187:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) : String | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) : String | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) | user-provided value | @@ -778,45 +834,123 @@ edges | SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) : URI | provenance | Config | | SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) : URI | provenance | MaD:285 | | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:32:39:32:59 | ... + ... | provenance | Src:MaD:277 Sink:MaD:264 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:35:33:48 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:262 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:34:34:47 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:263 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:39:35:52 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:265 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:36:69:36:82 | fooResourceUrl | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:37:73:37:86 | fooResourceUrl | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:41:44:54 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:268 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | SpringSSRF.java:40:69:40:97 | of(...) | provenance | MaD:289 | -| SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | SpringSSRF.java:42:69:42:119 | of(...) | provenance | MaD:290 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:45:40:45:62 | new URI(...) | provenance | Config Sink:MaD:269 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:45:40:45:62 | new URI(...) | provenance | MaD:285 Sink:MaD:269 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:46:42:46:55 | fooResourceUrl | provenance | Sink:MaD:270 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:47:40:47:53 | fooResourceUrl | provenance | Sink:MaD:271 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:48:30:48:43 | fooResourceUrl | provenance | Sink:MaD:272 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:49:33:49:46 | fooResourceUrl | provenance | Sink:MaD:261 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:50:41:50:54 | fooResourceUrl | provenance | Sink:MaD:266 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:51:42:51:55 | fooResourceUrl | provenance | Sink:MaD:267 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | provenance | | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:56:44:56:46 | uri | provenance | Sink:MaD:255 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:58:35:58:37 | uri | provenance | Sink:MaD:250 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:59:35:59:37 | uri | provenance | Sink:MaD:256 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:60:38:60:40 | uri | provenance | Sink:MaD:249 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:61:39:61:41 | uri | provenance | Sink:MaD:253 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:62:37:62:39 | uri | provenance | Sink:MaD:254 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:63:36:63:38 | uri | provenance | Sink:MaD:251 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:64:44:64:46 | uri | provenance | Sink:MaD:252 | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:54:27:54:49 | new URI(...) : URI | provenance | Config | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:54:27:54:49 | new URI(...) : URI | provenance | MaD:285 | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | provenance | | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:70:49:70:51 | uri | provenance | Sink:MaD:243 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:71:58:71:60 | uri | provenance | Sink:MaD:244 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:72:57:72:59 | uri | provenance | Sink:MaD:245 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:73:66:73:68 | uri | provenance | Sink:MaD:247 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:74:57:74:59 | uri | provenance | Sink:MaD:246 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:75:66:75:68 | uri | provenance | Sink:MaD:248 | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | SpringSSRF.java:67:27:67:49 | new URI(...) : URI | provenance | Config | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | SpringSSRF.java:67:27:67:49 | new URI(...) : URI | provenance | MaD:285 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:69:33:82 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:73:34:86 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:87:35:100 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:43:35:43:48 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:262 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:91:44:104 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:95:45:108 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:109:46:122 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:54:34:54:47 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:263 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:55:79:55:92 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:83:56:96 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:57:97:57:110 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:65:39:65:52 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:265 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:66:69:66:82 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:67:73:67:86 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:68:87:68:100 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:76:41:76:54 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:268 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:77:93:77:106 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:78:97:78:110 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:79:111:79:124 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | SpringSSRF.java:38:69:38:97 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | SpringSSRF.java:40:69:40:119 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | SpringSSRF.java:49:91:49:119 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | SpringSSRF.java:51:91:51:141 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | SpringSSRF.java:60:79:60:107 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | SpringSSRF.java:62:79:62:129 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | SpringSSRF.java:71:69:71:97 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | SpringSSRF.java:73:69:73:119 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | SpringSSRF.java:82:93:82:121 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | SpringSSRF.java:84:93:84:143 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:87:40:87:62 | new URI(...) | provenance | Config Sink:MaD:269 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:87:40:87:62 | new URI(...) | provenance | MaD:285 Sink:MaD:269 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:88:92:88:105 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:89:96:89:109 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:90:110:90:123 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:98:42:98:55 | fooResourceUrl | provenance | Sink:MaD:270 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:99:80:99:93 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:100:84:100:97 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:101:98:101:111 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:109:40:109:53 | fooResourceUrl | provenance | Sink:MaD:271 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:110:92:110:105 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:111:96:111:109 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:112:110:112:123 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:120:30:120:43 | fooResourceUrl | provenance | Sink:MaD:272 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:121:68:121:81 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:122:72:122:85 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:123:86:123:99 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:131:33:131:46 | fooResourceUrl | provenance | Sink:MaD:261 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:132:49:132:62 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:133:53:133:66 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:134:67:134:80 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:142:41:142:54 | fooResourceUrl | provenance | Sink:MaD:266 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:143:57:143:70 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:144:61:144:74 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:145:75:145:88 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:153:42:153:55 | fooResourceUrl | provenance | Sink:MaD:267 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:154:58:154:71 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:155:62:155:75 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:156:76:156:89 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | SpringSSRF.java:93:92:93:120 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | SpringSSRF.java:95:92:95:142 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | SpringSSRF.java:104:80:104:108 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | SpringSSRF.java:106:80:106:130 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | SpringSSRF.java:115:92:115:120 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | SpringSSRF.java:117:92:117:142 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | SpringSSRF.java:126:68:126:96 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | SpringSSRF.java:128:68:128:118 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | SpringSSRF.java:137:49:137:77 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | SpringSSRF.java:139:49:139:99 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | SpringSSRF.java:148:57:148:85 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | SpringSSRF.java:150:57:150:107 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | SpringSSRF.java:159:58:159:86 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | SpringSSRF.java:161:58:161:108 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:168:44:168:46 | uri | provenance | Sink:MaD:255 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:170:35:170:37 | uri | provenance | Sink:MaD:250 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:171:35:171:37 | uri | provenance | Sink:MaD:256 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:172:38:172:40 | uri | provenance | Sink:MaD:249 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:173:39:173:41 | uri | provenance | Sink:MaD:253 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:174:37:174:39 | uri | provenance | Sink:MaD:254 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:175:36:175:38 | uri | provenance | Sink:MaD:251 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:176:44:176:46 | uri | provenance | Sink:MaD:252 | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:166:27:166:49 | new URI(...) : URI | provenance | Config | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:166:27:166:49 | new URI(...) : URI | provenance | MaD:285 | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:182:49:182:51 | uri | provenance | Sink:MaD:243 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:183:58:183:60 | uri | provenance | Sink:MaD:244 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:184:57:184:59 | uri | provenance | Sink:MaD:245 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:185:66:185:68 | uri | provenance | Sink:MaD:247 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:186:57:186:59 | uri | provenance | Sink:MaD:246 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:187:66:187:68 | uri | provenance | Sink:MaD:248 | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | SpringSSRF.java:179:27:179:49 | new URI(...) : URI | provenance | Config | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | SpringSSRF.java:179:27:179:49 | new URI(...) : URI | provenance | MaD:285 | | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | URLClassLoaderSSRF.java:17:31:17:33 | url : String | provenance | Src:MaD:277 | | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | URLClassLoaderSSRF.java:18:74:18:76 | uri : URI | provenance | | | URLClassLoaderSSRF.java:17:31:17:33 | url : String | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | provenance | Config | @@ -1683,42 +1817,120 @@ nodes | SanitizationTests.java:121:25:121:33 | unsafer10 | semmle.label | unsafer10 | | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | | SpringSSRF.java:32:39:32:59 | ... + ... | semmle.label | ... + ... | -| SpringSSRF.java:33:35:33:48 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:34:34:34:47 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:35:39:35:52 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:36:69:36:82 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:37:73:37:86 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:40:69:40:97 | of(...) | semmle.label | of(...) | -| SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:42:69:42:119 | of(...) | semmle.label | of(...) | -| SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:44:41:44:54 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:45:40:45:62 | new URI(...) | semmle.label | new URI(...) | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:46:42:46:55 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:47:40:47:53 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:48:30:48:43 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:49:33:49:46 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:50:41:50:54 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:51:42:51:55 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:56:44:56:46 | uri | semmle.label | uri | -| SpringSSRF.java:58:35:58:37 | uri | semmle.label | uri | -| SpringSSRF.java:59:35:59:37 | uri | semmle.label | uri | -| SpringSSRF.java:60:38:60:40 | uri | semmle.label | uri | -| SpringSSRF.java:61:39:61:41 | uri | semmle.label | uri | -| SpringSSRF.java:62:37:62:39 | uri | semmle.label | uri | -| SpringSSRF.java:63:36:63:38 | uri | semmle.label | uri | -| SpringSSRF.java:64:44:64:46 | uri | semmle.label | uri | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:70:49:70:51 | uri | semmle.label | uri | -| SpringSSRF.java:71:58:71:60 | uri | semmle.label | uri | -| SpringSSRF.java:72:57:72:59 | uri | semmle.label | uri | -| SpringSSRF.java:73:66:73:68 | uri | semmle.label | uri | -| SpringSSRF.java:74:57:74:59 | uri | semmle.label | uri | -| SpringSSRF.java:75:66:75:68 | uri | semmle.label | uri | +| SpringSSRF.java:33:69:33:82 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:34:73:34:86 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:35:87:35:100 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:38:69:38:97 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:40:69:40:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:43:35:43:48 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:44:91:44:104 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:45:95:45:108 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:46:109:46:122 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:49:91:49:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:51:91:51:141 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:54:34:54:47 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:55:79:55:92 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:56:83:56:96 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:57:97:57:110 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:60:79:60:107 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:62:79:62:129 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:65:39:65:52 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:66:69:66:82 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:67:73:67:86 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:68:87:68:100 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:71:69:71:97 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:73:69:73:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:76:41:76:54 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:77:93:77:106 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:78:97:78:110 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:79:111:79:124 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:82:93:82:121 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:84:93:84:143 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:87:40:87:62 | new URI(...) | semmle.label | new URI(...) | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:88:92:88:105 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:89:96:89:109 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:90:110:90:123 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:93:92:93:120 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:95:92:95:142 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:98:42:98:55 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:99:80:99:93 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:100:84:100:97 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:101:98:101:111 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:104:80:104:108 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:106:80:106:130 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:109:40:109:53 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:110:92:110:105 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:111:96:111:109 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:112:110:112:123 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:115:92:115:120 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:117:92:117:142 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:120:30:120:43 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:121:68:121:81 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:122:72:122:85 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:123:86:123:99 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:126:68:126:96 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:128:68:128:118 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:131:33:131:46 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:132:49:132:62 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:133:53:133:66 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:134:67:134:80 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:137:49:137:77 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:139:49:139:99 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:142:41:142:54 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:143:57:143:70 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:144:61:144:74 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:145:75:145:88 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:148:57:148:85 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:150:57:150:107 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:153:42:153:55 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:154:58:154:71 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:155:62:155:75 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:156:76:156:89 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:159:58:159:86 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:161:58:161:108 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:168:44:168:46 | uri | semmle.label | uri | +| SpringSSRF.java:170:35:170:37 | uri | semmle.label | uri | +| SpringSSRF.java:171:35:171:37 | uri | semmle.label | uri | +| SpringSSRF.java:172:38:172:40 | uri | semmle.label | uri | +| SpringSSRF.java:173:39:173:41 | uri | semmle.label | uri | +| SpringSSRF.java:174:37:174:39 | uri | semmle.label | uri | +| SpringSSRF.java:175:36:175:38 | uri | semmle.label | uri | +| SpringSSRF.java:176:44:176:46 | uri | semmle.label | uri | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:182:49:182:51 | uri | semmle.label | uri | +| SpringSSRF.java:183:58:183:60 | uri | semmle.label | uri | +| SpringSSRF.java:184:57:184:59 | uri | semmle.label | uri | +| SpringSSRF.java:185:66:185:68 | uri | semmle.label | uri | +| SpringSSRF.java:186:57:186:59 | uri | semmle.label | uri | +| SpringSSRF.java:187:66:187:68 | uri | semmle.label | uri | | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | | URLClassLoaderSSRF.java:17:31:17:33 | url : String | semmle.label | url : String | diff --git a/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java b/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java index 446e774214dc7..dd1ffd60367cc 100644 --- a/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java @@ -30,25 +30,137 @@ protected void doGet(HttpServletRequest request2, HttpServletResponse response2) HttpEntity request = new HttpEntity<>(new String("bar")); try { restTemplate.getForEntity(fooResourceUrl + "/1", String.class); // $ Alert + restTemplate.getForEntity("http://{foo}", String.class, fooResourceUrl); // $ Alert + restTemplate.getForEntity("http://{foo}/a/b", String.class, fooResourceUrl); // $ Alert + restTemplate.getForEntity("{protocol}://{foo}/a/b", String.class, "http", fooResourceUrl); // $ Alert + restTemplate.getForEntity("http://safe.com/{foo}", String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.getForEntity("http://{foo}", String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.getForEntity("http://safe.com/{foo}", String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.exchange(fooResourceUrl, HttpMethod.POST, request, String.class); // $ Alert + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, fooResourceUrl); // $ Alert + restTemplate.exchange("http://{foo}/a/b", HttpMethod.POST, request, String.class, fooResourceUrl); // $ Alert + restTemplate.exchange("{protocol}://{foo}/a/b", HttpMethod.POST, request, String.class, "http", fooResourceUrl); // $ Alert + restTemplate.exchange("http://safe.com/{foo}", HttpMethod.POST, request, String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.exchange("http://safe.com/{foo}", HttpMethod.POST, request, String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.execute(fooResourceUrl, HttpMethod.POST, null, null, "test"); // $ Alert + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, fooResourceUrl); // $ Alert + restTemplate.execute("http://{foo}/a/b", HttpMethod.POST, null, null, fooResourceUrl); // $ Alert + restTemplate.execute("{protocol}://{foo}/a/b", HttpMethod.POST, null, null, "http", fooResourceUrl); // $ Alert + restTemplate.execute("http://safe.com/{foo}", HttpMethod.POST, null, null, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.execute("http://safe.com/{foo}", HttpMethod.POST, null, null, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.getForObject(fooResourceUrl, String.class, "test"); // $ Alert restTemplate.getForObject("http://{foo}", String.class, fooResourceUrl); // $ Alert restTemplate.getForObject("http://{foo}/a/b", String.class, fooResourceUrl); // $ Alert + restTemplate.getForObject("{protocol}://{foo}/a/b", String.class, "http", fooResourceUrl); // $ Alert restTemplate.getForObject("http://safe.com/{foo}", String.class, fooResourceUrl); // not bad - the tainted value does not affect the host restTemplate.getForObject("http://{foo}", String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", fooResourceUrl)); // $ Alert restTemplate.getForObject("http://safe.com/{foo}", String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.patchForObject(fooResourceUrl, new String("object"), String.class, "hi"); // $ Alert + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.patchForObject("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.patchForObject("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.patchForObject("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.patchForObject("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForEntity(new URI(fooResourceUrl), new String("object"), String.class); // $ Alert + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForEntity("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForEntity("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.postForEntity("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForEntity("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForLocation(fooResourceUrl, new String("object")); // $ Alert + restTemplate.postForLocation("http://{foo}", new String("object"), fooResourceUrl); // $ Alert + restTemplate.postForLocation("http://{foo}/a/b", new String("object"), fooResourceUrl); // $ Alert + restTemplate.postForLocation("{protocol}://{foo}/a/b", new String("object"), "http", fooResourceUrl); // $ Alert + restTemplate.postForLocation("http://safe.com/{foo}", new String("object"), fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForLocation("http://{foo}", new String("object"), "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForLocation("http://safe.com/{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForObject(fooResourceUrl, new String("object"), String.class); // $ Alert + restTemplate.postForObject("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForObject("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForObject("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.postForObject("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForObject("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForObject("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.put(fooResourceUrl, new String("object")); // $ Alert + restTemplate.put("http://{foo}", new String("object"), fooResourceUrl); // $ Alert + restTemplate.put("http://{foo}/a/b", new String("object"), fooResourceUrl); // $ Alert + restTemplate.put("{protocol}://{foo}/a/b", new String("object"), "http", fooResourceUrl); // $ Alert + restTemplate.put("http://safe.com/{foo}", new String("object"), fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.put("http://{foo}", new String("object"), "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.put("http://safe.com/{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.delete(fooResourceUrl); // $ Alert + restTemplate.delete("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.delete("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.delete("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.delete("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.delete("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.delete("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.delete("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.delete("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.delete("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.headForHeaders(fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.headForHeaders("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.headForHeaders("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.headForHeaders("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.headForHeaders("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.headForHeaders("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.optionsForAllow(fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.optionsForAllow("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.optionsForAllow("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + { String body = new String("body"); URI uri = new URI(fooResourceUrl); From 42c955ea62a187724e54d9eef75a51af1ecbf450 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 27 Nov 2025 23:49:28 +0000 Subject: [PATCH 03/63] Add change note --- .../2025-11-27-spring-rest-template-request-forgery-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md diff --git a/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md b/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md new file mode 100644 index 0000000000000..4a18b5304723d --- /dev/null +++ b/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* URI template variables of all Spring `RestTemplate` methods are now considered as request forgery sinks. Previously only the `getForObject` method was considered. This may lead to more alerts for the query `java/ssrf`. From 8debe49563df862182dc27992040ba862defc209 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Fri, 28 Nov 2025 01:00:16 +0000 Subject: [PATCH 04/63] Correct mistake in qldoc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../lib/semmle/code/java/frameworks/spring/SpringWebClient.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 3fafd0a6c55de..42661ce918377 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -32,7 +32,7 @@ class SpringWebClient extends Interface { } /** - * A method on `org.springframework.web.reactive.function.client.RestTemplate` + * A method on `org.springframework.web.client.RestTemplate` * which has a parameter `uriVariables` (which can have type `Object..` or * `Map`) which contains variables to be expanded into the URL * template in parameter 0. From 89546cbc83806a69e4f13619e421e48d77f419ce Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 28 Nov 2025 01:09:07 +0000 Subject: [PATCH 05/63] Fix qldoc inaccuracies --- .../frameworks/spring/SpringWebClient.qll | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 42661ce918377..6f10cf3bad4fe 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -72,10 +72,14 @@ private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { int getUriVariablesPosition() { result = pos } } -/** Gets the first argument, if it is a compile time constant. */ +/** Gets the first argument of `mc`, if it is a compile-time constant. */ pragma[inline] private CompileTimeConstantExpr getConstantUrl(MethodCall mc) { result = mc.getArgument(0) } +/** + * Holds if the first argument of `mc` is a compile-time constant URL template + * which has its `idx`-th placeholder at the offset `offset`. + */ pragma[inline] private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) { exists( @@ -87,15 +91,16 @@ private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) ) } -private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink { - SpringWebClientRestTemplateGetForObject() { +private class SpringWebClientRestTemplateUriVariable extends RequestForgerySink { + SpringWebClientRestTemplateUriVariable() { exists(SpringRestTemplateMethodWithUriVariablesParameter m, MethodCall mc, int i | - // Note that the first argument is modeled as a request forgery sink - // separately. This model is for arguments beyond the first two. There - // are two relevant overloads, one with third parameter type `Object...` - // and one with third parameter type `Map`. For the latter we - // cannot deal with MapValue content easily but there is a default - // implicit taint read at sinks that will catch it. + // Note that the first argument of `m` is modeled as a request forgery + // sink separately. This model is for arguments corresponding to the + // `uriVariables` parameter. There are always two relevant overloads, one + // with parameter type `Object...` and one with parameter type + // `Map`. For the latter we cannot deal with MapValue content + // easily but there is a default implicit taint read at sinks that will + // catch it. mc.getMethod() = m and i >= 0 and this.asExpr() = mc.getArgument(m.getUriVariablesPosition() + i) From 9f2a7f712ab1034fbd9c72ccb101e86eeac36613 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Tue, 2 Dec 2025 15:52:01 +0000 Subject: [PATCH 06/63] Apply suggestion from @owen-mc --- .../lib/semmle/code/java/frameworks/spring/SpringWebClient.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 6f10cf3bad4fe..991a1c7298146 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -33,7 +33,7 @@ class SpringWebClient extends Interface { /** * A method on `org.springframework.web.client.RestTemplate` - * which has a parameter `uriVariables` (which can have type `Object..` or + * which has a parameter `uriVariables` (which can have type `Object...` or * `Map`) which contains variables to be expanded into the URL * template in parameter 0. */ From b22077c37123d253df0a8f6f2d174bea1ecae7e0 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Mon, 22 Dec 2025 20:22:20 +0100 Subject: [PATCH 07/63] Hardcoded credentials in CouchBase --- .../com.couchbase.client.core.env.model.yml | 12 ++++ .../ext/com.couchbase.client.java.model.yml | 9 +++ .../tests/HardcodedCouchBaseCredentials.java | 35 ++++++++++ .../security/CWE-798/semmle/tests/options | 2 +- .../client/core/env/Authenticator.java | 20 ++++++ .../core/env/CertificateAuthenticator.java | 42 ++++++++++++ .../core/env/PasswordAuthenticator.java | 65 +++++++++++++++++++ .../couchbase/client/core/env/SeedNode.java | 19 ++++++ .../client/core/env/UsernameAndPassword.java | 19 ++++++ .../couchbase/client/java/AsyncCluster.java | 30 +++++++++ .../com/couchbase/client/java/Cluster.java | 39 +++++++++++ .../couchbase/client/java/ClusterOptions.java | 28 ++++++++ 12 files changed, 319 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/ext/com.couchbase.client.core.env.model.yml create mode 100644 java/ql/lib/ext/com.couchbase.client.java.model.yml create mode 100644 java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml new file mode 100644 index 0000000000000..8222b8e88cd1a --- /dev/null +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -0,0 +1,12 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[0]", "credentials-key", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(KeyStore,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml new file mode 100644 index 0000000000000..6796fcc524d9b --- /dev/null +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[0]","credentials-username","manual"] + - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[1]","credentials-password","manual"] + - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[1]","credentials-username","manual"] + - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[2]","credentials-password","manual"] diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java new file mode 100644 index 0000000000000..f46ff80ba52e5 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -0,0 +1,35 @@ +import static com.couchbase.client.java.ClusterOptions.clusterOptions; + +import com.couchbase.client.core.env.Authenticator; +import com.couchbase.client.core.env.CertificateAuthenticator; +import com.couchbase.client.core.env.PasswordAuthenticator; +import com.couchbase.client.java.Cluster; + +public class HardcodedCouchBaseCredentials { + public static void test() { + Cluster cluster1 = + Cluster.connect( + "127.0.0.1", + "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + "password"); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + Cluster cluster2 = + Cluster.connect( + "127.0.0.1", + clusterOptions( + "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + "password")); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + PasswordAuthenticator authenticator1 = + PasswordAuthenticator.builder() + .username( + "Administrator") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + .password("password") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + .onlyEnablePlainSaslMechanism() + .build(); + + Authenticator authenticator2 = + CertificateAuthenticator.fromKeyStore( + null, + "keyStorePassword"); // $ HardcodedCredentialsApiCall + Cluster cluster = Cluster.connect("127.0.0.1", clusterOptions(authenticator2)); + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/options b/java/ql/test/query-tests/security/CWE-798/semmle/tests/options index 18ff7ebd8a933..209b6ec6a3223 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/options @@ -1 +1 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/amazon-aws-sdk-1.11.700:${testdir}/../../../../../stubs/azure-sdk-for-java:${testdir}/../../../../../stubs/shiro-core-1.4.0:${testdir}/../../../../../stubs/jsch-0.1.55:${testdir}/../../../../../stubs/ganymed-ssh-2-260:${testdir}/../../../../../stubs/apache-mina-sshd-2.8.0:${testdir}/../../../../../stubs/sshj-0.33.0:${testdir}/../../../../../stubs/j2ssh-1.5.5:${testdir}/../../../../../stubs/trilead-ssh2-212:${testdir}/../../../../../stubs/apache-commons-net-3.8.0:${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/mssql-jdbc-12.2.0:${testdir}/../../../../../stubs/auth0-jwt-2.3 +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/amazon-aws-sdk-1.11.700:${testdir}/../../../../../stubs/azure-sdk-for-java:${testdir}/../../../../../stubs/shiro-core-1.4.0:${testdir}/../../../../../stubs/jsch-0.1.55:${testdir}/../../../../../stubs/ganymed-ssh-2-260:${testdir}/../../../../../stubs/apache-mina-sshd-2.8.0:${testdir}/../../../../../stubs/sshj-0.33.0:${testdir}/../../../../../stubs/j2ssh-1.5.5:${testdir}/../../../../../stubs/trilead-ssh2-212:${testdir}/../../../../../stubs/apache-commons-net-3.8.0:${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/mssql-jdbc-12.2.0:${testdir}/../../../../../stubs/auth0-jwt-2.3 diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java new file mode 100644 index 0000000000000..2868d486698b2 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + + +public interface Authenticator {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java new file mode 100644 index 0000000000000..eb837ab18feb0 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +import java.nio.file.Path; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; +import java.util.List; +import java.util.Optional; + +public class CertificateAuthenticator implements Authenticator { + + public static CertificateAuthenticator fromKeyStore( + final Path keyStorePath, final String keyStorePassword, final Optional keyStoreType) { + return null; + } + + public static CertificateAuthenticator fromKeyStore( + final KeyStore keyStore, final String keyStorePassword) { + return null; + } + + public static CertificateAuthenticator fromKey( + final PrivateKey key, final String keyPassword, final List keyCertChain) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java new file mode 100644 index 0000000000000..ec37e812463ef --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.core.env; + +import java.util.function.Supplier; + +public class PasswordAuthenticator implements Authenticator { + + public static PasswordAuthenticator.Builder builder() { + return null; + } + + public static PasswordAuthenticator create(final String username, final String password) { + return null; + } + + public static PasswordAuthenticator ldapCompatible(final String username, final String password) { + return null; + } + + private static String encodeAuthHttpHeader(UsernameAndPassword credentials) { + return null; + } + + public static class Builder { + + public Builder username(final String username) { + return null; + } + + public Builder username(final Supplier username) { + return null; + } + + public Builder password(final String password) { + + return null; + } + + public Builder password(final Supplier password) { + return null; + } + + public Builder onlyEnablePlainSaslMechanism() { + return null; + } + + public PasswordAuthenticator build() { + return null; + } + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java new file mode 100644 index 0000000000000..fa8fcb4b6d212 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +public class SeedNode {} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java new file mode 100644 index 0000000000000..72d3ba0647b5d --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java @@ -0,0 +1,19 @@ +/* + * Copyright 2024 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +public class UsernameAndPassword {} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java new file mode 100644 index 0000000000000..2dd340befec9c --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + + +public class AsyncCluster { + + public static AsyncCluster connect( + final String connectionString, final String username, final String password) { + return null; + } + + public static AsyncCluster connect(final String connectionString, final ClusterOptions options) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java new file mode 100644 index 0000000000000..e59d04d52e691 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +import com.couchbase.client.core.env.SeedNode; +import java.io.Closeable; +import java.util.Set; + +public class Cluster implements Closeable { + + public static Cluster connect( + final String connectionString, final String username, final String password) { + return null; + } + + public static Cluster connect(final String connectionString, final ClusterOptions options) { + return null; + } + + public static Cluster connect(final Set seedNodes, final ClusterOptions options) { + return null; + } + + @Override + public void close() {} +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java new file mode 100644 index 0000000000000..7c506393ee310 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +import com.couchbase.client.core.env.Authenticator; + +public class ClusterOptions { + public static ClusterOptions clusterOptions(final Authenticator authenticator) { + return null; + } + + public static ClusterOptions clusterOptions(final String username, final String password) { + return null; + } +} \ No newline at end of file From 15ee88ee24f4f76de550f7da25f39ff1c2374324 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:21:54 +0100 Subject: [PATCH 08/63] SQLi test case --- .../ext/com.couchbase.client.java.model.yml | 43 ++++++- .../2025-23-23-couchbase-sinks.md | 4 + .../CWE-089/semmle/examples/CouchBase.java | 18 +++ .../semmle/examples/SqlTainted.expected | 113 ++++++++++-------- .../security/CWE-089/semmle/examples/options | 2 +- .../com/couchbase/client/java/Bucket.java | 23 ++++ .../com/couchbase/client/java/Cluster.java | 10 ++ .../com/couchbase/client/java/Collection.java | 50 ++++++++ .../couchbase/client/java/CommonOptions.java | 19 +++ .../client/java/json/JsonObject.java | 33 +++++ .../couchbase/client/java/json/JsonValue.java | 19 +++ .../java/kv/CommonDurabilityOptions.java | 22 ++++ .../client/java/kv/InsertOptions.java | 19 +++ .../client/java/kv/MutationResult.java | 24 ++++ .../client/java/kv/ReplaceOptions.java | 19 +++ .../client/java/kv/UpsertOptions.java | 26 ++++ .../client/java/query/QueryResult.java | 19 +++ 17 files changed, 411 insertions(+), 52 deletions(-) create mode 100644 java/ql/src/change-notes/2025-23-23-couchbase-sinks.md create mode 100644 java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 6796fcc524d9b..3d7015e86af89 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -3,7 +3,42 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[0]","credentials-username","manual"] - - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[1]","credentials-password","manual"] - - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[1]","credentials-username","manual"] - - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[2]","credentials-password","manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[1]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object,UpsertOptions)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object,ReplaceOptions)", "", "Argument[1]", "sql-injection", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,long)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,number)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,double)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md b/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md new file mode 100644 index 0000000000000..f6e8a97df9d7e --- /dev/null +++ b/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java new file mode 100644 index 0000000000000..8a817aa9c11f1 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java @@ -0,0 +1,18 @@ +package com.example; + +import com.couchbase.client.java.Bucket; +import com.couchbase.client.java.Cluster; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; + +public class CouchBase { + public static void main(String[] args) { + Cluster cluster = Cluster.connect("192.168.0.158", "Administrator", "Administrator"); + Bucket bucket = cluster.bucket("travel-sample"); + cluster.query(args[1]); + + Collection collection = bucket.defaultCollection(); + collection.replace("airbnb_1", JsonObject.create().putNull(System.getenv("ITEM_CATEGORY"))); + collection.upsert("airbnb_1", JsonObject.create().put("country", args[1])); + } +} diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index a45f58bd54d60..4885e812e281c 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -29,6 +29,9 @@ | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | +| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | +| CouchBase.java:15:36:15:94 | putNull(...) | CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | This query depends on a $@. | CouchBase.java:15:64:15:93 | getenv(...) | user-provided value | +| CouchBase.java:16:35:16:77 | put(...) | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:35:16:77 | put(...) | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -48,21 +51,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:4 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:7 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -71,36 +74,40 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:4 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:7 | +| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | +| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:70:16:76 | ...[...] : String | provenance | | +| CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | provenance | Src:MaD:9 MaD:11 Sink:MaD:2 | +| CouchBase.java:16:70:16:76 | ...[...] : String | CouchBase.java:16:35:16:77 | put(...) | provenance | MaD:10 Sink:MaD:3 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:4 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:1 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:2 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:7 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:4 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:5 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:5 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:3 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:8 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:6 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:6 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:7 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:4 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:4 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:4 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:7 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:7 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:7 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -108,13 +115,19 @@ edges | Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | provenance | | | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models -| 1 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 2 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 3 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 4 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 6 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 7 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | +| 2 | Sink: com.couchbase.client.java; Collection; true; replace; (String,Object); ; Argument[1]; sql-injection; manual | +| 3 | Sink: com.couchbase.client.java; Collection; true; upsert; (String,Object); ; Argument[1]; sql-injection; manual | +| 4 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 5 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 6 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 7 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 8 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 9 | Source: java.lang; System; false; getenv; ; ; ReturnValue; environment; manual | +| 10 | Summary: com.couchbase.client.java.json; JsonObject; true; put; (String,Object); ; Argument[1]; ReturnValue; taint; manual | +| 11 | Summary: com.couchbase.client.java.json; JsonObject; true; putNull; (String); ; Argument[0]; ReturnValue; taint; manual | +| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -164,6 +177,12 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | semmle.label | query | | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | +| CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:15:36:15:94 | putNull(...) | semmle.label | putNull(...) | +| CouchBase.java:15:64:15:93 | getenv(...) : String | semmle.label | getenv(...) : String | +| CouchBase.java:16:35:16:77 | put(...) | semmle.label | put(...) | +| CouchBase.java:16:70:16:76 | ...[...] : String | semmle.label | ...[...] : String | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options index 0252ff61ad384..8f5ee4913cc84 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0 --release 21 +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0 --release 21 diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java new file mode 100644 index 0000000000000..9edfff088bde9 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +public class Bucket { + + public Collection defaultCollection() { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java index e59d04d52e691..a6201b429925f 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -13,14 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.couchbase.client.java; import com.couchbase.client.core.env.SeedNode; +import com.couchbase.client.java.query.QueryResult; import java.io.Closeable; import java.util.Set; public class Cluster implements Closeable { + public Bucket bucket(String bucketName) { + return null; + } + public static Cluster connect( final String connectionString, final String username, final String password) { return null; @@ -34,6 +40,10 @@ public static Cluster connect(final Set seedNodes, final ClusterOption return null; } + public QueryResult query(final String statement) { + return null; + } + @Override public void close() {} } \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java new file mode 100644 index 0000000000000..7657c84703a47 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + +import com.couchbase.client.java.kv.InsertOptions; +import com.couchbase.client.java.kv.MutationResult; +import com.couchbase.client.java.kv.ReplaceOptions; +import com.couchbase.client.java.kv.UpsertOptions; + +public class Collection { + + public MutationResult insert(final String id, final Object content) { + return null; + } + + public MutationResult insert(final String id, final Object content, final InsertOptions options) { + return null; + } + + public MutationResult upsert(final String id, final Object content) { + return null; + } + + public MutationResult upsert(final String id, final Object content, final UpsertOptions options) { + return null; + } + + public MutationResult replace(final String id, final Object content) { + return null; + } + + public MutationResult replace( + final String id, final Object content, final ReplaceOptions options) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java new file mode 100644 index 0000000000000..fbef5a508e31d --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + +public abstract class CommonOptions> {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java new file mode 100644 index 0000000000000..ff88c595f9c64 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java.json; + +import java.io.Serializable; + +public class JsonObject extends JsonValue implements Serializable { + + public static JsonObject create() { + return null; + } + + public JsonObject put(final String name, final Object value) { + return null; + } + + public JsonObject putNull(final String name) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java new file mode 100644 index 0000000000000..e6c664ca9db8d --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java.json; + + +public abstract class JsonValue {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java new file mode 100644 index 0000000000000..77d2272adf77b --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +import com.couchbase.client.java.CommonOptions; + +public abstract class CommonDurabilityOptions> + extends CommonOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java new file mode 100644 index 0000000000000..b574224682203 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class InsertOptions extends CommonDurabilityOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java new file mode 100644 index 0000000000000..ada739a2c4e9c --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +/** + * Result returned from all kinds of Key-Value mutation operations. + * + * @since 3.0.0 + */ +public class MutationResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java new file mode 100644 index 0000000000000..db2cfae69a853 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class ReplaceOptions extends CommonDurabilityOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java new file mode 100644 index 0000000000000..de82b64290dcb --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class UpsertOptions extends CommonDurabilityOptions { + + private UpsertOptions() {} + + public static UpsertOptions upsertOptions() { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java new file mode 100644 index 0000000000000..2796ffbb053b9 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.query; + +public class QueryResult {} From cb341609e7a0aba71ff3fcd060dc53b289153aae Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:41:11 +0100 Subject: [PATCH 09/63] Add change notes for Couchbase sinks --- ...5-23-23-couchbase-sinks.md => 2025-12-24-couchbase-sinks.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename java/ql/src/change-notes/{2025-23-23-couchbase-sinks.md => 2025-12-24-couchbase-sinks.md} (72%) diff --git a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md b/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md similarity index 72% rename from java/ql/src/change-notes/2025-23-23-couchbase-sinks.md rename to java/ql/src/change-notes/2025-12-24-couchbase-sinks.md index f6e8a97df9d7e..473c708dcfb48 100644 --- a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md +++ b/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. \ No newline at end of file +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. From 1e1fb4353498822e082ea50ac7006964c6ee3dcb Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Fri, 2 Jan 2026 11:55:40 +0100 Subject: [PATCH 10/63] Update JsonObject put method signatures in YAML Use erased type --- java/ql/lib/ext/com.couchbase.client.java.model.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 3d7015e86af89..1c64294dc554c 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -35,10 +35,10 @@ extensions: - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] From 647d11a6ced98a5fdd7499d2bdd2a5cda6155630 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:02:31 +0100 Subject: [PATCH 11/63] C++: Add test for C++23 multidimensional subscript operators --- .../subscript_operator/PrintAST.expected | 69 +++++++++++++++++++ .../subscript_operator/PrintAST.qlref | 1 + .../library-tests/subscript_operator/test.cpp | 12 ++++ 3 files changed, 82 insertions(+) create mode 100644 cpp/ql/test/library-tests/subscript_operator/PrintAST.expected create mode 100644 cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref create mode 100644 cpp/ql/test/library-tests/subscript_operator/test.cpp diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected new file mode 100644 index 0000000000000..9bfa6888ec8c0 --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected @@ -0,0 +1,69 @@ +#-----| [CopyAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag const&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const __va_list_tag & +#-----| [MoveAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag&&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] __va_list_tag && +test.cpp: +# 3| [CopyAssignmentOperator] S& S::operator=(S const&) +# 3| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const S & +# 3| [MoveAssignmentOperator] S& S::operator=(S&&) +# 3| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] S && +# 5| [MemberFunction] int S::operator[](int, int) +# 5| : +# 5| getParameter(0): [Parameter] i +# 5| Type = [IntType] int +# 5| getParameter(1): [Parameter] j +# 5| Type = [IntType] int +# 5| getEntryPoint(): [BlockStmt] { ... } +# 6| getStmt(0): [ReturnStmt] return ... +# 6| getExpr(): [ArrayExpr] access to array +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +# 6| getArrayBase(): [ArrayExpr] access to array +# 6| Type = [ArrayType] int[2] +# 6| ValueCategory = lvalue +# 6| getArrayBase(): [ImplicitThisFieldAccess,PointerFieldAccess] xs +# 6| Type = [ArrayType] int[2][2] +# 6| ValueCategory = lvalue +# 6| getQualifier(): [ThisExpr] this +# 6| Type = [PointerType] S * +# 6| ValueCategory = prvalue(load) +# 6| getArrayOffset(): [VariableAccess] i +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +#-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +#-----| Type = [PointerType] int(*)[2] +#-----| ValueCategory = prvalue +# 6| getArrayOffset(): [VariableAccess] j +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +# 6| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 6| Type = [IntPointerType] int * +# 6| ValueCategory = prvalue +# 10| [TopLevelFunction] int foo(S) +# 10| : +# 10| getParameter(0): [Parameter] s +# 10| Type = [Struct] S +# 10| getEntryPoint(): [BlockStmt] { ... } +# 11| getStmt(0): [ReturnStmt] return ... +# 11| getExpr(): [OverloadedArrayExpr] call to operator[] +# 11| Type = [IntType] int +# 11| ValueCategory = prvalue +# 11| getArrayBase(): [VariableAccess] s +# 11| Type = [Struct] S +# 11| ValueCategory = lvalue +# 11| getArrayOffset(): [Literal] 1 +# 11| Type = [IntType] int +# 11| Value = [Literal] 1 +# 11| ValueCategory = prvalue +# 11| getArgument(1): [Literal] 2 +# 11| Type = [IntType] int +# 11| Value = [Literal] 2 +# 11| ValueCategory = prvalue diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref b/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref new file mode 100644 index 0000000000000..6fcb30ac7a6e9 --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref @@ -0,0 +1 @@ +semmle/code/cpp/PrintAST.ql \ No newline at end of file diff --git a/cpp/ql/test/library-tests/subscript_operator/test.cpp b/cpp/ql/test/library-tests/subscript_operator/test.cpp new file mode 100644 index 0000000000000..647ad916c9c31 --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/test.cpp @@ -0,0 +1,12 @@ +// semmle-extractor-options: -std=c++23 + +struct S { + int xs[2][2]; + int operator[](int i, int j) { + return xs[i][j]; + } +}; + +int foo(S s) { + return s[1, 2]; +} From 3907fc7e5aa00bda84f0843d308a132bb73e7701 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:03:59 +0100 Subject: [PATCH 12/63] C++: Add predicates to support multidimensional subscript operators --- cpp/ql/lib/semmle/code/cpp/PrintAST.qll | 9 ++++++--- cpp/ql/lib/semmle/code/cpp/exprs/Call.qll | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll index 4c13125cdbbdd..cf9ecd21ca9d9 100644 --- a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll +++ b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll @@ -1050,10 +1050,10 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred) expr.(Call).getQualifier() = ele and pred = "getQualifier()" or - // OverloadedArrayExpr::getArrayBase/0 and OverloadedArrayExpr::getArrayOffset/0 also consider arguments, and are already handled below. + // OverloadedArrayExpr::getArrayBase/0 and OverloadedArrayExpr::getArrayOffset/1 also consider arguments, and are already handled below. exists(int n, Expr arg | expr.(Call).getArgument(n) = arg | not expr.(OverloadedArrayExpr).getArrayBase() = arg and - not expr.(OverloadedArrayExpr).getArrayOffset() = arg and + not expr.(OverloadedArrayExpr).getAnArrayOffset() = arg and arg = ele and pred = "getArgument(" + n.toString() + ")" ) @@ -1062,7 +1062,10 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred) or expr.(OverloadedArrayExpr).getArrayBase() = ele and pred = "getArrayBase()" or - expr.(OverloadedArrayExpr).getArrayOffset() = ele and pred = "getArrayOffset()" + exists(int n | + expr.(OverloadedArrayExpr).getArrayOffset(n) = ele and + pred = "getArrayOffset(" + n.toString() + ")" + ) or // OverloadedPointerDereferenceExpr::getExpr/0 also considers qualifiers, and is already handled above for all Call classes. not expr.(OverloadedPointerDereferenceExpr).getQualifier() = diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index 24ae703697cf1..f5c8ef291f6ef 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -388,9 +388,20 @@ class OverloadedArrayExpr extends FunctionCall { /** * Gets the expression giving the index. */ - Expr getArrayOffset() { - if exists(this.getQualifier()) then result = this.getChild(0) else result = this.getChild(1) + Expr getArrayOffset() { result = this.getArrayOffset(0) } + + /** + * Gets the expression giving the nth index. + */ + Expr getArrayOffset(int n) { + n >= 0 and + if exists(this.getQualifier()) then result = this.getChild(n) else result = this.getChild(n + 1) } + + /** + * Gets an expression giving an index. + */ + Expr getAnArrayOffset() { result = this.getArrayOffset(_) } } /** From e0f8b1254e90eb2357581ecfd652d0a12a430c45 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:09:15 +0100 Subject: [PATCH 13/63] C++: Update expected test results --- cpp/ql/test/library-tests/ir/ir/PrintAST.expected | 2 +- .../test/library-tests/subscript_operator/PrintAST.expected | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index e6f88ceb7789c..a9dd614a9ae39 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -24309,7 +24309,7 @@ ir.cpp: # 2727| getArrayBase(): [VariableAccess] x # 2727| Type = [SpecifiedType] const WithBracketOperator # 2727| ValueCategory = lvalue -# 2727| getArrayOffset(): [VariableAccess] i +# 2727| getArrayOffset(0): [VariableAccess] i # 2727| Type = [IntType] int # 2727| ValueCategory = prvalue(load) # 2727| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected index 9bfa6888ec8c0..fd092b64a107b 100644 --- a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected @@ -59,11 +59,11 @@ test.cpp: # 11| getArrayBase(): [VariableAccess] s # 11| Type = [Struct] S # 11| ValueCategory = lvalue -# 11| getArrayOffset(): [Literal] 1 +# 11| getArrayOffset(0): [Literal] 1 # 11| Type = [IntType] int # 11| Value = [Literal] 1 # 11| ValueCategory = prvalue -# 11| getArgument(1): [Literal] 2 +# 11| getArrayOffset(1): [Literal] 2 # 11| Type = [IntType] int # 11| Value = [Literal] 2 # 11| ValueCategory = prvalue From 4c3fb0c7c44da94768b0d9f1399cd007f9447b8d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:21:30 +0100 Subject: [PATCH 14/63] C++: Deprecate getArrayOffset/0 --- cpp/ql/lib/semmle/code/cpp/exprs/Call.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index f5c8ef291f6ef..4ef241e3d258d 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -387,8 +387,10 @@ class OverloadedArrayExpr extends FunctionCall { /** * Gets the expression giving the index. + * + * DEPRECATED: Use getArrayOffset/1 instead. */ - Expr getArrayOffset() { result = this.getArrayOffset(0) } + deprecated Expr getArrayOffset() { result = this.getArrayOffset(0) } /** * Gets the expression giving the nth index. From 9ceb091f85b671fa64afe93d50eedb2865521a49 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:54:02 +0100 Subject: [PATCH 15/63] C++: Update predicate after `getAnArrayOffset/0` deprecation --- cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll b/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll index 0e316e8689290..b613472c7766b 100644 --- a/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll +++ b/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll @@ -13,7 +13,7 @@ class SizeofImpureExprOperator extends SizeofExprOperator { not e.(OverloadedPointerDereferenceExpr).getExpr().isPure() and not exists(OverloadedArrayExpr op | op = e | op.getArrayBase().isPure() and - op.getArrayOffset().isPure() + forall(Expr offset | offset = op.getAnArrayOffset() | offset.isPure()) ) ) } From 72f1aa9381d90acd0280dc6eba0c17de507fec92 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:59:39 +0100 Subject: [PATCH 16/63] C++: Add change notes --- .../2026-01-08-multidimensional-subscript-operator-1.md | 4 ++++ .../2026-01-08-multidimensional-subscript-operator-2.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md create mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md new file mode 100644 index 0000000000000..c0ed98ac50b8e --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Predicates `getArrayOffset/1` and `getAnArrayOffset` have been added to the `OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md new file mode 100644 index 0000000000000..0ce3bf385355b --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The `OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use `OverloadedArrayExpr::getArrayOffset/1` and `OverloadedArrayExpr::getAnArrayOffset` instead. From dda042f7dfa6e1708cf3b1622e26cdd845bb2f87 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:39:16 +0100 Subject: [PATCH 17/63] rename change notes --- .../com.couchbase.client.core.env.model.yml | 24 +++++-- .../ext/com.couchbase.client.java.model.yml | 38 +++-------- .../tests/HardcodedCouchBaseCredentials.java | 68 ++++++++++++------- .../core/env/PasswordAuthenticator.java | 13 +++- .../client/core/env/UsernameAndPassword.java | 4 +- 5 files changed, 87 insertions(+), 60 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml index 8222b8e88cd1a..09179f7589b19 100644 --- a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -3,10 +3,26 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[0]", "credentials-key", "manual"] + # 'credentials-password' sinks - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(KeyStore,String)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + # 'credentials-username' sinks + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["com.couchbase.client.core.env", "UsernameAndPassword", true, "UsernameAndPassword", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 1c64294dc554c..2a821e9f11afb 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -3,42 +3,26 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + # 'credentials-username' sinks - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[1]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + # 'credentials-password' sinks - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + # 'sql-injection' sinks - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object,UpsertOptions)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object,ReplaceOptions)", "", "Argument[1]", "sql-injection", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,long)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,number)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,double)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[1]", "ReturnValue.MapValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index f46ff80ba52e5..decbd17478386 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -1,35 +1,53 @@ import static com.couchbase.client.java.ClusterOptions.clusterOptions; -import com.couchbase.client.core.env.Authenticator; import com.couchbase.client.core.env.CertificateAuthenticator; import com.couchbase.client.core.env.PasswordAuthenticator; +import com.couchbase.client.core.env.UsernameAndPassword; import com.couchbase.client.java.Cluster; +import java.util.function.Supplier; public class HardcodedCouchBaseCredentials { public static void test() { - Cluster cluster1 = - Cluster.connect( - "127.0.0.1", - "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - "password"); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - Cluster cluster2 = - Cluster.connect( - "127.0.0.1", - clusterOptions( - "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - "password")); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - PasswordAuthenticator authenticator1 = - PasswordAuthenticator.builder() - .username( - "Administrator") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - .password("password") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - .onlyEnablePlainSaslMechanism() - .build(); + // com.couchbase.client.core.env.CertificateAuthenticator sinks + CertificateAuthenticator.fromKey(null, "keyPassword", null); // $ HardcodedCredentialsApiCall + CertificateAuthenticator.fromKeyStore( + null, "keyStorePassword", null); // $ HardcodedCredentialsApiCall + CertificateAuthenticator.fromKeyStore( + null, "keyStorePassword"); // $ HardcodedCredentialsApiCall - Authenticator authenticator2 = - CertificateAuthenticator.fromKeyStore( - null, - "keyStorePassword"); // $ HardcodedCredentialsApiCall - Cluster cluster = Cluster.connect("127.0.0.1", clusterOptions(authenticator2)); + // com.couchbase.client.core.env.PasswordAuthenticator sinks + PasswordAuthenticator.create( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.ldapCompatible( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + + // com.couchbase.client.core.env.PasswordAuthenticator$Builder sinks + PasswordAuthenticator.builder( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.builder() + .username("Administrator") // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.builder((Supplier) new UsernameAndPassword( + "Administrator", // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + PasswordAuthenticator.builder() + .username((Supplier) () -> {return "Administrator";}) // $ MISSING: HardcodedCredentialsApiCall + .password((Supplier) () -> {return "password";}); // $ MISSING: HardcodedCredentialsApiCall + + // com.couchbase.client.java.Cluster sinks + Cluster.connect( + "127.0.0.1", + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + + // com.couchbase.client.java.ClusterOptions sinks + Cluster.connect( + "127.0.0.1", + clusterOptions( + "Administrator", // $ HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsApiCall } -} \ No newline at end of file +} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java index ec37e812463ef..f5faca54ad31e 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java @@ -23,6 +23,14 @@ public static PasswordAuthenticator.Builder builder() { return null; } + public static PasswordAuthenticator.Builder builder(String username, String password) { + return null; + } + + public static PasswordAuthenticator.Builder builder(Supplier supplier) { + return null; + } + public static PasswordAuthenticator create(final String username, final String password) { return null; } @@ -46,7 +54,6 @@ public Builder username(final Supplier username) { } public Builder password(final String password) { - return null; } @@ -54,11 +61,11 @@ public Builder password(final Supplier password) { return null; } - public Builder onlyEnablePlainSaslMechanism() { + public static PasswordAuthenticator builder(String username, String password) { return null; } - public PasswordAuthenticator build() { + public static PasswordAuthenticator builder(Supplier supplier) { return null; } } diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java index 72d3ba0647b5d..5853a66733167 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java @@ -16,4 +16,6 @@ package com.couchbase.client.core.env; -public class UsernameAndPassword {} \ No newline at end of file +public class UsernameAndPassword { + public UsernameAndPassword(String username, String password) {} +} \ No newline at end of file From 89f0e79ea17a36ec44f71a33dd0587f1195e71e8 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 13:55:14 +0100 Subject: [PATCH 18/63] Fix `SqlTainted` test --- .../semmle/examples/SqlTainted.expected | 108 ++++++++---------- 1 file changed, 47 insertions(+), 61 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index 4885e812e281c..6f869c4b8877e 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -30,8 +30,6 @@ | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | -| CouchBase.java:15:36:15:94 | putNull(...) | CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | This query depends on a $@. | CouchBase.java:15:64:15:93 | getenv(...) | user-provided value | -| CouchBase.java:16:35:16:77 | put(...) | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:35:16:77 | put(...) | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -51,21 +49,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:5 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -74,40 +72,37 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:5 | | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | -| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:70:16:76 | ...[...] : String | provenance | | -| CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | provenance | Src:MaD:9 MaD:11 Sink:MaD:2 | -| CouchBase.java:16:70:16:76 | ...[...] : String | CouchBase.java:16:35:16:77 | put(...) | provenance | MaD:10 Sink:MaD:3 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:7 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:4 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:5 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:5 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:2 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:3 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:8 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:6 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:6 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:4 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:7 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:7 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:7 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:7 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:8 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:5 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:5 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:5 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -116,18 +111,13 @@ edges | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models | 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | -| 2 | Sink: com.couchbase.client.java; Collection; true; replace; (String,Object); ; Argument[1]; sql-injection; manual | -| 3 | Sink: com.couchbase.client.java; Collection; true; upsert; (String,Object); ; Argument[1]; sql-injection; manual | -| 4 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 6 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 7 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 8 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 9 | Source: java.lang; System; false; getenv; ; ; ReturnValue; environment; manual | -| 10 | Summary: com.couchbase.client.java.json; JsonObject; true; put; (String,Object); ; Argument[1]; ReturnValue; taint; manual | -| 11 | Summary: com.couchbase.client.java.json; JsonObject; true; putNull; (String); ; Argument[0]; ReturnValue; taint; manual | -| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 2 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 3 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 4 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 5 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 6 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 7 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 8 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -179,10 +169,6 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | | CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | | CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | -| CouchBase.java:15:36:15:94 | putNull(...) | semmle.label | putNull(...) | -| CouchBase.java:15:64:15:93 | getenv(...) : String | semmle.label | getenv(...) : String | -| CouchBase.java:16:35:16:77 | put(...) | semmle.label | put(...) | -| CouchBase.java:16:70:16:76 | ...[...] : String | semmle.label | ...[...] : String | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | From 55d49027514a29d61c6fbfde5b4a24cb31967ae4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 14:39:03 +0100 Subject: [PATCH 19/63] Rust: Restrict `ImplicitDerefBorrowNode` to nodes with enclosing CFG scope --- .../rust/dataflow/internal/DataFlowImpl.qll | 22 ++++---- .../codeql/rust/dataflow/internal/Node.qll | 56 ++++++++++--------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index c21c053b17346..3052703eb4eaf 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -62,8 +62,8 @@ final class DataFlowCall extends TDataFlowCall { /** Gets the underlying call, if any. */ Call asCall() { this = TCall(result) } - predicate isImplicitDerefCall(AstNode n, DerefChain derefChain, int i, Function target) { - this = TImplicitDerefCall(n, derefChain, i, target) + predicate isImplicitDerefCall(Expr e, DerefChain derefChain, int i, Function target) { + this = TImplicitDerefCall(e, derefChain, i, target) } predicate isSummaryCall( @@ -75,8 +75,7 @@ final class DataFlowCall extends TDataFlowCall { DataFlowCallable getEnclosingCallable() { result.asCfgScope() = this.asCall().getEnclosingCfgScope() or - result.asCfgScope() = - any(AstNode n | this.isImplicitDerefCall(n, _, _, _)).getEnclosingCfgScope() + result.asCfgScope() = any(Expr e | this.isImplicitDerefCall(e, _, _, _)).getEnclosingCfgScope() or this.isSummaryCall(result.asSummarizedCallable(), _) } @@ -84,9 +83,9 @@ final class DataFlowCall extends TDataFlowCall { string toString() { result = this.asCall().toString() or - exists(AstNode n, DerefChain derefChain, int i | - this.isImplicitDerefCall(n, derefChain, i, _) and - result = "[implicit deref call " + i + " in " + derefChain.toString() + "] " + n + exists(Expr e, DerefChain derefChain, int i | + this.isImplicitDerefCall(e, derefChain, i, _) and + result = "[implicit deref call " + i + " in " + derefChain.toString() + "] " + e ) or exists( @@ -100,7 +99,7 @@ final class DataFlowCall extends TDataFlowCall { Location getLocation() { result = this.asCall().getLocation() or - result = any(AstNode n | this.isImplicitDerefCall(n, _, _, _)).getLocation() + result = any(Expr e | this.isImplicitDerefCall(e, _, _, _)).getLocation() } } @@ -1082,9 +1081,10 @@ private module Cached { Stages::DataFlowStage::ref() and call.hasEnclosingCfgScope() } or - TImplicitDerefCall(AstNode n, DerefChain derefChain, int i, Function target) { - TypeInference::implicitDerefChainBorrow(n, derefChain, _) and - target = derefChain.getElement(i).getDerefFunction() + TImplicitDerefCall(Expr e, DerefChain derefChain, int i, Function target) { + TypeInference::implicitDerefChainBorrow(e, derefChain, _) and + target = derefChain.getElement(i).getDerefFunction() and + e.hasEnclosingCfgScope() } or TSummaryCall( FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index b8bfddf8adbbb..d186e5aa4dde2 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -277,11 +277,11 @@ abstract class ImplicitDerefBorrowNode extends Node { */ abstract Node getBorrowInputNode(); - abstract AstNode getUnderlyingAstNode(); + abstract Expr getExpr(); - override CfgScope getCfgScope() { result = this.getUnderlyingAstNode().getEnclosingCfgScope() } + override CfgScope getCfgScope() { result = this.getExpr().getEnclosingCfgScope() } - override Location getLocation() { result = this.getUnderlyingAstNode().getLocation() } + override Location getLocation() { result = this.getExpr().getLocation() } } /** @@ -292,24 +292,24 @@ abstract class ImplicitDerefBorrowNode extends Node { * is in. */ class ImplicitDerefNode extends ImplicitDerefBorrowNode, TImplicitDerefNode { - AstNode n; + Expr e; DerefChain derefChain; ImplicitDerefNodeState state; int i; - ImplicitDerefNode() { this = TImplicitDerefNode(n, derefChain, state, i, false) } + ImplicitDerefNode() { this = TImplicitDerefNode(e, derefChain, state, i, false) } - override AstNode getUnderlyingAstNode() { result = n } + override Expr getExpr() { result = e } private predicate isBuiltinDeref() { derefChain.isBuiltinDeref(i) } private Node getInputNode() { // The first implicit deref has the underlying AST node as input i = 0 and - result.(AstNodeNode).getAstNode() = n + result.asExpr() = e or // Subsequent implicit derefs have the previous implicit deref as input - result = TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), i - 1, false) + result = TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), i - 1, false) } /** @@ -334,19 +334,19 @@ class ImplicitDerefNode extends ImplicitDerefBorrowNode, TImplicitDerefNode { */ Node getDerefOutputNode() { state = TImplicitDerefNodeBeforeDerefState() and - result = TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), i, false) + result = TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), i, false) } /** * Holds if this node represents the last implicit deref in the underlying chain. */ - predicate isLast(AstNode node) { - node = n and + predicate isLast(Expr expr) { + expr = e and state = TImplicitDerefNodeAfterDerefState() and i = derefChain.length() - 1 } - override string toString() { result = n + " [implicit deref " + i + " in state " + state + "]" } + override string toString() { result = e + " [implicit deref " + i + " in state " + state + "]" } } final class ImplicitDerefArgNode extends ImplicitDerefNode, ArgumentNode { @@ -356,12 +356,12 @@ final class ImplicitDerefArgNode extends ImplicitDerefNode, ArgumentNode { ImplicitDerefArgNode() { not derefChain.isBuiltinDeref(i) and state = TImplicitDerefNodeAfterBorrowState() and - call_.isImplicitDerefCall(n, derefChain, i, _) and + call_.isImplicitDerefCall(e, derefChain, i, _) and pos_.isSelf() or this.isLast(_) and - TypeInference::implicitDerefChainBorrow(n, derefChain, false) and - isArgumentForCall(n, call_.asCall(), pos_) + TypeInference::implicitDerefChainBorrow(e, derefChain, false) and + isArgumentForCall(e, call_.asCall(), pos_) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { @@ -378,7 +378,7 @@ private class ImplicitDerefOutNode extends ImplicitDerefNode, OutNode { } override DataFlowCall getCall(ReturnKind kind) { - result.isImplicitDerefCall(n, derefChain, i, _) and + result.isImplicitDerefCall(e, derefChain, i, _) and kind = TNormalReturnKind() } } @@ -387,30 +387,30 @@ private class ImplicitDerefOutNode extends ImplicitDerefNode, OutNode { * A node that represents the value of an expression _after_ implicit borrowing. */ class ImplicitBorrowNode extends ImplicitDerefBorrowNode, TImplicitBorrowNode { - AstNode n; + Expr e; DerefChain derefChain; - ImplicitBorrowNode() { this = TImplicitBorrowNode(n, derefChain, false) } + ImplicitBorrowNode() { this = TImplicitBorrowNode(e, derefChain, false) } - override AstNode getUnderlyingAstNode() { result = n } + override Expr getExpr() { result = e } override Node getBorrowInputNode() { result = - TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), + TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), derefChain.length() - 1, false) or derefChain.isEmpty() and - result.(AstNodeNode).getAstNode() = n + result.(AstNodeNode).getAstNode() = e } - override string toString() { result = n + " [implicit borrow]" } + override string toString() { result = e + " [implicit borrow]" } } final class ImplicitBorrowArgNode extends ImplicitBorrowNode, ArgumentNode { private DataFlowCall call_; private RustDataFlow::ArgumentPosition pos_; - ImplicitBorrowArgNode() { isArgumentForCall(n, call_.asCall(), pos_) } + ImplicitBorrowArgNode() { isArgumentForCall(e, call_.asCall(), pos_) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { call = call_ and pos = pos_ @@ -736,13 +736,15 @@ newtype TNode = ) } or TImplicitDerefNode( - AstNode n, DerefChain derefChain, ImplicitDerefNodeState state, int i, Boolean isPost + Expr e, DerefChain derefChain, ImplicitDerefNodeState state, int i, Boolean isPost ) { - TypeInference::implicitDerefChainBorrow(n, derefChain, _) and + e.hasEnclosingCfgScope() and + TypeInference::implicitDerefChainBorrow(e, derefChain, _) and i in [0 .. derefChain.length() - 1] } or - TImplicitBorrowNode(AstNode n, DerefChain derefChain, Boolean isPost) { - TypeInference::implicitDerefChainBorrow(n, derefChain, true) + TImplicitBorrowNode(Expr e, DerefChain derefChain, Boolean isPost) { + e.hasEnclosingCfgScope() and + TypeInference::implicitDerefChainBorrow(e, derefChain, true) } or TDerefOutNode(DerefExpr de, Boolean isPost) or TIndexOutNode(IndexExpr ie, Boolean isPost) or From d335f039efeaa1d6d59f3e524225f448ec1b4cf2 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 21:48:43 +0100 Subject: [PATCH 20/63] Improve model for CWE-089 --- .../ext/com.couchbase.client.java.model.yml | 14 +- .../CWE-089/semmle/examples/CouchBase.java | 11 +- .../semmle/examples/SqlTainted.expected | 122 ++++++++++-------- .../tests/HardcodedCouchBaseCredentials.java | 20 ++- .../com/couchbase/client/java/Bucket.java | 15 --- .../com/couchbase/client/java/Cluster.java | 45 ++++--- .../com/couchbase/client/java/Collection.java | 50 ------- .../java/analytics/AnalyticsOptions.java | 3 + .../java/analytics/AnalyticsResult.java | 3 + .../client/java/json/JsonObject.java | 33 ----- .../couchbase/client/java/json/JsonValue.java | 19 --- .../client/java/query/QueryMetaData.java | 3 + .../client/java/query/QueryOptions.java | 3 + .../client/java/query/QueryResult.java | 16 --- .../couchbase/client/java/query/QueryRow.java | 3 + 15 files changed, 137 insertions(+), 223 deletions(-) delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 2a821e9f11afb..c954e92f6654d 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -10,19 +10,9 @@ extensions: - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] # 'sql-injection' sinks - - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analyticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analyticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] - - - addsTo: - pack: codeql/java-all - extensible: summaryModel - data: - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[1]", "ReturnValue.MapValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java index 8a817aa9c11f1..ee6c81cdc81b8 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java @@ -2,17 +2,16 @@ import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.Collection; -import com.couchbase.client.java.json.JsonObject; public class CouchBase { public static void main(String[] args) { Cluster cluster = Cluster.connect("192.168.0.158", "Administrator", "Administrator"); Bucket bucket = cluster.bucket("travel-sample"); + cluster.analyticsQuery(args[1]); + cluster.analyticsQuery(args[1], null); cluster.query(args[1]); - - Collection collection = bucket.defaultCollection(); - collection.replace("airbnb_1", JsonObject.create().putNull(System.getenv("ITEM_CATEGORY"))); - collection.upsert("airbnb_1", JsonObject.create().put("country", args[1])); + cluster.query(args[1], null); + cluster.queryStreaming(args[1], null); + cluster.queryStreaming(args[1], null, null); } } diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index 6f869c4b8877e..67f1e26697ac0 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -29,7 +29,12 @@ | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | -| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | +| CouchBase.java:10:28:10:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:10:28:10:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:11:28:11:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:11:28:11:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:13:19:13:25 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:13:19:13:25 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:14:28:14:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:14:28:14:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:15:28:15:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:15:28:15:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -49,21 +54,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:10 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -72,37 +77,42 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:5 | -| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:10 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:10:28:10:34 | ...[...] | provenance | Sink:MaD:1 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:11:28:11:34 | ...[...] | provenance | Sink:MaD:2 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:3 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:13:19:13:25 | ...[...] | provenance | Sink:MaD:4 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:14:28:14:34 | ...[...] | provenance | Sink:MaD:5 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:15:28:15:34 | ...[...] | provenance | Sink:MaD:6 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:5 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:2 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:3 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:10 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:7 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:8 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:6 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:4 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:11 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:9 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:7 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:8 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:5 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:5 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:5 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:10 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:10 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:10 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -110,14 +120,19 @@ edges | Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | provenance | | | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models -| 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | -| 2 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 3 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 4 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 6 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 7 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 8 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 1 | Sink: com.couchbase.client.java; Cluster; true; analyticsQuery; (String); ; Argument[0]; sql-injection; manual | +| 2 | Sink: com.couchbase.client.java; Cluster; true; analyticsQuery; (String,AnalyticsOptions); ; Argument[0]; sql-injection; manual | +| 3 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | +| 4 | Sink: com.couchbase.client.java; Cluster; true; query; (String,QueryOptions); ; Argument[0]; sql-injection; manual | +| 5 | Sink: com.couchbase.client.java; Cluster; true; queryStreaming; (String,Consumer); ; Argument[0]; sql-injection; manual | +| 6 | Sink: com.couchbase.client.java; Cluster; true; queryStreaming; (String,QueryOptions,Consumer); ; Argument[0]; sql-injection; manual | +| 7 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 8 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 9 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 10 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 11 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -167,8 +182,13 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | semmle.label | query | | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | -| CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:7:27:7:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:10:28:10:34 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:11:28:11:34 | ...[...] | semmle.label | ...[...] | | CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:13:19:13:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:14:28:14:34 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:15:28:15:34 | ...[...] | semmle.label | ...[...] | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index decbd17478386..552ed2aeb45f3 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -30,12 +30,22 @@ public static void test() { PasswordAuthenticator.builder() .username("Administrator") // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall - PasswordAuthenticator.builder((Supplier) new UsernameAndPassword( - "Administrator", // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall - "password")); // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + PasswordAuthenticator.builder( + (Supplier) + new UsernameAndPassword( + "Administrator", // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall PasswordAuthenticator.builder() - .username((Supplier) () -> {return "Administrator";}) // $ MISSING: HardcodedCredentialsApiCall - .password((Supplier) () -> {return "password";}); // $ MISSING: HardcodedCredentialsApiCall + .username( + (Supplier) + () -> { + return "Administrator"; // $ MISSING: HardcodedCredentialsApiCall + }) + .password( + (Supplier) + () -> { + return "password"; // $ MISSING: HardcodedCredentialsApiCall + }); // com.couchbase.client.java.Cluster sinks Cluster.connect( diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java index 9edfff088bde9..df9e69c50a1e8 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -1,18 +1,3 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package com.couchbase.client.java; public class Bucket { diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java index a6201b429925f..8f8cf3d0bec74 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -1,25 +1,15 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.couchbase.client.java; import com.couchbase.client.core.env.SeedNode; +import com.couchbase.client.java.analytics.AnalyticsOptions; +import com.couchbase.client.java.analytics.AnalyticsResult; +import com.couchbase.client.java.query.QueryMetaData; +import com.couchbase.client.java.query.QueryOptions; import com.couchbase.client.java.query.QueryResult; +import com.couchbase.client.java.query.QueryRow; import java.io.Closeable; import java.util.Set; +import java.util.function.Consumer; public class Cluster implements Closeable { @@ -40,10 +30,33 @@ public static Cluster connect(final Set seedNodes, final ClusterOption return null; } + public AnalyticsResult analyticsQuery(final String statement) { + return null; + } + + public AnalyticsResult analyticsQuery(final String statement, final AnalyticsOptions options) { + return null; + } + public QueryResult query(final String statement) { return null; } + public QueryResult query(final String statement, final QueryOptions options) { + return null; + } + + public QueryMetaData queryStreaming(String statement, Consumer rowAction) { + + return null; + } + + public QueryMetaData queryStreaming( + String statement, QueryOptions options, Consumer rowAction) { + + return null; + } + @Override public void close() {} } \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java deleted file mode 100644 index 7657c84703a47..0000000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2018 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.couchbase.client.java; - -import com.couchbase.client.java.kv.InsertOptions; -import com.couchbase.client.java.kv.MutationResult; -import com.couchbase.client.java.kv.ReplaceOptions; -import com.couchbase.client.java.kv.UpsertOptions; - -public class Collection { - - public MutationResult insert(final String id, final Object content) { - return null; - } - - public MutationResult insert(final String id, final Object content, final InsertOptions options) { - return null; - } - - public MutationResult upsert(final String id, final Object content) { - return null; - } - - public MutationResult upsert(final String id, final Object content, final UpsertOptions options) { - return null; - } - - public MutationResult replace(final String id, final Object content) { - return null; - } - - public MutationResult replace( - final String id, final Object content, final ReplaceOptions options) { - return null; - } -} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java new file mode 100644 index 0000000000000..dc4ed56f54df7 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.analytics; + +public class AnalyticsOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java new file mode 100644 index 0000000000000..6299d6ba8c22e --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.analytics; + +public class AnalyticsResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java deleted file mode 100644 index ff88c595f9c64..0000000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.couchbase.client.java.json; - -import java.io.Serializable; - -public class JsonObject extends JsonValue implements Serializable { - - public static JsonObject create() { - return null; - } - - public JsonObject put(final String name, final Object value) { - return null; - } - - public JsonObject putNull(final String name) { - return null; - } -} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java deleted file mode 100644 index e6c664ca9db8d..0000000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.couchbase.client.java.json; - - -public abstract class JsonValue {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java new file mode 100644 index 0000000000000..a8f33cb0008d3 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryMetaData {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java new file mode 100644 index 0000000000000..9b4390f1f1e23 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java index 2796ffbb053b9..e86e0198d4de2 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java @@ -1,19 +1,3 @@ -/* - * Copyright (c) 2019 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.couchbase.client.java.query; public class QueryResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java new file mode 100644 index 0000000000000..2e30725bc41a2 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryRow {} From 29f23ee192cb6c3fc2395deb5a1a64064eabdbfc Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 22:31:35 +0100 Subject: [PATCH 21/63] Fix extraction error --- .../couchbaseClient/com/couchbase/client/java/Bucket.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java index df9e69c50a1e8..e7342dc21ec4e 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -1,8 +1,3 @@ package com.couchbase.client.java; -public class Bucket { - - public Collection defaultCollection() { - return null; - } -} \ No newline at end of file +public class Bucket {} From 9efefa61207ec7c1ab0706b0e1e605ef42e925ec Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 22:46:42 +0100 Subject: [PATCH 22/63] Fix test expectations --- .../CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index 552ed2aeb45f3..a273768fce810 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -57,7 +57,7 @@ public static void test() { Cluster.connect( "127.0.0.1", clusterOptions( - "Administrator", // $ HardcodedCredentialsApiCall - "password")); // $ HardcodedCredentialsApiCall + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall } } From 5cef0376a964585e7d807660efa20be7c9f9237b Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 14 Jan 2026 11:50:52 +0100 Subject: [PATCH 23/63] Update java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> --- .../CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index a273768fce810..bad0d6de35b09 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -32,7 +32,7 @@ public static void test() { .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall PasswordAuthenticator.builder( (Supplier) - new UsernameAndPassword( + () -> new UsernameAndPassword( "Administrator", // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall "password")); // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall PasswordAuthenticator.builder() From 54f75653ba79005ac7323d9d31c76d0d39c5f9a5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Sat, 10 Jan 2026 12:35:46 +0100 Subject: [PATCH 24/63] C++: Update test expectations after extractor changes --- cpp/ql/test/library-tests/friends/loop/friends.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/ql/test/library-tests/friends/loop/friends.expected b/cpp/ql/test/library-tests/friends/loop/friends.expected index a43c3f67c2ebc..a59c1f0c65cdf 100644 --- a/cpp/ql/test/library-tests/friends/loop/friends.expected +++ b/cpp/ql/test/library-tests/friends/loop/friends.expected @@ -1,9 +1,14 @@ | file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | +| file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | | file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | +| file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | | file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | | loop.cpp:6:5:6:5 | E's friend | loop.cpp:5:26:5:26 | E | | loop.cpp:7:5:7:5 | E's friend | loop.cpp:7:36:7:36 | F | | loop.cpp:11:5:11:5 | F's friend | loop.cpp:11:36:11:36 | E | From f71b6c1bfd74a5b9018f7958726e00b7763aedd3 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 14 Jan 2026 12:32:42 +0100 Subject: [PATCH 25/63] Improved models for `Supplier` arguments --- java/ql/lib/ext/com.couchbase.client.core.env.model.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml index 09179f7589b19..2182626653def 100644 --- a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -10,16 +10,16 @@ extensions: - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-password", "manual"] # 'credentials-username' sinks - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-username", "manual"] - addsTo: pack: codeql/java-all From 9d5e5b0c8a63956e1b21385b0fa0bb94b048a335 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 16 Dec 2025 12:15:19 +0000 Subject: [PATCH 26/63] Add post-processing to Beego tests --- .../Beego/CleartextLogging.expected | 137 ++++++----- .../frameworks/Beego/CleartextLogging.qlref | 5 +- .../go/frameworks/Beego/OpenRedirect.expected | 6 +- .../go/frameworks/Beego/OpenRedirect.qlref | 5 +- .../go/frameworks/Beego/ReflectedXss.qlref | 4 +- .../go/frameworks/Beego/TaintedPath.qlref | 4 +- .../semmle/go/frameworks/Beego/test.go | 228 +++++++++--------- 7 files changed, 211 insertions(+), 178 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected index 591d990be47c7..30a38580f7894 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected @@ -1,3 +1,38 @@ +#select +| test.go:154:14:154:21 | password | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:155:17:155:24 | password | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:156:14:156:21 | password | test.go:153:17:153:24 | definition of password | test.go:156:14:156:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:157:18:157:25 | password | test.go:153:17:153:24 | definition of password | test.go:157:18:157:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:158:14:158:21 | password | test.go:153:17:153:24 | definition of password | test.go:158:14:158:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:159:13:159:20 | password | test.go:153:17:153:24 | definition of password | test.go:159:13:159:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:160:22:160:29 | password | test.go:153:17:153:24 | definition of password | test.go:160:22:160:29 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:161:15:161:22 | password | test.go:153:17:153:24 | definition of password | test.go:161:15:161:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:162:14:162:21 | password | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:163:13:163:20 | password | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:164:16:164:23 | password | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:165:13:165:20 | password | test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:166:16:166:23 | password | test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:167:13:167:20 | password | test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:168:17:168:24 | password | test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:169:13:169:20 | password | test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:170:12:170:19 | password | test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:171:21:171:28 | password | test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:172:14:172:21 | password | test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:173:13:173:20 | password | test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:174:12:174:19 | password | test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:175:15:175:22 | password | test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:176:15:176:22 | password | test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:177:18:177:25 | password | test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:178:15:178:22 | password | test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:179:19:179:26 | password | test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:180:15:180:22 | password | test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:181:14:181:21 | password | test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:182:23:182:30 | password | test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:183:16:183:23 | password | test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:184:15:184:22 | password | test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:185:14:185:21 | password | test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:186:17:186:24 | password | test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:187:16:187:23 | password | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | edges | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | provenance | | @@ -10,29 +45,52 @@ edges | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | provenance | | -| test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | provenance | Sink:MaD:380 | -| test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | provenance | Sink:MaD:381 | -| test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | provenance | Sink:MaD:382 | -| test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | provenance | Sink:MaD:383 | -| test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | provenance | Sink:MaD:384 | -| test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | provenance | Sink:MaD:385 | -| test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | provenance | Sink:MaD:386 | -| test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | provenance | Sink:MaD:387 | -| test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | provenance | Sink:MaD:388 | -| test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | provenance | Sink:MaD:389 | -| test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | provenance | Sink:MaD:390 | -| test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | provenance | Sink:MaD:391 | -| test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | provenance | Sink:MaD:392 | -| test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | provenance | Sink:MaD:393 | -| test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | provenance | Sink:MaD:394 | -| test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | provenance | Sink:MaD:395 | -| test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | provenance | Sink:MaD:396 | -| test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | provenance | Sink:MaD:397 | -| test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | provenance | Sink:MaD:398 | -| test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | provenance | Sink:MaD:399 | -| test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | provenance | Sink:MaD:400 | -| test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | provenance | Sink:MaD:401 | +| test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | provenance | Sink:MaD:1 | +| test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | provenance | Sink:MaD:2 | +| test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | provenance | Sink:MaD:3 | +| test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | provenance | Sink:MaD:4 | +| test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | provenance | Sink:MaD:5 | +| test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | provenance | Sink:MaD:6 | +| test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | provenance | Sink:MaD:7 | +| test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | provenance | Sink:MaD:8 | +| test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | provenance | Sink:MaD:9 | +| test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | provenance | Sink:MaD:10 | +| test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | provenance | Sink:MaD:11 | +| test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | provenance | Sink:MaD:12 | +| test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | provenance | Sink:MaD:13 | +| test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | provenance | Sink:MaD:14 | +| test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | provenance | Sink:MaD:15 | +| test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | provenance | Sink:MaD:16 | +| test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | provenance | Sink:MaD:17 | +| test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | provenance | Sink:MaD:18 | +| test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | provenance | Sink:MaD:19 | +| test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | provenance | Sink:MaD:20 | +| test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | provenance | Sink:MaD:21 | +| test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | provenance | Sink:MaD:22 | | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | provenance | | +models +| 1 | Sink: group:beego-logs; ; false; Alert; ; ; Argument[0..1]; log-injection; manual | +| 2 | Sink: group:beego-logs; ; false; Critical; ; ; Argument[0..1]; log-injection; manual | +| 3 | Sink: group:beego-logs; ; false; Debug; ; ; Argument[0..1]; log-injection; manual | +| 4 | Sink: group:beego-logs; ; false; Emergency; ; ; Argument[0..1]; log-injection; manual | +| 5 | Sink: group:beego-logs; ; false; Error; ; ; Argument[0..1]; log-injection; manual | +| 6 | Sink: group:beego-logs; ; false; Info; ; ; Argument[0..1]; log-injection; manual | +| 7 | Sink: group:beego-logs; ; false; Informational; ; ; Argument[0..1]; log-injection; manual | +| 8 | Sink: group:beego-logs; ; false; Notice; ; ; Argument[0..1]; log-injection; manual | +| 9 | Sink: group:beego-logs; ; false; Trace; ; ; Argument[0..1]; log-injection; manual | +| 10 | Sink: group:beego-logs; ; false; Warn; ; ; Argument[0..1]; log-injection; manual | +| 11 | Sink: group:beego-logs; ; false; Warning; ; ; Argument[0..1]; log-injection; manual | +| 12 | Sink: group:beego-logs; BeeLogger; true; Alert; ; ; Argument[0..1]; log-injection; manual | +| 13 | Sink: group:beego-logs; BeeLogger; true; Critical; ; ; Argument[0..1]; log-injection; manual | +| 14 | Sink: group:beego-logs; BeeLogger; true; Debug; ; ; Argument[0..1]; log-injection; manual | +| 15 | Sink: group:beego-logs; BeeLogger; true; Emergency; ; ; Argument[0..1]; log-injection; manual | +| 16 | Sink: group:beego-logs; BeeLogger; true; Error; ; ; Argument[0..1]; log-injection; manual | +| 17 | Sink: group:beego-logs; BeeLogger; true; Info; ; ; Argument[0..1]; log-injection; manual | +| 18 | Sink: group:beego-logs; BeeLogger; true; Informational; ; ; Argument[0..1]; log-injection; manual | +| 19 | Sink: group:beego-logs; BeeLogger; true; Notice; ; ; Argument[0..1]; log-injection; manual | +| 20 | Sink: group:beego-logs; BeeLogger; true; Trace; ; ; Argument[0..1]; log-injection; manual | +| 21 | Sink: group:beego-logs; BeeLogger; true; Warn; ; ; Argument[0..1]; log-injection; manual | +| 22 | Sink: group:beego-logs; BeeLogger; true; Warning; ; ; Argument[0..1]; log-injection; manual | nodes | test.go:153:17:153:24 | definition of password | semmle.label | definition of password | | test.go:154:14:154:21 | password | semmle.label | password | @@ -70,38 +128,3 @@ nodes | test.go:186:17:186:24 | password | semmle.label | password | | test.go:187:16:187:23 | password | semmle.label | password | subpaths -#select -| test.go:154:14:154:21 | password | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:155:17:155:24 | password | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:156:14:156:21 | password | test.go:153:17:153:24 | definition of password | test.go:156:14:156:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:157:18:157:25 | password | test.go:153:17:153:24 | definition of password | test.go:157:18:157:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:158:14:158:21 | password | test.go:153:17:153:24 | definition of password | test.go:158:14:158:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:159:13:159:20 | password | test.go:153:17:153:24 | definition of password | test.go:159:13:159:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:160:22:160:29 | password | test.go:153:17:153:24 | definition of password | test.go:160:22:160:29 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:161:15:161:22 | password | test.go:153:17:153:24 | definition of password | test.go:161:15:161:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:162:14:162:21 | password | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:163:13:163:20 | password | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:164:16:164:23 | password | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:165:13:165:20 | password | test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:166:16:166:23 | password | test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:167:13:167:20 | password | test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:168:17:168:24 | password | test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:169:13:169:20 | password | test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:170:12:170:19 | password | test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:171:21:171:28 | password | test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:172:14:172:21 | password | test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:173:13:173:20 | password | test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:174:12:174:19 | password | test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:175:15:175:22 | password | test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:176:15:176:22 | password | test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:177:18:177:25 | password | test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:178:15:178:22 | password | test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:179:19:179:26 | password | test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:180:15:180:22 | password | test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:181:14:181:21 | password | test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:182:23:182:30 | password | test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:183:16:183:23 | password | test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:184:15:184:22 | password | test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:185:14:185:21 | password | test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:186:17:186:24 | password | test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:187:16:187:23 | password | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref index 21eebbd09beb6..693299c33a21e 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref @@ -1 +1,4 @@ -Security/CWE-312/CleartextLogging.ql +query: Security/CWE-312/CleartextLogging.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected index c624f05d450e3..4dca9d050d717 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected @@ -1,3 +1,6 @@ +#select +| test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:253:13:253:34 | call to GetString | user-provided value | +| test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:254:20:254:41 | call to GetString | user-provided value | edges nodes | test.go:253:13:253:34 | call to GetString | semmle.label | call to GetString | @@ -5,6 +8,3 @@ nodes | test.go:317:13:317:27 | call to URI | semmle.label | call to URI | | test.go:318:20:318:34 | call to URL | semmle.label | call to URL | subpaths -#select -| test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:253:13:253:34 | call to GetString | user-provided value | -| test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:254:20:254:41 | call to GetString | user-provided value | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref index 0f1a747782567..13add930f517b 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref @@ -1 +1,4 @@ -Security/CWE-601/OpenUrlRedirect.ql +query: Security/CWE-601/OpenUrlRedirect.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref index 754513d72bb35..e6b791f39fcac 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref @@ -1,2 +1,4 @@ query: Security/CWE-079/ReflectedXss.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref index 78ce25b1921ff..6eb2e94892f23 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref @@ -1,2 +1,4 @@ query: Security/CWE-022/TaintedPath.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go b/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go index d702f4a544501..38cb06691f832 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go @@ -31,75 +31,75 @@ type bindMe struct { // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromBind(input *context.BeegoInput, sink http.ResponseWriter) { var bound bindMe - input.Bind(bound, "someKey") - sink.Write([]byte(bound.a[0])) - sink.Write([]byte(bound.b)) - sink.Write([]byte(bound.c.z)) + input.Bind(bound, "someKey") // $ Source[go/reflected-xss] + sink.Write([]byte(bound.a[0])) // $ Alert[go/reflected-xss] + sink.Write([]byte(bound.b)) // $ Alert[go/reflected-xss] + sink.Write([]byte(bound.c.z)) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromCookie(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Cookie("someKey"))) + sink.Write([]byte(input.Cookie("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromData(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Data()["someKey"].(string))) + sink.Write([]byte(input.Data()["someKey"].(string))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromGetData(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.GetData("someKey").(string))) + sink.Write([]byte(input.GetData("someKey").(string))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromHeader(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Header("someKey"))) + sink.Write([]byte(input.Header("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromParam(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Param("someKey"))) + sink.Write([]byte(input.Param("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromParams(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Params()["someKey"])) + sink.Write([]byte(input.Params()["someKey"])) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromQuery(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Query("someKey"))) + sink.Write([]byte(input.Query("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromRefer(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Refer())) + sink.Write([]byte(input.Refer())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromReferer(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Referer())) + sink.Write([]byte(input.Referer())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromURI(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.URI())) + sink.Write([]byte(input.URI())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromURL(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.URL())) + sink.Write([]byte(input.URL())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromUserAgent(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.UserAgent())) + sink.Write([]byte(input.UserAgent())) // $ Alert[go/reflected-xss] } // BAD: with no obvious ContentType call we assume this could be text/html. func echoToBodyNoContentType(input *context.BeegoInput, output *context.BeegoOutput) { - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON can't (by itself) cause XSS @@ -111,7 +111,7 @@ func echoToBodyContentTypeJson(input *context.BeegoInput, output *context.BeegoO // BAD: echoing untrusted data with an HTML content type func echoToBodyContentTypeHtml(input *context.BeegoInput, output *context.BeegoOutput) { output.ContentType("text/html") - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON can't (by itself) cause XSS @@ -123,7 +123,7 @@ func echoToBodyContentTypeJsonUsingHeader(input *context.BeegoInput, output *con // BAD: echoing untrusted data with an HTML content type func echoToBodyContentTypeHtmlUsingHeader(input *context.BeegoInput, output *context.BeegoOutput) { output.Header("content-type", "text/html") - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON and other non-HTML formats can't (by themselves) cause XSS @@ -140,7 +140,7 @@ func echoToFixedContentTypeRoutines(input *context.BeegoInput, output *context.B func echoToBodyContentTypeHtmlUsingHandler() { beego.Post("", func(context *context.Context) { context.Output.Header("content-type", "text/html") - context.Output.Body(context.Input.Data()["someKey"].([]byte)) + context.Output.Body(context.Input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] }) } @@ -150,41 +150,41 @@ func echoToBodySanitized(input *context.BeegoInput, output *context.BeegoOutput) } // BAD: logging something named "password". -func loggerTest(password string, logger *logs.BeeLogger) { - beego.Alert(password) - beego.Critical(password) - beego.Debug(password) - beego.Emergency(password) - beego.Error(password) - beego.Info(password) - beego.Informational(password) - beego.Notice(password) - beego.Trace(password) - beego.Warn(password) - beego.Warning(password) - logs.Alert(password) - logs.Critical(password) - logs.Debug(password) - logs.Emergency(password) - logs.Error(password) - logs.Info(password) - logs.Informational(password) - logs.Notice(password) - logs.Trace(password) - logs.Warn(password) - logs.Warning(password) - logger.Alert(password) - logger.Critical(password) - logger.Debug(password) - logger.Emergency(password) - logger.Error(password) - logger.Info(password) - logger.Informational(password) - logger.Notice(password) - logger.Trace(password) - logger.Warn(password) - logger.Warning(password) - utils.Display(password) +func loggerTest(password string, logger *logs.BeeLogger) { // $ Source[go/clear-text-logging] + beego.Alert(password) // $ Alert[go/clear-text-logging] + beego.Critical(password) // $ Alert[go/clear-text-logging] + beego.Debug(password) // $ Alert[go/clear-text-logging] + beego.Emergency(password) // $ Alert[go/clear-text-logging] + beego.Error(password) // $ Alert[go/clear-text-logging] + beego.Info(password) // $ Alert[go/clear-text-logging] + beego.Informational(password) // $ Alert[go/clear-text-logging] + beego.Notice(password) // $ Alert[go/clear-text-logging] + beego.Trace(password) // $ Alert[go/clear-text-logging] + beego.Warn(password) // $ Alert[go/clear-text-logging] + beego.Warning(password) // $ Alert[go/clear-text-logging] + logs.Alert(password) // $ Alert[go/clear-text-logging] + logs.Critical(password) // $ Alert[go/clear-text-logging] + logs.Debug(password) // $ Alert[go/clear-text-logging] + logs.Emergency(password) // $ Alert[go/clear-text-logging] + logs.Error(password) // $ Alert[go/clear-text-logging] + logs.Info(password) // $ Alert[go/clear-text-logging] + logs.Informational(password) // $ Alert[go/clear-text-logging] + logs.Notice(password) // $ Alert[go/clear-text-logging] + logs.Trace(password) // $ Alert[go/clear-text-logging] + logs.Warn(password) // $ Alert[go/clear-text-logging] + logs.Warning(password) // $ Alert[go/clear-text-logging] + logger.Alert(password) // $ Alert[go/clear-text-logging] + logger.Critical(password) // $ Alert[go/clear-text-logging] + logger.Debug(password) // $ Alert[go/clear-text-logging] + logger.Emergency(password) // $ Alert[go/clear-text-logging] + logger.Error(password) // $ Alert[go/clear-text-logging] + logger.Info(password) // $ Alert[go/clear-text-logging] + logger.Informational(password) // $ Alert[go/clear-text-logging] + logger.Notice(password) // $ Alert[go/clear-text-logging] + logger.Trace(password) // $ Alert[go/clear-text-logging] + logger.Warn(password) // $ Alert[go/clear-text-logging] + logger.Warning(password) // $ Alert[go/clear-text-logging] + utils.Display(password) // $ Alert[go/clear-text-logging] } type myStruct struct { @@ -196,83 +196,83 @@ func sanitizersTest(ctx *context.Context) { input := ctx.Input output := ctx.Output - untrusted := input.Data()["someKey"] - output.Body([]byte(beego.HTML2str(untrusted.(string)))) - output.Body([]byte(beego.Htmlunquote(untrusted.(string)))) + untrusted := input.Data()["someKey"] // $ Source[go/reflected-xss] + output.Body([]byte(beego.HTML2str(untrusted.(string)))) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Htmlunquote(untrusted.(string)))) // $ Alert[go/reflected-xss] mapVal, _ := beego.MapGet(untrusted.(map[string][]byte), "somekey") - output.Body(mapVal.([]byte)) - output.Body([]byte(beego.Str2html(untrusted.(string)))) - output.Body([]byte(beego.Substr(untrusted.(string), 1, 2))) + output.Body(mapVal.([]byte)) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Str2html(untrusted.(string)))) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Substr(untrusted.(string), 1, 2))) // $ Alert[go/reflected-xss] var s myStruct - beego.ParseForm(ctx.Request.Form, s) - output.Body([]byte(s.field)) + beego.ParseForm(ctx.Request.Form, s) // $ Source[go/reflected-xss] + output.Body([]byte(s.field)) // $ Alert[go/reflected-xss] } // BAD: using user-provided data as paths in file-system operations func fsOpsTest(ctx *context.Context, c *beego.Controller, fs beego.FileSystem) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) - beego.Walk(nil, untrusted, func(path string, info os.FileInfo, err error) error { return nil }) - fs.Open(untrusted) - c.SaveToFile("someReceviedFile", untrusted) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] + beego.Walk(nil, untrusted, func(path string, info os.FileInfo, err error) error { return nil }) // $ Alert[go/path-injection] + fs.Open(untrusted) // $ Alert[go/path-injection] + c.SaveToFile("someReceviedFile", untrusted) // $ Alert[go/path-injection] } // BAD: echoing untrusted data, using various Controller sources func controllerSourceTest(c *beego.Controller, output *context.BeegoOutput) { - f, fh, _ := c.GetFile("somename") - output.Body([]byte(fh.Filename)) + f, fh, _ := c.GetFile("somename") // $ Source[go/reflected-xss] + output.Body([]byte(fh.Filename)) // $ Alert[go/reflected-xss] content, _ := ioutil.ReadAll(f) - output.Body(content) + output.Body(content) // $ Alert[go/reflected-xss] - files, _ := c.GetFiles("someothername") - output.Body([]byte(files[0].Filename)) + files, _ := c.GetFiles("someothername") // $ Source[go/reflected-xss] + output.Body([]byte(files[0].Filename)) // $ Alert[go/reflected-xss] - s := c.GetString("somekey") - output.Body([]byte(s)) + s := c.GetString("somekey") // $ Source[go/reflected-xss] + output.Body([]byte(s)) // $ Alert[go/reflected-xss] - ss := c.GetStrings("someotherkey") - output.Body([]byte(ss[0])) + ss := c.GetStrings("someotherkey") // $ Source[go/reflected-xss] + output.Body([]byte(ss[0])) // $ Alert[go/reflected-xss] - val := c.Input()["thirdkey"] - output.Body([]byte(val[0])) + val := c.Input()["thirdkey"] // $ Source[go/reflected-xss] + output.Body([]byte(val[0])) // $ Alert[go/reflected-xss] var str myStruct - c.ParseForm(str) - output.Body([]byte(str.field)) + c.ParseForm(str) // $ Source[go/reflected-xss] + output.Body([]byte(str.field)) // $ Alert[go/reflected-xss] } func controllerSinkTest(c *beego.Controller) { - untrusted := c.GetString("somekey") - c.SetData(untrusted) // GOOD: SetData always uses a non-html content-type, so no XSS risk + untrusted := c.GetString("somekey") // $ Source[go/reflected-xss] + c.SetData(untrusted) // GOOD: SetData always uses a non-html content-type, so no XSS risk - c.CustomAbort(500, untrusted) // BAD: CustomAbort doesn't set a content-type, so there is an XSS risk + c.CustomAbort(500, untrusted) // $ Alert[go/reflected-xss] // BAD: CustomAbort doesn't set a content-type, so there is an XSS risk } func redirectTest(c *beego.Controller, ctx *context.Context) { - c.Redirect(c.GetString("somekey"), 304) // BAD: User-controlled redirect - ctx.Redirect(304, c.GetString("somekey")) // BAD: User-controlled redirect + c.Redirect(c.GetString("somekey"), 304) // $ Alert[go/unvalidated-url-redirection] + ctx.Redirect(304, c.GetString("somekey")) // $ Alert[go/unvalidated-url-redirection] } // BAD: echoing untrusted data, using Context source func contextSourceTest(c *context.Context) { - c.Output.Body([]byte(c.GetCookie("somekey"))) + c.Output.Body([]byte(c.GetCookie("somekey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using Context sinks func contextSinkTest(c *context.Context) { - c.WriteString(c.GetCookie("somekey")) - c.Abort(500, c.GetCookie("someOtherKey")) + c.WriteString(c.GetCookie("somekey")) // $ Alert[go/reflected-xss] + c.Abort(500, c.GetCookie("someOtherKey")) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using context.WriteBody as a propagator func contextWriteBodyTest(c *context.Context) { - context.WriteBody("some/encoding", c.ResponseWriter, []byte(c.GetCookie("someKey"))) + context.WriteBody("some/encoding", c.ResponseWriter, []byte(c.GetCookie("someKey"))) // $ Alert[go/reflected-xss] } // BAD unless otherwise noted: echoing untrusted data, using various utils methods as propagators func testUtilsPropagators(c *beego.Controller) { - files, _ := c.GetFiles("someothername") + files, _ := c.GetFiles("someothername") // $ Source[go/reflected-xss] genericFiles := make([]interface{}, len(files), len(files)) for i := range files { genericFiles[i] = files[i] @@ -280,36 +280,36 @@ func testUtilsPropagators(c *beego.Controller) { untainted := make([]interface{}, 1, 1) - c.CustomAbort(500, utils.GetDisplayString(files[0].Filename)) - c.CustomAbort(500, utils.SliceChunk(genericFiles, 1)[0][0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceDiff(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) + c.CustomAbort(500, utils.GetDisplayString(files[0].Filename)) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceChunk(genericFiles, 1)[0][0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceDiff(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] // GOOD: the tainted values are subtracted, so taint is not propagated c.CustomAbort(500, utils.SliceDiff(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) c.CustomAbort( 500, utils.SliceFilter( genericFiles, - func([]interface{}) bool { return true })[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceIntersect(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceIntersect(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceMerge(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceMerge(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SlicePad(untainted, 10, genericFiles[0])[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SlicePad(genericFiles, 10, untainted[0])[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceRand(genericFiles).(*multipart.FileHeader).Filename) + func([]interface{}) bool { return true })[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceIntersect(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceIntersect(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceMerge(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceMerge(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SlicePad(untainted, 10, genericFiles[0])[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SlicePad(genericFiles, 10, untainted[0])[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceRand(genericFiles).(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] // Note this is misnamed -- it's a map operation, not a reduce - c.CustomAbort(500, utils.SliceReduce(genericFiles, func(x interface{}) interface{} { return x })[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceShuffle(genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceUnique(genericFiles)[0].(*multipart.FileHeader).Filename) + c.CustomAbort(500, utils.SliceReduce(genericFiles, func(x interface{}) interface{} { return x })[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceShuffle(genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceUnique(genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using BeeMap as an intermediary func testBeeMap(c *beego.Controller) { bMap := utils.NewBeeMap() - untrusted := c.GetString("someKey") + untrusted := c.GetString("someKey") // $ Source[go/reflected-xss] bMap.Set("someKey", untrusted) - c.CustomAbort(500, bMap.Get("someKey").(string)) - c.CustomAbort(500, bMap.Items()["someKey"].(string)) + c.CustomAbort(500, bMap.Get("someKey").(string)) // $ Alert[go/reflected-xss] + c.CustomAbort(500, bMap.Items()["someKey"].(string)) // $ Alert[go/reflected-xss] } // GOOD: using the input URL for a redirect operation @@ -321,25 +321,25 @@ func testSafeRedirects(c *beego.Controller, ctx *context.Context) { // BAD: using RequestBody data as path in a file-system operation func requestBodySourceTest(ctx *context.Context, c *beego.Controller) { var dat map[string]interface{} - json.Unmarshal(ctx.Input.RequestBody, &dat) + json.Unmarshal(ctx.Input.RequestBody, &dat) // $ Source[go/path-injection] untrusted := dat["filepath"].(string) - c.SaveToFile("someReceviedFile", untrusted) + c.SaveToFile("someReceviedFile", untrusted) // $ Alert[go/path-injection] } // BAD: using user-provided data as paths in file-system operations func fsOpsTest2(ctx *context.Context, c *beego.Controller, fs beego.FileSystem) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] beegoOutput := context.BeegoOutput{} - beegoOutput.Download(untrusted, "license.txt") + beegoOutput.Download(untrusted, "license.txt") // $ Alert[go/path-injection] } // BAD: using user-provided data as paths in file-system operations func fsOpsV2Test(ctx *Beegov2Context.Context, c *beegov2.Controller) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] buffer := make([]byte, 10) - _ = c.SaveToFileWithBuffer("filenameExistsInForm", untrusted, buffer) + _ = c.SaveToFileWithBuffer("filenameExistsInForm", untrusted, buffer) // $ Alert[go/path-injection] beegoOutput := Beegov2Context.BeegoOutput{} - beegoOutput.Download(untrusted, "license.txt") + beegoOutput.Download(untrusted, "license.txt") // $ Alert[go/path-injection] } From 1cd0698453d01ab9e0939785703da5eea09fe7bf Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 12 Dec 2025 07:14:34 +0000 Subject: [PATCH 27/63] Fix test for reflected xss sanitizer It used to pass even without ErrorSanitizer because `cookie` is already sanitized. --- .../Security/CWE-079/ReflectedXss.expected | 22 ++++++++++--------- .../Security/CWE-079/reflectedxsstest.go | 8 +++---- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected index 0e1265b5c1e6d..b95abaa47c50f 100644 --- a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected @@ -6,8 +6,8 @@ | contenttype.go:79:11:79:14 | data | contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:73:10:73:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | | contenttype.go:91:4:91:7 | data | contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:88:10:88:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | | contenttype.go:114:50:114:53 | data | contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:113:10:113:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | -| reflectedxsstest.go:33:10:33:57 | type conversion | reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:33:10:33:57 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:31:2:31:44 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | -| reflectedxsstest.go:34:10:34:62 | type conversion | reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:10:34:62 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:31:2:31:44 | ... := ...[1] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | +| reflectedxsstest.go:33:10:33:57 | type conversion | reflectedxsstest.go:30:2:30:44 | ... := ...[0] | reflectedxsstest.go:33:10:33:57 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:30:2:30:44 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | +| reflectedxsstest.go:34:10:34:62 | type conversion | reflectedxsstest.go:30:2:30:44 | ... := ...[1] | reflectedxsstest.go:34:10:34:62 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:30:2:30:44 | ... := ...[1] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:44:10:44:55 | type conversion | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:44:10:44:55 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:45:10:45:18 | byteSlice | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:45:10:45:18 | byteSlice | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:54:11:54:21 | type conversion | reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:54:11:54:21 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:51:14:51:18 | selection of URL | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | @@ -30,10 +30,11 @@ edges | contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | provenance | Src:MaD:8 | | contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | provenance | Src:MaD:8 | | contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | provenance | Src:MaD:8 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:30:32:33 | file | provenance | Src:MaD:7 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:7 | -| reflectedxsstest.go:32:2:32:34 | ... := ...[0] | reflectedxsstest.go:33:49:33:55 | content | provenance | | -| reflectedxsstest.go:32:30:32:33 | file | reflectedxsstest.go:32:2:32:34 | ... := ...[0] | provenance | MaD:13 | +| reflectedxsstest.go:30:2:30:44 | ... := ...[0] | reflectedxsstest.go:31:30:31:33 | file | provenance | Src:MaD:7 | +| reflectedxsstest.go:30:2:30:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:7 | +| reflectedxsstest.go:31:2:31:34 | ... := ...[0] | reflectedxsstest.go:32:48:32:54 | content | provenance | | +| reflectedxsstest.go:31:30:31:33 | file | reflectedxsstest.go:31:2:31:34 | ... := ...[0] | provenance | MaD:13 | +| reflectedxsstest.go:32:48:32:54 | content | reflectedxsstest.go:33:49:33:55 | content | provenance | | | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | reflectedxsstest.go:33:17:33:56 | call to Sprintf | provenance | MaD:12 | | reflectedxsstest.go:33:17:33:56 | call to Sprintf | reflectedxsstest.go:33:10:33:57 | type conversion | provenance | | | reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | provenance | | @@ -106,10 +107,11 @@ nodes | contenttype.go:91:4:91:7 | data | semmle.label | data | | contenttype.go:113:10:113:28 | call to FormValue | semmle.label | call to FormValue | | contenttype.go:114:50:114:53 | data | semmle.label | data | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | semmle.label | ... := ...[0] | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | semmle.label | ... := ...[1] | -| reflectedxsstest.go:32:2:32:34 | ... := ...[0] | semmle.label | ... := ...[0] | -| reflectedxsstest.go:32:30:32:33 | file | semmle.label | file | +| reflectedxsstest.go:30:2:30:44 | ... := ...[0] | semmle.label | ... := ...[0] | +| reflectedxsstest.go:30:2:30:44 | ... := ...[1] | semmle.label | ... := ...[1] | +| reflectedxsstest.go:31:2:31:34 | ... := ...[0] | semmle.label | ... := ...[0] | +| reflectedxsstest.go:31:30:31:33 | file | semmle.label | file | +| reflectedxsstest.go:32:48:32:54 | content | semmle.label | content | | reflectedxsstest.go:33:10:33:57 | type conversion | semmle.label | type conversion | | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | semmle.label | []type{args} [array] | | reflectedxsstest.go:33:17:33:56 | call to Sprintf | semmle.label | call to Sprintf | diff --git a/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go b/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go index b3ddc79535b47..ce708a2c7d788 100644 --- a/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go +++ b/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go @@ -25,11 +25,11 @@ func ServeJsonDirect(w http.ResponseWriter, r http.Request) { func ErrTest(w http.ResponseWriter, r http.Request) { cookie, err := r.Cookie("somecookie") - w.Write([]byte(fmt.Sprintf("Cookie result: %v", cookie))) // GOOD: Cookie's value is not user-controlled in reflected xss. - w.Write([]byte(fmt.Sprintf("Cookie check error: %v", err))) // GOOD: Cookie's err return is harmless - http.Error(w, fmt.Sprintf("Cookie result: %v", cookie), 500) // Good: only plain text is written. - file, header, err := r.FormFile("someFile") // $ Source[go/reflected-xss] + w.Write([]byte(fmt.Sprintf("Cookie result: %v", cookie))) // GOOD: Cookie's value is not user-controlled in reflected xss. + w.Write([]byte(fmt.Sprintf("Cookie check error: %v", err))) // GOOD: Cookie's err return is harmless + file, header, err := r.FormFile("someFile") // $ Source[go/reflected-xss] content, err2 := io.ReadAll(file) + http.Error(w, fmt.Sprintf("File content: %v", content), 500) // Good: only plain text is written. w.Write([]byte(fmt.Sprintf("File content: %v", content))) // $ Alert[go/reflected-xss] // BAD: file content is user-controlled w.Write([]byte(fmt.Sprintf("File name: %v", header.Filename))) // $ Alert[go/reflected-xss] // BAD: file header is user-controlled w.Write([]byte(fmt.Sprintf("FormFile error: %v", err))) // GOOD: FormFile's err return is harmless From 93d7c5c7efc2d550e3b1f3b827d507a7f7ad23c5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:21:45 +0000 Subject: [PATCH 28/63] Remove redundant supertypes --- go/ql/lib/semmle/go/frameworks/Revel.qll | 2 +- go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll | 2 +- go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll | 2 +- .../lib/semmle/go/security/CleartextLoggingCustomizations.qll | 4 ++-- .../lib/semmle/go/security/OpenUrlRedirectCustomizations.qll | 4 ++-- .../semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll | 4 ++-- go/ql/lib/semmle/go/security/Xss.qll | 2 +- go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll | 2 +- .../library-tests/semmle/go/frameworks/Encoding/jsoniter.ql | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go/ql/lib/semmle/go/frameworks/Revel.qll b/go/ql/lib/semmle/go/frameworks/Revel.qll index 547c7c6bdac8f..a1eff5e736e79 100644 --- a/go/ql/lib/semmle/go/frameworks/Revel.qll +++ b/go/ql/lib/semmle/go/frameworks/Revel.qll @@ -140,7 +140,7 @@ module Revel { /** * A render of a template. */ - abstract class TemplateRender extends DataFlow::Node, TemplateInstantiation::Range { + abstract class TemplateRender extends TemplateInstantiation::Range { /** Gets the name of the file that is rendered. */ abstract File getRenderedFile(); diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll index e798d116352f2..c6adc5c57406e 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll @@ -46,7 +46,7 @@ module NetHttp { } } - private class MapWrite extends Http::HeaderWrite::Range, DataFlow::Node { + private class MapWrite extends Http::HeaderWrite::Range { DataFlow::Node index; DataFlow::Node rhs; diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll index b8ab8cb9cd3e4..17cc0249908b3 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll @@ -61,7 +61,7 @@ module Regexp { } } - private class ExternalRegexpMatchFunction extends RegexpMatchFunction::Range, Function { + private class ExternalRegexpMatchFunction extends RegexpMatchFunction::Range { int patArg; int strArg; diff --git a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll index 4abc9021268e2..c263c0bff9d33 100644 --- a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll +++ b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll @@ -120,7 +120,7 @@ module CleartextLogging { * * This is a source since `log.Print(obj)` will often show the fields of `obj`. */ - private class StructPasswordFieldSource extends DataFlow::Node, Source { + private class StructPasswordFieldSource extends Source { string name; StructPasswordFieldSource() { @@ -137,7 +137,7 @@ module CleartextLogging { } /** An access to a variable or property that might contain a password. */ - private class ReadPasswordSource extends DataFlow::Node, Source { + private class ReadPasswordSource extends Source { string name; ReadPasswordSource() { diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 8dbcee8170d3b..6554372aa2eb3 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -61,7 +61,7 @@ module OpenUrlRedirect { /** * An HTTP redirect, considered as a sink for `Configuration`. */ - class RedirectSink extends Sink, DataFlow::Node { + class RedirectSink extends Sink { RedirectSink() { this = any(Http::Redirect redir).getUrl() } } @@ -69,7 +69,7 @@ module OpenUrlRedirect { * A definition of the HTTP "Location" header, considered as a sink for * `Configuration`. */ - class LocationHeaderSink extends Sink, DataFlow::Node { + class LocationHeaderSink extends Sink { LocationHeaderSink() { exists(Http::HeaderWrite hw | hw.getHeaderName() = "location" | this = hw.getValue()) } diff --git a/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll b/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll index 3fe3758333195..1128cc85a0024 100644 --- a/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll +++ b/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll @@ -126,7 +126,7 @@ module UnsafeUnzipSymlink { * An argument to a call to `os.Symlink` within a loop that extracts a zip or tar archive, * taken as a sink for unsafe unzipping of symlinks. */ - class OsSymlink extends DataFlow::Node, SymlinkSink { + class OsSymlink extends SymlinkSink { OsSymlink() { exists(DataFlow::CallNode n | n.asExpr() = getASymlinkCall() | this = n.getArgument([0, 1]) and @@ -139,7 +139,7 @@ module UnsafeUnzipSymlink { * An argument to `path/filepath.EvalSymlinks` or `os.Readlink`, taken as a sink for detecting target * paths that are likely safe to extract to. */ - class StdlibSymlinkResolvers extends DataFlow::Node, EvalSymlinksSink { + class StdlibSymlinkResolvers extends EvalSymlinksSink { StdlibSymlinkResolvers() { exists(DataFlow::CallNode n | n.getTarget().hasQualifiedName("path/filepath", "EvalSymlinks") diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 6ab9f7321f6eb..2f171a36a10e8 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -139,7 +139,7 @@ module SharedXss { * A `Template` from `html/template` will HTML-escape data automatically * and therefore acts as a sanitizer for XSS vulnerabilities. */ - class HtmlTemplateSanitizer extends Sanitizer, DataFlow::Node { + class HtmlTemplateSanitizer extends Sanitizer { HtmlTemplateSanitizer() { exists(Method m, DataFlow::CallNode call | m = call.getCall().getTarget() | m.hasQualifiedName("html/template", "Template", "ExecuteTemplate") and diff --git a/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll b/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll index 980c601582e86..29b107c1c1bb7 100644 --- a/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll +++ b/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll @@ -30,7 +30,7 @@ module ZipSlip { /** * A tar file header, as a source for zip slip. */ - class TarHeaderSource extends Source, DataFlow::Node { + class TarHeaderSource extends Source { TarHeaderSource() { this = any(DataFlow::MethodCallNode mcn | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql index b0247c0e533ab..cc8b61653127e 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql @@ -9,7 +9,7 @@ class UntrustedFunction extends Function { UntrustedFunction() { this.getName() = ["getUntrustedString", "getUntrustedBytes"] } } -class RemoteSource extends DataFlow::Node, RemoteFlowSource::Range { +class RemoteSource extends RemoteFlowSource::Range { RemoteSource() { this = any(UntrustedFunction f).getACall().getResult() } } From 3850734a15897e2692a456f694d34b93dc5a69f5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:23:23 +0000 Subject: [PATCH 29/63] Use non-extending subtypes --- .../semmle/go/security/OpenUrlRedirectCustomizations.qll | 6 +++--- .../semmle/go/security/RequestForgeryCustomizations.qll | 7 ++++--- .../CWE-287/ImproperLdapAuthCustomizations.qll | 2 +- go/ql/src/experimental/CWE-918/SSRF.qll | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 6554372aa2eb3..1b5e2d7eb007a 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -99,20 +99,20 @@ module OpenUrlRedirect { * A call to a function called `isLocalUrl`, `isValidRedirect`, or similar, which is * considered a barrier guard for sanitizing untrusted URLs. */ - class RedirectCheckBarrierGuardAsBarrierGuard extends RedirectCheckBarrier, Barrier { } + class RedirectCheckBarrierGuardAsBarrierGuard extends Barrier instanceof RedirectCheckBarrier { } /** * A call to a regexp match function, considered as a barrier guard for sanitizing untrusted URLs. * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Barrier { } + class RegexpCheckAsBarrierGuard extends Barrier instanceof RegexpCheckBarrier { } /** * A check against a constant value or the `Hostname` function, * considered a barrier guard for url flow. */ - class UrlCheckAsBarrierGuard extends UrlCheckBarrier, Barrier { } + class UrlCheckAsBarrierGuard extends Barrier instanceof UrlCheckBarrier { } } /** A sink for an open redirect, considered as a sink for safe URL flow. */ diff --git a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll index d80026aeed5f6..83224cefc4c46 100644 --- a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll +++ b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll @@ -102,14 +102,15 @@ module RequestForgery { * A call to a function called `isLocalUrl`, `isValidRedirect`, or similar, which is * considered a barrier guard. */ - class RedirectCheckBarrierGuardAsBarrierGuard extends RedirectCheckBarrier, Sanitizer { } + class RedirectCheckBarrierGuardAsBarrierGuard extends Sanitizer instanceof RedirectCheckBarrier { + } /** * A call to a regexp match function, considered as a barrier guard for sanitizing untrusted URLs. * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Sanitizer { } + class RegexpCheckAsBarrierGuard extends Sanitizer instanceof RegexpCheckBarrier { } /** * An equality check comparing a data-flow node against a constant string, considered as @@ -118,7 +119,7 @@ module RequestForgery { * Additionally, a check comparing `url.Hostname()` against a constant string is also * considered a barrier guard for `url`. */ - class UrlCheckAsBarrierGuard extends UrlCheckBarrier, Sanitizer { } + class UrlCheckAsBarrierGuard extends Sanitizer instanceof UrlCheckBarrier { } /** * A simple-typed node, considered a sanitizer for request forgery. diff --git a/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll b/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll index 0a2739eabc792..fceae1398d795 100644 --- a/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll +++ b/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll @@ -29,7 +29,7 @@ module ImproperLdapAuth { * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, LdapSanitizer { } + class RegexpCheckAsBarrierGuard extends LdapSanitizer instanceof RegexpCheckBarrier { } /** * An empty string. diff --git a/go/ql/src/experimental/CWE-918/SSRF.qll b/go/ql/src/experimental/CWE-918/SSRF.qll index 998ce83ba74c3..436b657883eb8 100644 --- a/go/ql/src/experimental/CWE-918/SSRF.qll +++ b/go/ql/src/experimental/CWE-918/SSRF.qll @@ -113,7 +113,7 @@ module ServerSideRequestForgery { * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Sanitizer { } + class RegexpCheckAsBarrierGuard extends Sanitizer instanceof RegexpCheckBarrier { } private predicate equalityAsSanitizerGuard(DataFlow::Node g, Expr e, boolean outcome) { exists(DataFlow::Node url, DataFlow::EqualityTestNode eq | @@ -156,5 +156,5 @@ module ServerSideRequestForgery { * The method Var of package validator is a sanitizer guard only if the check * of the error binding exists, and the tag to check is one of "alpha", "alphanum", "alphaunicode", "alphanumunicode", "number", "numeric". */ - class ValidatorAsSanitizer extends Sanitizer, ValidatorVarCheckBarrier { } + class ValidatorAsSanitizer extends Sanitizer instanceof ValidatorVarCheckBarrier { } } From 94bc47ab15d3d6dbd1ae8244c33e69f753a7cf24 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:23:52 +0000 Subject: [PATCH 30/63] Swap order of supertypes --- .../frameworks/K8sIoApimachineryPkgRuntime.qll | 16 ++++++++-------- .../security/CleartextLoggingCustomizations.qll | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll b/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll index 5f1a45945e7d7..5c7481e580879 100644 --- a/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll +++ b/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll @@ -50,7 +50,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class DecoderDecode extends Method, UnmarshalingFunction::Range { + private class DecoderDecode extends UnmarshalingFunction::Range, Method { DecoderDecode() { this.implements(packagePath(), "Decoder", "Decode") or this.hasQualifiedName(packagePath(), "WithoutVersionDecoder", "Decode") @@ -95,7 +95,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ParameterCodecDecodeParameters extends Method, UnmarshalingFunction::Range { + private class ParameterCodecDecodeParameters extends UnmarshalingFunction::Range, Method { ParameterCodecDecodeParameters() { this.implements(packagePath(), "ParameterCodec", "DecodeParameters") } @@ -110,7 +110,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ParameterCodecEncodeParameters extends Method, MarshalingFunction::Range { + private class ParameterCodecEncodeParameters extends MarshalingFunction::Range, Method { ParameterCodecEncodeParameters() { this.implements(packagePath(), "ParameterCodec", "EncodeParameters") } @@ -125,7 +125,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ProtobufMarshallerMarshalTo extends Method, MarshalingFunction::Range { + private class ProtobufMarshallerMarshalTo extends MarshalingFunction::Range, Method { ProtobufMarshallerMarshalTo() { this.implements(packagePath(), "ProtobufMarshaller", "MarshalTo") or this.implements(packagePath(), "ProtobufReverseMarshaller", "MarshalToSizedBuffer") @@ -138,7 +138,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class RawExtensionMarshal extends Method, MarshalingFunction::Range { + private class RawExtensionMarshal extends MarshalingFunction::Range, Method { RawExtensionMarshal() { this.hasQualifiedName(packagePath(), "RawExtension", "Marshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } @@ -148,7 +148,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class RawExtensionUnmarshal extends Method, UnmarshalingFunction::Range { + private class RawExtensionUnmarshal extends UnmarshalingFunction::Range, Method { RawExtensionUnmarshal() { this.hasQualifiedName(packagePath(), "RawExtension", "Unmarshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } @@ -158,7 +158,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class UnknownMarshal extends Method, MarshalingFunction::Range { + private class UnknownMarshal extends MarshalingFunction::Range, Method { string methodName; UnknownMarshal() { @@ -177,7 +177,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class UnknownUnmarshal extends Method, UnmarshalingFunction::Range { + private class UnknownUnmarshal extends UnmarshalingFunction::Range, Method { UnknownUnmarshal() { this.hasQualifiedName(packagePath(), "Unknown", "Unmarshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } diff --git a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll index c263c0bff9d33..05fb88977ac29 100644 --- a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll +++ b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll @@ -162,7 +162,7 @@ module CleartextLogging { } /** A call that might return a password. */ - private class CallPasswordSource extends DataFlow::CallNode, Source { + private class CallPasswordSource extends Source, DataFlow::CallNode { string name; CallPasswordSource() { From b58e88291e57d27ad8970518cd9c72db0d25d223 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:24:12 +0000 Subject: [PATCH 31/63] Remove redundant import --- .../test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql index cc8b61653127e..147f3bbb21163 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql @@ -1,5 +1,4 @@ import go -import semmle.go.dataflow.ExternalFlow import ModelValidation import semmle.go.security.CommandInjection import codeql.dataflow.test.ProvenancePathGraph From 0dc47380a3c6d99bccefe35e723be9b729aa48cb Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:24:32 +0000 Subject: [PATCH 32/63] Swap order of equality for easier comprehension --- go/ql/lib/semmle/go/security/Xss.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 2f171a36a10e8..e6e207216ca80 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -143,10 +143,10 @@ module SharedXss { HtmlTemplateSanitizer() { exists(Method m, DataFlow::CallNode call | m = call.getCall().getTarget() | m.hasQualifiedName("html/template", "Template", "ExecuteTemplate") and - call.getArgument(2) = this + this = call.getArgument(2) or m.hasQualifiedName("html/template", "Template", "Execute") and - call.getArgument(1) = this + this = call.getArgument(1) ) } } From 76bba603837853b5f927cd9c0ef2b16a8af4ec5c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:26:41 +0000 Subject: [PATCH 33/63] Fix misspelling in comment --- go/ql/src/Security/CWE-209/StackTraceExposure.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/src/Security/CWE-209/StackTraceExposure.ql b/go/ql/src/Security/CWE-209/StackTraceExposure.ql index 408e12b3c15e5..45d58f442c323 100644 --- a/go/ql/src/Security/CWE-209/StackTraceExposure.ql +++ b/go/ql/src/Security/CWE-209/StackTraceExposure.ql @@ -53,7 +53,7 @@ module StackTraceExposureConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof Http::ResponseBody } predicate isBarrier(DataFlow::Node node) { - // Sanitise everything controlled by an is-debug-mode check. + // Sanitize everything controlled by an is-debug-mode check. // Imprecision: I don't try to guess which arm of a branch is intended // to mean debug mode, and which is production mode. exists(ControlFlow::ConditionGuardNode cgn | From 16113e6550787af046ed3a078f0bbdaa73aa9514 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:29:02 +0000 Subject: [PATCH 34/63] Use type cast to make QL more succinct --- go/ql/src/Security/CWE-352/ConstantOauth2State.ql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/go/ql/src/Security/CWE-352/ConstantOauth2State.ql b/go/ql/src/Security/CWE-352/ConstantOauth2State.ql index edbb41782b8c3..cc2a2e697188b 100644 --- a/go/ql/src/Security/CWE-352/ConstantOauth2State.ql +++ b/go/ql/src/Security/CWE-352/ConstantOauth2State.ql @@ -140,9 +140,7 @@ predicate privateUrlFlowsToAuthCodeUrlCall(DataFlow::CallNode call) { module FlowToPrintConfig implements DataFlow::ConfigSig { additional predicate isSinkCall(DataFlow::Node sink, DataFlow::CallNode call) { - exists(LoggerCall logCall | call = logCall | - sink = logCall.getAValueFormattedMessageComponent() - ) + sink = call.(LoggerCall).getAValueFormattedMessageComponent() } predicate isSource(DataFlow::Node source) { source = any(AuthCodeUrl m).getACall().getResult() } From 3d959abdeb489e187532af72da0ccf7e1f3a24f9 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:31:23 +0100 Subject: [PATCH 35/63] C++: Support new builtin operations --- .../code/cpp/exprs/BuiltInOperations.qll | 58 +++++++++++++++++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 6 ++ 2 files changed, 64 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index dc55bcda9e65a..2246a887b9c12 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -1941,3 +1941,61 @@ class BuiltInOperationIsTriviallyRelocatable extends BuiltInOperation, @istrivia override string getAPrimaryQlClass() { result = "BuiltInOperationIsTriviallyRelocatable" } } + +/** + * A C++ `__is_bitwise_cloneable` built-in operation. + * + * Returns `true` if an object of type `_Tp` is bitwise cloneable. + * + * ``` + * template + * struct is_bitwise_cloneable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsBitwiseCloneable extends BuiltInOperation, @isbitwisecloneable { + override string toString() { result = "__is_bitwise_cloneable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsBitwiseCloneable" } +} + +/** + * A C++ `__is_invocable` built-in operation (used by some implementations + * of the `` header). + * + * Returns `true` if a function of type `_FTpn` can be invoked with arguments of + * type `_Tps`. + * + * ``` + * template + * struct is_invocable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsInvocable extends BuiltInOperation, @isinvocable { + override string toString() { result = "__is_invocable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsInvocable" } +} + +/** + * A C++ `__is_nothrow_invocable` built-in operation (used by some implementations + * of the `` header). + * + * Returns `true` if a function of non-throwing type `_FTpn` can be invoked + * with arguments of type `_Tps`. + * + * ``` + * template + * struct is_nothrow_invocable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsNothrowInvocable extends BuiltInOperation, @isnothrowinvocable { + override string toString() { result = "__is_nothrow_invocable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsNothrowInvocable" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index d2d611b3fdcc7..2f1916a4c9bb3 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1902,6 +1902,9 @@ case @expr.kind of | 391 = @nested_requirement | 392 = @compound_requirement | 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable ; @var_args_expr = @vastartexpr @@ -2018,6 +2021,9 @@ case @expr.kind of | @istriviallyequalitycomparable | @isscopedenum | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable ; compound_requirement_is_noexcept( From 93535d1c864cecf1a2a394a44a1d287c262dae90 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:35:02 +0100 Subject: [PATCH 36/63] C++: Add tests for new builtin operations --- .../library-tests/builtins/type_traits/clang.cpp | 10 +++++++++- .../builtins/type_traits/expr.expected | 14 ++++++++++++++ .../library-tests/builtins/type_traits/gcc.cpp | 10 +++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp index 86008af19f7d6..3db47a824ede1 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp @@ -1,4 +1,4 @@ -// semmle-extractor-options: --clang --clang_version 190000 +// semmle-extractor-options: --clang --clang_version 210000 struct S { void f() {} @@ -121,3 +121,11 @@ bool b_is_scoped_enum2 = __is_scoped_enum(int); bool b_is_trivially_relocatable1 = __is_trivially_relocatable(int); bool b_is_trivially_relocatable2 = __is_trivially_relocatable(void); + +struct S3{ + S3(S3 &); + S3& operator=(S3&); +}; + +bool bok_is_bitwise_cloneable1 = __is_bitwise_cloneable(int); +bool bok_is_bitwise_cloneable2 = __is_bitwise_cloneable(S3); diff --git a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected index 55bf0757a49d0..1728a48f42370 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -165,6 +165,10 @@ | clang.cpp:122:36:122:66 | int | | | | clang.cpp:123:36:123:67 | __is_trivially_relocatable | void | 0 | | clang.cpp:123:36:123:67 | void | | | +| clang.cpp:130:34:130:60 | __is_bitwise_cloneable | int | 1 | +| clang.cpp:130:34:130:60 | int | | | +| clang.cpp:131:34:131:59 | S3 | | | +| clang.cpp:131:34:131:59 | __is_bitwise_cloneable | S3 | 0 | | file://:0:0:0:0 | 0 | | 0 | | file://:0:0:0:0 | 0 | | 0 | | file://:0:0:0:0 | 1 | | 1 | @@ -211,6 +215,16 @@ | gcc.cpp:29:45:29:93 | __reference_converts_from_temporary | int &&,int && | 0 | | gcc.cpp:29:45:29:93 | int && | | | | gcc.cpp:29:45:29:93 | int && | | | +| gcc.cpp:33:24:33:45 | __is_invocable | f_type | 1 | +| gcc.cpp:33:24:33:45 | f_type | | | +| gcc.cpp:34:24:34:51 | __is_invocable | f_type,bool | 0 | +| gcc.cpp:34:24:34:51 | bool | | | +| gcc.cpp:34:24:34:51 | f_type | | | +| gcc.cpp:36:32:36:61 | __is_nothrow_invocable | f_type | 1 | +| gcc.cpp:36:32:36:61 | f_type | | | +| gcc.cpp:37:32:37:67 | __is_nothrow_invocable | f_type,bool | 0 | +| gcc.cpp:37:32:37:67 | bool | | | +| gcc.cpp:37:32:37:67 | f_type | | | | ms.cpp:38:41:38:45 | 0 | | 0 | | ms.cpp:88:27:88:45 | __has_assign | empty | 0 | | ms.cpp:88:27:88:45 | empty | | | diff --git a/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp b/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp index 54224343e7e2b..15f59812d2e92 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp @@ -1,4 +1,4 @@ -// semmle-extractor-options: --gnu_version 130000 +// semmle-extractor-options: --gnu_version 150000 __attribute__ ((aligned(8))) int v; bool b_has_attribute1 = __builtin_has_attribute(v, aligned); @@ -27,3 +27,11 @@ bool b_reference_constructs_from_temporary2 = __reference_constructs_from_tempor bool b_reference_converts_from_temporary1 = __reference_converts_from_temporary(int&&, int); bool b_reference_converts_from_temporary2 = __reference_converts_from_temporary(int&&, int&&); + +using f_type = void(*)() noexcept; + +bool b_is_invocable1 = __is_invocable(f_type); +bool b_is_invocable2 = __is_invocable(f_type, bool); + +bool b_is_nothrow_invocable1 = __is_nothrow_invocable(f_type); +bool b_is_nothrow_invocable2 = __is_nothrow_invocable(f_type, bool); From bb33ea383cc7c5e18bcd1d5f196439e1ab7ab486 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:37:46 +0100 Subject: [PATCH 37/63] C++: Add change note for new builtins --- cpp/ql/lib/change-notes/2026-01-09-builtins.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-09-builtins.md diff --git a/cpp/ql/lib/change-notes/2026-01-09-builtins.md b/cpp/ql/lib/change-notes/2026-01-09-builtins.md new file mode 100644 index 0000000000000..ece5fba5de65b --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-09-builtins.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added subclasses of `BuiltInOperations` for the `__is_bitwise_cloneable`, `__is_invocable`, and `__is_nothrow_invocable` builtin operations. From 047fa068ff84db39a1a8c70de025c367c914fc3e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:07:57 +0100 Subject: [PATCH 38/63] C++: Add `isThisAccess` predicate to `ParamAccessForType` --- cpp/ql/lib/semmle/code/cpp/exprs/Access.qll | 5 +++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll index 333493e6f5d65..d181299f2ffce 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll @@ -394,6 +394,11 @@ class FunctionAccess extends Access, @routineexpr { */ class ParamAccessForType extends Expr, @param_ref { override string toString() { result = "param access" } + + /** + * Holds if the accessed parameter is implicit object parameter of the function. + */ + predicate isThisAccess() { param_ref_to_this(underlyingElement(this)) } } /** diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 2f1916a4c9bb3..1402ab319d20c 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -2040,6 +2040,10 @@ new_array_allocated_type( int type_id: @type ref ); +param_ref_to_this( + int expr: @param_ref ref +) + /** * The field being initialized by an initializer expression within an aggregate * initializer for a class/struct/union. Position is used to sort repeated initializers. From f6b720b37b05cefe9e397ca65b73410b0f3d718e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:10:37 +0100 Subject: [PATCH 39/63] C++: Add change note --- cpp/ql/lib/change-notes/2026-01-09-this-access.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-09-this-access.md diff --git a/cpp/ql/lib/change-notes/2026-01-09-this-access.md b/cpp/ql/lib/change-notes/2026-01-09-this-access.md new file mode 100644 index 0000000000000..e0934d8926b1f --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-09-this-access.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added a `isThisAccess` predicate to `ParamAccessForType` that holds when the access is to the implicit object parameter. From 7a13cbae3f4c79e0a5a25f223be2f45db84ed752 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:18:05 +0100 Subject: [PATCH 40/63] C++: Add upgrade and downgrade scripts --- .../exprs.ql | 17 + .../old.dbscheme | 2479 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2469 ++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 2469 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2479 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 9919 insertions(+) create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql new file mode 100644 index 0000000000000..661e16804565e --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql @@ -0,0 +1,17 @@ +class Expr extends @expr { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +predicate isExprWithNewBuiltin(Expr expr) { + exists(int kind | exprs(expr, kind, _) | 394 <= kind and kind <= 396) +} + +from Expr expr, int kind, int kind_new, Location location +where + exprs(expr, kind, location) and + if isExprWithNewBuiltin(expr) then kind_new = 1 else kind_new = kind +select expr, kind_new, location diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme new file mode 100644 index 0000000000000..1402ab319d20c --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- 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 +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..d2d611b3fdcc7 --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- 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 +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties new file mode 100644 index 0000000000000..08afc1981d7ef --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties @@ -0,0 +1,4 @@ +description: Add new builtin operations and this parameter access table +compatibility: partial +exprs.rel: run exprs.qlo +param_ref_to_this.rel: delete diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme new file mode 100644 index 0000000000000..d2d611b3fdcc7 --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- 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 +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..1402ab319d20c --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- 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 +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties new file mode 100644 index 0000000000000..3ebeff31683b9 --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties @@ -0,0 +1,2 @@ +description: Add new builtin operations and this parameter access table +compatibility: backwards \ No newline at end of file From 1dacd83915f04f007eb90d9a5fd4b58b9b6e158f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 16:12:25 +0100 Subject: [PATCH 41/63] C++: Update dbscheme stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 1632 +++++++++++----------- 1 file changed, 845 insertions(+), 787 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 541a5f64b779c..eca8a306a7c25 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -22,7 +22,7 @@ @location_default - 46837418 + 46837431 @pch @@ -30,7 +30,7 @@ @macro_expansion - 40306114 + 40306125 @other_macro_reference @@ -38,7 +38,7 @@ @normal_function - 2734630 + 2734631 @unknown_function @@ -46,7 +46,7 @@ @constructor - 694355 + 694346 @destructor @@ -70,11 +70,11 @@ @fun_decl - 4193414 + 4194038 @var_decl - 9367981 + 9368606 @type_decl @@ -86,7 +86,7 @@ @using_declaration - 266984 + 266867 @using_directive @@ -98,11 +98,11 @@ @static_assert - 172749 + 172750 @parameter - 7011799 + 7011800 @membervariable @@ -110,11 +110,11 @@ @globalvariable - 492566 + 492567 @localvariable - 724687 + 724728 @enumconstant @@ -354,7 +354,7 @@ @pointer - 451498 + 451499 @type_with_specifiers @@ -366,7 +366,7 @@ @routineptr - 679868 + 679859 @reference @@ -392,10 +392,6 @@ @scalable_vector 1 - - @decltype - 101757 - @typeof 811 @@ -476,9 +472,13 @@ @remove_reference 5706 + + @decltype + 101757 + @struct - 976646 + 976642 @union @@ -490,11 +490,11 @@ @template_parameter - 864462 + 864458 @alias - 1755835 + 1755826 @unknown_usertype @@ -506,7 +506,7 @@ @template_template_parameter - 6091 + 6090 @proxy_class @@ -518,7 +518,7 @@ @template_struct - 211187 + 211186 @template_class @@ -530,11 +530,11 @@ @mangledname - 6349608 + 6349610 @type_mention - 5911108 + 5911109 @concept_template @@ -542,7 +542,7 @@ @routinetype - 600596 + 600588 @ptrtomember @@ -578,7 +578,7 @@ @attribute_arg_constant_expr - 71524 + 71640 @attribute_arg_expr @@ -598,15 +598,15 @@ @derivation - 473802 + 473796 @frienddecl - 695912 + 695869 @comment - 11208574 + 11208577 @namespace @@ -622,11 +622,11 @@ @value - 13541399 + 13541403 @initialiser - 2244826 + 2244827 @address_of @@ -642,7 +642,7 @@ @parexpr - 4915710 + 4915712 @arithnegexpr @@ -650,7 +650,7 @@ @unaryplusexpr - 4060 + 4061 @complementexpr @@ -678,11 +678,11 @@ @conditionalexpr - 897971 + 897972 @addexpr - 580446 + 580447 @subexpr @@ -722,7 +722,7 @@ @andexpr - 483234 + 483235 @orexpr @@ -734,7 +734,7 @@ @eqexpr - 643439 + 643440 @neexpr @@ -758,7 +758,7 @@ @assignexpr - 1281279 + 1281280 @assignaddexpr @@ -818,7 +818,7 @@ @commaexpr - 167880 + 167881 @subscriptexpr @@ -826,7 +826,7 @@ @callexpr - 238864 + 238861 @vastartexpr @@ -846,7 +846,7 @@ @varaccess - 8255500 + 8255502 @runtime_sizeof @@ -854,7 +854,7 @@ @runtime_alignof - 49553 + 49552 @expr_stmt @@ -862,7 +862,7 @@ @routineexpr - 5726205 + 5726207 @type_operand @@ -878,7 +878,7 @@ @literal - 7984513 + 7984746 @aggregateliteral @@ -890,7 +890,7 @@ @temp_init - 980435 + 980663 @errorexpr @@ -898,15 +898,15 @@ @reference_to - 1880596 + 1880187 @ref_indirect - 2094134 + 2094107 @vacuous_destructor_call - 7785 + 7784 @assume @@ -962,7 +962,7 @@ @thisaccess - 1553672 + 1553673 @new_expr @@ -974,7 +974,7 @@ @throw_expr - 23891 + 23840 @condition_decl @@ -982,11 +982,11 @@ @braced_init_list - 2125 + 2126 @type_id - 47590 + 47589 @sizeof_pack @@ -1094,11 +1094,11 @@ @ctordirectinit - 112104 + 112102 @ctorvirtualinit - 3994 + 3993 @ctorfieldinit @@ -1118,7 +1118,7 @@ @dtorfielddestruct - 39568 + 39567 @static_cast @@ -1142,7 +1142,7 @@ @param_ref - 162117 + 162180 @noopexpr @@ -1174,7 +1174,7 @@ @istrivialexpr - 3327 + 3328 @isstandardlayoutexpr @@ -1242,11 +1242,11 @@ @isfinalexpr - 9342 + 9341 @noexceptexpr - 28127 + 28138 @builtinshufflevector @@ -1532,6 +1532,18 @@ @concept_id 90160 + + @isinvocable + 2 + + + @isnothrowinvocable + 2 + + + @isbitwisecloneable + 2 + @lambdacapture 31866 @@ -1542,7 +1554,7 @@ @stmt_if - 990318 + 990319 @stmt_while @@ -1550,7 +1562,7 @@ @stmt_goto - 157272 + 157271 @stmt_label @@ -1558,7 +1570,7 @@ @stmt_return - 1238182 + 1238155 @stmt_block @@ -1586,11 +1598,11 @@ @stmt_decl - 770029 + 770030 @stmt_empty - 428127 + 428128 @stmt_continue @@ -1602,7 +1614,7 @@ @stmt_try_block - 26422 + 26372 @stmt_microsoft_try @@ -1622,11 +1634,11 @@ @stmt_range_based_for - 6308 + 6311 @stmt_handler - 43261 + 43218 @stmt_constexpr_if @@ -1674,11 +1686,11 @@ @ppd_plain_include - 317280 + 317278 @ppd_define - 2743341 + 2743342 @ppd_undef @@ -1694,7 +1706,7 @@ @ppd_line - 18770 + 18771 @ppd_error @@ -1800,7 +1812,7 @@ compilation_args - 1008133 + 1008128 id @@ -2171,7 +2183,7 @@ 1 2 - 19304 + 19303 2 @@ -2191,7 +2203,7 @@ compilation_expanded_args - 1008133 + 1008128 id @@ -2562,7 +2574,7 @@ 1 2 - 19304 + 19303 2 @@ -2892,7 +2904,7 @@ seconds - 20423 + 19606 @@ -2970,50 +2982,55 @@ 12 + + 2 + 3 + 54 + 3 4 - 925 + 816 4 5 - 435 + 490 - 5 - 8 + 6 + 9 217 - 8 + 9 10 - 108 + 217 10 - 11 - 272 + 12 + 217 - 11 - 14 - 163 + 12 + 19 + 217 - 16 - 18 + 19 + 21 217 - 18 - 26 + 21 + 52 217 - 45 - 128 - 163 + 125 + 126 + 54 @@ -3081,41 +3098,41 @@ 3 4 - 1524 + 925 4 5 - 871 + 1470 5 6 - 108 + 326 6 7 - 599 + 435 7 - 9 - 381 + 8 + 326 - 9 + 8 10 381 11 - 27 + 28 381 30 - 96 + 98 272 @@ -3162,18 +3179,23 @@ 12 - 4 - 5 - 108 + 5 + 6 + 54 - 210 - 211 + 6 + 7 54 - 214 - 215 + 204 + 205 + 54 + + + 205 + 206 54 @@ -3190,22 +3212,22 @@ 1 2 - 15249 + 13452 2 3 - 3376 + 4574 3 - 6 - 1579 + 16 + 1470 - 10 - 39 - 217 + 33 + 38 + 108 @@ -3221,22 +3243,22 @@ 1 2 - 14486 + 12852 2 3 - 2995 + 3975 3 - 4 - 1579 + 5 + 1797 - 4 - 64 - 1361 + 5 + 66 + 980 @@ -3252,12 +3274,17 @@ 1 2 - 17318 + 16392 2 3 - 3104 + 3158 + + + 3 + 4 + 54 @@ -3541,7 +3568,7 @@ cpu_seconds - 9509 + 9373 elapsed_seconds @@ -3591,17 +3618,17 @@ 1 2 - 8047 + 7868 2 3 - 1115 + 1041 3 - 34 - 347 + 30 + 462 @@ -3617,12 +3644,12 @@ 1 2 - 8868 + 8741 2 3 - 641 + 631 @@ -3638,61 +3665,71 @@ 1 2 - 52 + 31 2 3 - 21 + 42 5 6 10 + + 7 + 8 + 21 + + + 8 + 9 + 10 + 9 10 - 52 + 10 - 15 - 16 + 14 + 15 10 - 16 - 17 - 10 + 19 + 20 + 21 - 33 - 34 + 28 + 29 10 - 62 - 63 + 76 + 77 10 - 185 - 186 + 180 + 181 10 - 220 - 221 + 215 + 216 10 - 283 - 284 + 299 + 300 10 - 324 - 325 + 300 + 301 10 @@ -3709,61 +3746,71 @@ 1 2 - 52 + 31 2 3 - 21 + 42 5 6 10 + + 7 + 8 + 21 + + + 8 + 9 + 10 + 9 10 - 52 + 10 - 15 - 16 + 14 + 15 10 - 16 - 17 - 10 + 19 + 20 + 21 - 33 - 34 + 28 + 29 10 - 60 - 61 + 72 + 73 10 - 166 - 167 + 148 + 149 10 - 174 - 175 + 169 + 170 10 - 208 - 209 + 195 + 196 10 - 234 - 235 + 240 + 241 10 @@ -4001,11 +4048,11 @@ locations_default - 46837418 + 46837431 id - 46837418 + 46837431 file @@ -4013,7 +4060,7 @@ beginLine - 7483209 + 7483211 beginColumn @@ -4021,7 +4068,7 @@ endLine - 7484205 + 7484207 endColumn @@ -4039,7 +4086,7 @@ 1 2 - 46837418 + 46837431 @@ -4055,7 +4102,7 @@ 1 2 - 46837418 + 46837431 @@ -4071,7 +4118,7 @@ 1 2 - 46837418 + 46837431 @@ -4087,7 +4134,7 @@ 1 2 - 46837418 + 46837431 @@ -4103,7 +4150,7 @@ 1 2 - 46837418 + 46837431 @@ -4504,12 +4551,12 @@ 1 2 - 4945830 + 4945831 2 3 - 778673 + 778674 3 @@ -4524,7 +4571,7 @@ 12 96 - 561386 + 561387 96 @@ -4545,12 +4592,12 @@ 1 2 - 5008054 + 5008055 2 3 - 1216856 + 1216857 3 @@ -4581,12 +4628,12 @@ 1 2 - 5629550 + 5629551 2 3 - 483108 + 483109 3 @@ -4596,7 +4643,7 @@ 7 25 - 564995 + 564996 25 @@ -4617,7 +4664,7 @@ 1 2 - 7018145 + 7018147 2 @@ -4638,7 +4685,7 @@ 1 2 - 5014276 + 5014278 2 @@ -5059,7 +5106,7 @@ 1 2 - 4943590 + 4943591 2 @@ -5100,12 +5147,12 @@ 1 2 - 5005067 + 5005069 2 3 - 1220465 + 1220466 3 @@ -5136,7 +5183,7 @@ 1 2 - 7035319 + 7035321 2 @@ -5157,7 +5204,7 @@ 1 2 - 5628181 + 5628182 2 @@ -5193,7 +5240,7 @@ 1 2 - 5012783 + 5012784 2 @@ -5213,7 +5260,7 @@ 12 72 - 561635 + 561636 72 @@ -7190,7 +7237,7 @@ fileannotations - 4183618 + 4183599 id @@ -7202,7 +7249,7 @@ name - 58480 + 58479 value @@ -7522,7 +7569,7 @@ 1 2 - 58480 + 58479 @@ -7614,7 +7661,7 @@ 4 5 - 3177 + 3176 5 @@ -7731,7 +7778,7 @@ 14 18 - 3440 + 3439 18 @@ -7781,15 +7828,15 @@ inmacroexpansion - 150011383 + 150011425 id - 24673494 + 24673501 inv - 3705720 + 3705721 @@ -7803,12 +7850,12 @@ 1 3 - 2209721 + 2209722 3 5 - 1475128 + 1475129 5 @@ -7818,17 +7865,17 @@ 6 7 - 6583218 + 6583219 7 8 - 8719891 + 8719894 8 9 - 3557412 + 3557413 9 @@ -7854,7 +7901,7 @@ 2 3 - 743308 + 743309 3 @@ -7884,12 +7931,12 @@ 10 11 - 444695 + 444696 11 337 - 307829 + 307830 339 @@ -7909,15 +7956,15 @@ affectedbymacroexpansion - 48740821 + 48740834 id - 7045462 + 7045464 inv - 3803510 + 3803511 @@ -7931,7 +7978,7 @@ 1 2 - 3847104 + 3847105 2 @@ -7982,7 +8029,7 @@ 4 7 - 316639 + 316640 7 @@ -7992,7 +8039,7 @@ 9 12 - 342973 + 342974 12 @@ -8047,11 +8094,11 @@ macroinvocations - 40387480 + 40387491 id - 40387480 + 40387491 macro_id @@ -8059,7 +8106,7 @@ location - 5925540 + 5925542 kind @@ -8077,7 +8124,7 @@ 1 2 - 40387480 + 40387491 @@ -8093,7 +8140,7 @@ 1 2 - 40387480 + 40387491 @@ -8109,7 +8156,7 @@ 1 2 - 40387480 + 40387491 @@ -8253,7 +8300,7 @@ 1 2 - 5261598 + 5261599 2 @@ -8279,7 +8326,7 @@ 1 2 - 5903374 + 5903376 2 @@ -8300,7 +8347,7 @@ 1 2 - 5925540 + 5925542 @@ -8373,15 +8420,15 @@ macroparent - 33684444 + 33684454 id - 33684444 + 33684454 parent_id - 15941262 + 15941267 @@ -8395,7 +8442,7 @@ 1 2 - 33684444 + 33684454 @@ -8411,7 +8458,7 @@ 1 2 - 7815088 + 7815090 2 @@ -8421,7 +8468,7 @@ 3 4 - 4707395 + 4707397 4 @@ -8441,15 +8488,15 @@ macrolocationbind - 6022278 + 6022280 id - 4208237 + 4208238 location - 2272394 + 2272395 @@ -8463,7 +8510,7 @@ 1 2 - 3284816 + 3284817 2 @@ -8478,7 +8525,7 @@ 4 5 - 412639 + 412640 5 @@ -8529,11 +8576,11 @@ macro_argument_unexpanded - 82172786 + 82172776 invocation - 26182328 + 26182583 argument_index @@ -8541,7 +8588,7 @@ text - 341886 + 341884 @@ -8555,22 +8602,22 @@ 1 2 - 9642934 + 9643267 2 3 - 9734025 + 9733979 3 4 - 4982774 + 4982750 4 67 - 1822594 + 1822585 @@ -8586,22 +8633,22 @@ 1 2 - 9824833 + 9825166 2 3 - 9751541 + 9751495 3 4 - 4826700 + 4826677 4 67 - 1779252 + 1779244 @@ -8626,7 +8673,7 @@ 646904 - 2488838 + 2488874 31 @@ -8735,7 +8782,7 @@ 1 2 - 242199 + 242198 2 @@ -8755,11 +8802,11 @@ macro_argument_expanded - 82172786 + 82172776 invocation - 26182328 + 26182583 argument_index @@ -8767,7 +8814,7 @@ text - 207063 + 207062 @@ -8781,22 +8828,22 @@ 1 2 - 9642934 + 9643267 2 3 - 9734025 + 9733979 3 4 - 4982774 + 4982750 4 67 - 1822594 + 1822585 @@ -8812,22 +8859,22 @@ 1 2 - 12590853 + 12591172 2 3 - 8396588 + 8396548 3 4 - 4208487 + 4208468 4 9 - 986398 + 986394 @@ -8852,7 +8899,7 @@ 646904 - 2488838 + 2488874 31 @@ -8900,7 +8947,7 @@ 2 3 - 26752 + 26751 3 @@ -8930,7 +8977,7 @@ 10 19 - 18252 + 18251 19 @@ -8944,7 +8991,7 @@ 251 - 1169569 + 1169605 9467 @@ -8981,11 +9028,11 @@ functions - 4043205 + 4043206 id - 4043205 + 4043206 name @@ -9007,7 +9054,7 @@ 1 2 - 4043205 + 4043206 @@ -9023,7 +9070,7 @@ 1 2 - 4043205 + 4043206 @@ -9039,7 +9086,7 @@ 1 2 - 1441361 + 1441362 2 @@ -9065,7 +9112,7 @@ 1 2 - 1686400 + 1686401 2 @@ -9183,15 +9230,15 @@ function_entry_point - 1134682 + 1134667 id - 1130959 + 1130944 entry_point - 1134682 + 1134667 @@ -9205,7 +9252,7 @@ 1 2 - 1127777 + 1127762 2 @@ -9226,7 +9273,7 @@ 1 2 - 1134682 + 1134667 @@ -9236,11 +9283,11 @@ function_return_type - 4060504 + 4060505 id - 4043205 + 4043206 return_type @@ -9258,7 +9305,7 @@ 1 2 - 4025907 + 4025908 2 @@ -9612,11 +9659,11 @@ function_prototyped - 4041712 + 4041713 id - 4041712 + 4041713 @@ -9774,15 +9821,15 @@ fun_decls - 4199388 + 4200011 id - 4193414 + 4194038 function - 4018689 + 4018690 type_id @@ -9790,11 +9837,11 @@ name - 1687769 + 1687770 location - 2806436 + 2806437 @@ -9808,7 +9855,7 @@ 1 2 - 4193414 + 4194038 @@ -9824,7 +9871,7 @@ 1 2 - 4187441 + 4188064 2 @@ -9845,7 +9892,7 @@ 1 2 - 4193414 + 4194038 @@ -9861,7 +9908,7 @@ 1 2 - 4193414 + 4194038 @@ -9877,12 +9924,12 @@ 1 2 - 3858524 + 3857903 2 5 - 160165 + 160787 @@ -9898,7 +9945,7 @@ 1 2 - 4000395 + 4000396 2 @@ -9919,7 +9966,7 @@ 1 2 - 4018689 + 4018690 @@ -9935,12 +9982,12 @@ 1 2 - 3878435 + 3878312 2 4 - 140253 + 140377 @@ -9966,7 +10013,7 @@ 3 5 - 48285 + 48286 5 @@ -9975,7 +10022,7 @@ 364 - 10294 + 10299 1244 @@ -10028,7 +10075,7 @@ 1 2 - 490326 + 490327 2 @@ -10090,22 +10137,22 @@ 1 2 - 1328362 + 1328114 2 3 - 193392 + 193641 3 11 - 129550 + 129426 11 3169 - 36463 + 36587 @@ -10147,7 +10194,7 @@ 1 2 - 1598166 + 1598167 2 @@ -10194,12 +10241,12 @@ 1 2 - 2413304 + 2413180 2 3 - 252008 + 252132 3 @@ -10220,12 +10267,12 @@ 1 2 - 2431971 + 2431847 2 3 - 233838 + 233963 3 @@ -10246,7 +10293,7 @@ 1 2 - 2692317 + 2692318 2 @@ -10282,11 +10329,11 @@ fun_def - 1418836 + 1418837 id - 1418836 + 1418837 @@ -10315,7 +10362,7 @@ fun_decl_specifiers - 4269577 + 4269578 id @@ -10347,7 +10394,7 @@ 3 4 - 1097510 + 1097511 4 @@ -10560,15 +10607,15 @@ fun_decl_noexcept - 140908 + 140906 fun_decl - 140908 + 140906 constant - 140468 + 140466 @@ -10582,7 +10629,7 @@ 1 2 - 140908 + 140906 @@ -10598,7 +10645,7 @@ 1 2 - 140028 + 140026 2 @@ -10613,11 +10660,11 @@ fun_decl_empty_noexcept - 1160855 + 1160979 fun_decl - 1160855 + 1160979 @@ -10883,11 +10930,11 @@ param_decl_bind - 7294670 + 7295294 id - 7294670 + 7295294 index @@ -10895,7 +10942,7 @@ fun_decl - 3524006 + 3524381 @@ -10909,7 +10956,7 @@ 1 2 - 7294670 + 7295294 @@ -10925,7 +10972,7 @@ 1 2 - 7294670 + 7295294 @@ -10960,12 +11007,12 @@ 343 - 16218 + 16219 622 - 28317 - 28318 + 28320 + 28321 124 @@ -11001,12 +11048,12 @@ 343 - 16218 + 16219 622 - 28317 - 28318 + 28320 + 28321 124 @@ -11023,7 +11070,7 @@ 1 2 - 1505826 + 1506075 2 @@ -11033,7 +11080,7 @@ 3 4 - 600712 + 600837 4 @@ -11059,7 +11106,7 @@ 1 2 - 1505826 + 1506075 2 @@ -11069,7 +11116,7 @@ 3 4 - 600712 + 600837 4 @@ -11089,19 +11136,19 @@ var_decls - 9374452 + 9375077 id - 9367981 + 9368606 variable - 9027366 + 9027368 type_id - 1452935 + 1452936 name @@ -11109,7 +11156,7 @@ location - 6259508 + 6259509 @@ -11123,7 +11170,7 @@ 1 2 - 9367981 + 9368606 @@ -11139,7 +11186,7 @@ 1 2 - 9361510 + 9362135 2 @@ -11160,7 +11207,7 @@ 1 2 - 9367981 + 9368606 @@ -11176,7 +11223,7 @@ 1 2 - 9367981 + 9368606 @@ -11192,12 +11239,12 @@ 1 2 - 8704173 + 8703553 2 5 - 323192 + 323814 @@ -11213,7 +11260,7 @@ 1 2 - 8974351 + 8974353 2 @@ -11234,7 +11281,7 @@ 1 2 - 8922207 + 8922209 2 @@ -11255,12 +11302,12 @@ 1 2 - 8783073 + 8782702 2 4 - 244292 + 244665 @@ -11439,7 +11486,7 @@ 25 - 27137 + 27139 31236 @@ -11564,16 +11611,16 @@ 1 2 - 5758603 + 5758231 2 20 - 470788 + 471161 20 - 2941 + 2943 30116 @@ -11590,12 +11637,12 @@ 1 2 - 5839245 + 5838874 2 2935 - 420262 + 420635 @@ -11611,7 +11658,7 @@ 1 2 - 5961703 + 5961704 2 @@ -11632,7 +11679,7 @@ 1 2 - 6247187 + 6247189 2 @@ -11647,11 +11694,11 @@ var_def - 3763196 + 3763197 id - 3763196 + 3763197 @@ -11809,11 +11856,11 @@ type_id - 1610611 + 1610612 location - 1543658 + 1543659 @@ -11922,7 +11969,7 @@ 1 2 - 1521755 + 1521756 2 @@ -12398,15 +12445,15 @@ usings - 271118 + 271001 id - 271118 + 271001 element_id - 58943 + 58827 location @@ -12428,7 +12475,7 @@ 1 2 - 271118 + 271001 @@ -12444,7 +12491,7 @@ 1 2 - 271118 + 271001 @@ -12460,7 +12507,7 @@ 1 2 - 271118 + 271001 @@ -12476,7 +12523,7 @@ 1 2 - 51242 + 51126 2 @@ -12502,7 +12549,7 @@ 1 2 - 51242 + 51126 2 @@ -12528,7 +12575,7 @@ 1 2 - 58943 + 58827 @@ -12549,16 +12596,16 @@ 2 4 - 2293 + 2282 4 132 - 1935 + 1946 145 - 371 + 367 1420 @@ -12580,16 +12627,16 @@ 2 4 - 2293 + 2282 4 132 - 1935 + 1946 145 - 371 + 367 1420 @@ -12625,8 +12672,8 @@ 10 - 25379 - 25380 + 25368 + 25369 10 @@ -12646,8 +12693,8 @@ 10 - 5389 - 5390 + 5378 + 5379 10 @@ -12679,15 +12726,15 @@ using_container - 577953 + 577834 parent - 21828 + 21807 child - 271118 + 271001 @@ -12716,7 +12763,7 @@ 6 7 - 2303 + 2282 7 @@ -12752,7 +12799,7 @@ 1 2 - 96341 + 96225 2 @@ -12782,15 +12829,15 @@ static_asserts - 172749 + 172750 id - 172749 + 172750 condition - 172749 + 172750 message @@ -12816,7 +12863,7 @@ 1 2 - 172749 + 172750 @@ -12832,7 +12879,7 @@ 1 2 - 172749 + 172750 @@ -12848,7 +12895,7 @@ 1 2 - 172749 + 172750 @@ -12864,7 +12911,7 @@ 1 2 - 172749 + 172750 @@ -12880,7 +12927,7 @@ 1 2 - 172749 + 172750 @@ -12896,7 +12943,7 @@ 1 2 - 172749 + 172750 @@ -12912,7 +12959,7 @@ 1 2 - 172749 + 172750 @@ -12928,7 +12975,7 @@ 1 2 - 172749 + 172750 @@ -13390,11 +13437,11 @@ params - 7052244 + 7052246 id - 7011799 + 7011800 function @@ -13406,7 +13453,7 @@ type_id - 1217354 + 1217355 @@ -13420,7 +13467,7 @@ 1 2 - 7011799 + 7011800 @@ -13436,7 +13483,7 @@ 1 2 - 7011799 + 7011800 @@ -13452,7 +13499,7 @@ 1 2 - 6971353 + 6971355 2 @@ -13735,7 +13782,7 @@ 1 2 - 817501 + 817502 2 @@ -13881,7 +13928,7 @@ name - 642756 + 642757 @@ -14045,11 +14092,11 @@ globalvariables - 492566 + 492567 id - 492566 + 492567 type_id @@ -14071,7 +14118,7 @@ 1 2 - 492566 + 492567 @@ -14087,7 +14134,7 @@ 1 2 - 492566 + 492567 @@ -14231,19 +14278,19 @@ localvariables - 724687 + 724728 id - 724687 + 724728 type_id - 53297 + 53300 name - 101408 + 101414 @@ -14257,7 +14304,7 @@ 1 2 - 724687 + 724728 @@ -14273,7 +14320,7 @@ 1 2 - 724687 + 724728 @@ -14289,7 +14336,7 @@ 1 2 - 28788 + 28790 2 @@ -14299,12 +14346,12 @@ 3 4 - 4020 + 4021 4 6 - 4060 + 4061 6 @@ -14314,7 +14361,7 @@ 12 162 - 4000 + 4001 162 @@ -14335,7 +14382,7 @@ 1 2 - 38248 + 38250 2 @@ -14366,12 +14413,12 @@ 1 2 - 62401 + 62404 2 3 - 16003 + 16004 3 @@ -14381,7 +14428,7 @@ 4 8 - 8129 + 8130 8 @@ -14407,7 +14454,7 @@ 1 2 - 84398 + 84403 2 @@ -14500,11 +14547,11 @@ orphaned_variables - 44036 + 44035 var - 44036 + 44035 function @@ -14522,7 +14569,7 @@ 1 2 - 44036 + 44035 @@ -14538,7 +14585,7 @@ 1 2 - 39940 + 39939 2 @@ -16147,15 +16194,15 @@ derivedtypes - 3023723 + 3023724 id - 3023723 + 3023724 name - 1457166 + 1457167 kind @@ -16163,7 +16210,7 @@ type_id - 1942142 + 1942143 @@ -16177,7 +16224,7 @@ 1 2 - 3023723 + 3023724 @@ -16193,7 +16240,7 @@ 1 2 - 3023723 + 3023724 @@ -16209,7 +16256,7 @@ 1 2 - 3023723 + 3023724 @@ -16251,7 +16298,7 @@ 1 2 - 1457166 + 1457167 @@ -16447,7 +16494,7 @@ 1 2 - 1315917 + 1315918 2 @@ -17068,15 +17115,15 @@ typedefbase - 1755835 + 1755826 id - 1755835 + 1755826 type_id - 834260 + 834256 @@ -17090,7 +17137,7 @@ 1 2 - 1755835 + 1755826 @@ -17106,12 +17153,12 @@ 1 2 - 659366 + 659363 2 3 - 80761 + 80760 3 @@ -17895,15 +17942,15 @@ usertypes - 4137720 + 4137700 id - 4137720 + 4137700 name - 915379 + 915395 kind @@ -17921,7 +17968,7 @@ 1 2 - 4137720 + 4137700 @@ -17937,7 +17984,7 @@ 1 2 - 4137720 + 4137700 @@ -17953,17 +18000,17 @@ 1 2 - 652086 + 652104 2 3 - 158093 + 158113 3 8 - 70346 + 70325 8 @@ -17984,12 +18031,12 @@ 1 2 - 863841 + 863858 2 10 - 51537 + 51536 @@ -18124,8 +18171,8 @@ 10 - 12187 - 12188 + 12189 + 12190 10 @@ -18141,11 +18188,11 @@ usertypesize - 1359666 + 1359659 id - 1359666 + 1359659 size @@ -18167,7 +18214,7 @@ 1 2 - 1359666 + 1359659 @@ -18183,7 +18230,7 @@ 1 2 - 1359666 + 1359659 @@ -18441,11 +18488,11 @@ usertype_alias_kind - 1755835 + 1755826 id - 1755835 + 1755826 alias_kind @@ -18463,7 +18510,7 @@ 1 2 - 1755835 + 1755826 @@ -18494,11 +18541,11 @@ nontype_template_parameters - 761306 + 761296 id - 761306 + 761296 @@ -18578,15 +18625,15 @@ mangled_name - 7910441 + 7910443 id - 7910441 + 7910443 mangled_name - 6349608 + 6349610 is_complete @@ -18604,7 +18651,7 @@ 1 2 - 7910441 + 7910443 @@ -18620,7 +18667,7 @@ 1 2 - 7910441 + 7910443 @@ -18636,7 +18683,7 @@ 1 2 - 6016211 + 6016213 2 @@ -18657,7 +18704,7 @@ 1 2 - 6349608 + 6349610 @@ -18709,55 +18756,55 @@ is_pod_class - 590984 + 590976 id - 590984 + 590976 is_standard_layout_class - 1120590 + 1120585 id - 1120590 + 1120585 is_complete - 1341571 + 1341565 id - 1341571 + 1341565 is_class_template - 231195 + 231194 id - 231195 + 231194 class_instantiation - 1122200 + 1122247 to - 1119212 + 1119207 from @@ -18775,12 +18822,12 @@ 1 2 - 1117129 + 1117071 2 8 - 2082 + 2135 @@ -18816,12 +18863,12 @@ 5 7 - 6059 + 6048 7 10 - 5680 + 5691 10 @@ -18846,11 +18893,11 @@ class_template_argument - 2887503 + 2887489 type_id - 1362264 + 1362258 index @@ -18858,7 +18905,7 @@ arg_type - 818795 + 818791 @@ -18872,17 +18919,17 @@ 1 2 - 577753 + 577750 2 3 - 408656 + 408654 3 4 - 249952 + 249951 4 @@ -18908,17 +18955,17 @@ 1 2 - 606188 + 606185 2 3 - 422595 + 422593 3 4 - 250784 + 250782 4 @@ -19031,12 +19078,12 @@ 1 2 - 511582 + 511580 2 3 - 166898 + 166897 3 @@ -19046,7 +19093,7 @@ 5 46 - 61415 + 61414 46 @@ -19067,7 +19114,7 @@ 1 2 - 720908 + 720904 2 @@ -19087,11 +19134,11 @@ class_template_argument_value - 506804 + 506797 type_id - 204508 + 204506 index @@ -19099,7 +19146,7 @@ arg_value - 506668 + 506662 @@ -19113,12 +19160,12 @@ 1 2 - 154820 + 154818 2 3 - 43088 + 43087 3 @@ -19139,12 +19186,12 @@ 1 2 - 147001 + 146999 2 3 - 40211 + 40210 3 @@ -19282,7 +19329,7 @@ 1 2 - 506533 + 506526 2 @@ -19303,7 +19350,7 @@ 1 2 - 506668 + 506662 @@ -19366,11 +19413,11 @@ type_mentions - 5911108 + 5911109 id - 5911108 + 5911109 type_id @@ -19378,7 +19425,7 @@ location - 5854794 + 5854796 kind @@ -19396,7 +19443,7 @@ 1 2 - 5911108 + 5911109 @@ -19412,7 +19459,7 @@ 1 2 - 5911108 + 5911109 @@ -19428,7 +19475,7 @@ 1 2 - 5911108 + 5911109 @@ -19562,7 +19609,7 @@ 1 2 - 5809101 + 5809103 2 @@ -19583,7 +19630,7 @@ 1 2 - 5809101 + 5809103 2 @@ -19604,7 +19651,7 @@ 1 2 - 5854794 + 5854796 @@ -19662,26 +19709,26 @@ is_function_template - 1328113 + 1328114 id - 1328113 + 1328114 function_instantiation - 967609 + 967596 to - 967609 + 967596 from - 181526 + 181523 @@ -19695,7 +19742,7 @@ 1 2 - 967609 + 967596 @@ -19711,7 +19758,7 @@ 1 2 - 109836 + 109834 2 @@ -19741,11 +19788,11 @@ function_template_argument - 2468763 + 2468730 function_id - 1443916 + 1443897 index @@ -19753,7 +19800,7 @@ arg_type - 296067 + 296063 @@ -19767,22 +19814,22 @@ 1 2 - 777959 + 777949 2 3 - 410507 + 410501 3 4 - 170694 + 170692 4 15 - 84755 + 84753 @@ -19798,22 +19845,22 @@ 1 2 - 796982 + 796971 2 3 - 408611 + 408606 3 4 - 168528 + 168526 4 9 - 69794 + 69793 @@ -19951,7 +19998,7 @@ 1 2 - 173639 + 173637 2 @@ -19971,7 +20018,7 @@ 6 11 - 23084 + 23083 11 @@ -19997,7 +20044,7 @@ 1 2 - 255145 + 255142 2 @@ -20017,11 +20064,11 @@ function_template_argument_value - 449838 + 449832 function_id - 195505 + 195502 index @@ -20029,7 +20076,7 @@ arg_value - 447164 + 447158 @@ -20043,12 +20090,12 @@ 1 2 - 150420 + 150418 2 3 - 42614 + 42613 3 @@ -20069,12 +20116,12 @@ 1 2 - 143548 + 143546 2 3 - 36454 + 36453 3 @@ -20222,7 +20269,7 @@ 1 2 - 444490 + 444484 2 @@ -20243,7 +20290,7 @@ 1 2 - 447164 + 447158 @@ -20264,11 +20311,11 @@ variable_instantiation - 427355 + 427356 to - 427355 + 427356 from @@ -20286,7 +20333,7 @@ 1 2 - 427355 + 427356 @@ -20383,7 +20430,7 @@ 2 3 - 189534 + 189535 3 @@ -20826,7 +20873,7 @@ type_id - 6091 + 6090 index @@ -21791,15 +21838,15 @@ routinetypes - 600596 + 600588 id - 600596 + 600588 return_type - 282020 + 282016 @@ -21813,7 +21860,7 @@ 1 2 - 600596 + 600588 @@ -21829,7 +21876,7 @@ 1 2 - 232568 + 232565 2 @@ -21839,7 +21886,7 @@ 3 4677 - 14453 + 14452 @@ -22532,11 +22579,11 @@ funspecifiers - 9694783 + 9694661 func_id - 4002635 + 4002014 spec_id @@ -22554,17 +22601,17 @@ 1 2 - 1526111 + 1525489 2 3 - 506131 + 505634 3 4 - 1034042 + 1034540 4 @@ -22678,8 +22725,8 @@ 124 - 22778 - 22779 + 22777 + 22778 124 @@ -22690,11 +22737,11 @@ varspecifiers - 3078854 + 3078855 var_id - 2314865 + 2314866 spec_id @@ -23358,7 +23405,7 @@ 1 2 - 641033 + 641034 2 @@ -24088,15 +24135,15 @@ attribute_arg_constant - 71524 + 71640 arg - 71524 + 71640 constant - 71524 + 71640 @@ -24110,7 +24157,7 @@ 1 2 - 71524 + 71640 @@ -24126,7 +24173,7 @@ 1 2 - 71524 + 71640 @@ -24547,15 +24594,15 @@ unspecifiedtype - 7228463 + 7228465 type_id - 7228463 + 7228465 unspecified_type_id - 3955718 + 3955719 @@ -24569,7 +24616,7 @@ 1 2 - 7228463 + 7228465 @@ -24585,12 +24632,12 @@ 1 2 - 2475279 + 2475280 2 3 - 1114435 + 1114436 3 @@ -24610,7 +24657,7 @@ member - 4182339 + 4182340 parent @@ -24622,7 +24669,7 @@ child - 4177734 + 4177735 @@ -24900,7 +24947,7 @@ 1 2 - 4177734 + 4177735 @@ -24916,7 +24963,7 @@ 1 2 - 4173129 + 4173131 2 @@ -24994,15 +25041,15 @@ derivations - 473802 + 473796 derivation - 473802 + 473796 sub - 452207 + 452201 index @@ -25010,7 +25057,7 @@ super - 234024 + 234021 location @@ -25028,7 +25075,7 @@ 1 2 - 473802 + 473796 @@ -25044,7 +25091,7 @@ 1 2 - 473802 + 473796 @@ -25060,7 +25107,7 @@ 1 2 - 473802 + 473796 @@ -25076,7 +25123,7 @@ 1 2 - 473802 + 473796 @@ -25092,7 +25139,7 @@ 1 2 - 435791 + 435785 2 @@ -25113,7 +25160,7 @@ 1 2 - 435791 + 435785 2 @@ -25134,7 +25181,7 @@ 1 2 - 435791 + 435785 2 @@ -25155,7 +25202,7 @@ 1 2 - 435791 + 435785 2 @@ -25315,7 +25362,7 @@ 1 2 - 224276 + 224273 2 @@ -25336,7 +25383,7 @@ 1 2 - 224276 + 224273 2 @@ -25357,7 +25404,7 @@ 1 2 - 233584 + 233581 2 @@ -25378,7 +25425,7 @@ 1 2 - 228710 + 228707 2 @@ -25404,7 +25451,7 @@ 2 5 - 3114 + 3113 5 @@ -25440,7 +25487,7 @@ 2 5 - 3114 + 3113 5 @@ -25512,11 +25559,11 @@ derspecifiers - 475562 + 475556 der_id - 473362 + 473356 spec_id @@ -25534,7 +25581,7 @@ 1 2 - 471162 + 471156 2 @@ -25580,11 +25627,11 @@ direct_base_offsets - 447062 + 447056 der_id - 447062 + 447056 offset @@ -25602,7 +25649,7 @@ 1 2 - 447062 + 447056 @@ -25799,11 +25846,11 @@ frienddecls - 695912 + 695869 id - 695912 + 695869 type_id @@ -25811,7 +25858,7 @@ decl_id - 77240 + 77341 location @@ -25829,7 +25876,7 @@ 1 2 - 695912 + 695869 @@ -25845,7 +25892,7 @@ 1 2 - 695912 + 695869 @@ -25861,7 +25908,7 @@ 1 2 - 695912 + 695869 @@ -25877,17 +25924,17 @@ 1 2 - 6126 + 6160 2 3 - 13877 + 13843 3 7 - 3554 + 3553 7 @@ -25933,17 +25980,17 @@ 1 2 - 6126 + 6160 2 3 - 13877 + 13843 3 7 - 3554 + 3553 7 @@ -26010,12 +26057,12 @@ 1 2 - 47556 + 47792 2 3 - 6024 + 5889 3 @@ -26051,12 +26098,12 @@ 1 2 - 47556 + 47792 2 3 - 6024 + 5889 3 @@ -26092,7 +26139,7 @@ 1 2 - 76563 + 76664 2 @@ -26117,7 +26164,7 @@ 2 - 20371 + 20370 372 @@ -26159,7 +26206,7 @@ 2 - 2129 + 2132 338 @@ -26170,19 +26217,19 @@ comments - 11208574 + 11208577 id - 11208574 + 11208577 contents - 4294964 + 4294966 location - 11208574 + 11208577 @@ -26196,7 +26243,7 @@ 1 2 - 11208574 + 11208577 @@ -26212,7 +26259,7 @@ 1 2 - 11208574 + 11208577 @@ -26228,7 +26275,7 @@ 1 2 - 3920499 + 3920500 2 @@ -26254,7 +26301,7 @@ 1 2 - 3920499 + 3920500 2 @@ -26280,7 +26327,7 @@ 1 2 - 11208574 + 11208577 @@ -26296,7 +26343,7 @@ 1 2 - 11208574 + 11208577 @@ -26306,15 +26353,15 @@ commentbinding - 3905316 + 3905317 id - 3342685 + 3342686 element - 3740173 + 3740174 @@ -26328,7 +26375,7 @@ 1 2 - 3281207 + 3281208 2 @@ -26349,7 +26396,7 @@ 1 2 - 3575030 + 3575031 2 @@ -26364,15 +26411,15 @@ exprconv - 9634072 + 9634075 converted - 9633966 + 9633969 conversion - 9634072 + 9634075 @@ -26386,7 +26433,7 @@ 1 2 - 9633861 + 9633864 2 @@ -26407,7 +26454,7 @@ 1 2 - 9634072 + 9634075 @@ -26417,18 +26464,18 @@ compgenerated - 9923989 + 9923438 id - 9923989 + 9923438 synthetic_destructor_call - 1666648 + 1666649 element @@ -26440,7 +26487,7 @@ destructor_call - 1666648 + 1666649 @@ -26454,7 +26501,7 @@ 1 2 - 826180 + 826181 2 @@ -26480,7 +26527,7 @@ 1 2 - 826180 + 826181 2 @@ -26638,7 +26685,7 @@ 1 2 - 1666648 + 1666649 @@ -26654,7 +26701,7 @@ 1 2 - 1666648 + 1666649 @@ -26733,7 +26780,7 @@ namespacembrs - 2110396 + 2110397 parentid @@ -26741,7 +26788,7 @@ memberid - 2110396 + 2110397 @@ -26831,7 +26878,7 @@ 1 2 - 2110396 + 2110397 @@ -26841,11 +26888,11 @@ exprparents - 19456291 + 19456297 expr_id - 19456291 + 19456297 child_index @@ -26853,7 +26900,7 @@ parent_id - 12941377 + 12941381 @@ -26867,7 +26914,7 @@ 1 2 - 19456291 + 19456297 @@ -26883,7 +26930,7 @@ 1 2 - 19456291 + 19456297 @@ -27001,12 +27048,12 @@ 1 2 - 7395563 + 7395565 2 3 - 5083215 + 5083216 3 @@ -27027,12 +27074,12 @@ 1 2 - 7395563 + 7395565 2 3 - 5083215 + 5083216 3 @@ -27047,11 +27094,11 @@ expr_isload - 6898014 + 6898016 expr_id - 6898014 + 6898016 @@ -27136,11 +27183,11 @@ iscall - 5790817 + 5790819 caller - 5790817 + 5790819 kind @@ -27158,7 +27205,7 @@ 1 2 - 5790817 + 5790819 @@ -27636,11 +27683,11 @@ varbind - 8255500 + 8255502 expr - 8255500 + 8255502 var @@ -27658,7 +27705,7 @@ 1 2 - 8255500 + 8255502 @@ -27674,7 +27721,7 @@ 1 2 - 171553 + 171554 2 @@ -27704,7 +27751,7 @@ 7 9 - 80823 + 80824 9 @@ -27729,15 +27776,15 @@ funbind - 5805683 + 5806092 expr - 5803624 + 5803625 fun - 275028 + 275286 @@ -27751,12 +27798,12 @@ 1 2 - 5801564 + 5801158 2 3 - 2059 + 2466 @@ -27772,22 +27819,22 @@ 1 2 - 180900 + 181071 2 3 - 38269 + 38312 3 4 - 16882 + 16903 4 8 - 22910 + 22931 8 @@ -27928,11 +27975,11 @@ expr_deallocator - 53479 + 53478 expr - 53479 + 53478 func @@ -27954,7 +28001,7 @@ 1 2 - 53479 + 53478 @@ -27970,7 +28017,7 @@ 1 2 - 53479 + 53478 @@ -28075,15 +28122,15 @@ expr_cond_guard - 897971 + 897972 cond - 897971 + 897972 guard - 897971 + 897972 @@ -28097,7 +28144,7 @@ 1 2 - 897971 + 897972 @@ -28113,7 +28160,7 @@ 1 2 - 897971 + 897972 @@ -28171,15 +28218,15 @@ expr_cond_false - 897971 + 897972 cond - 897971 + 897972 false - 897971 + 897972 @@ -28193,7 +28240,7 @@ 1 2 - 897971 + 897972 @@ -28209,7 +28256,7 @@ 1 2 - 897971 + 897972 @@ -28219,11 +28266,11 @@ values - 13541399 + 13541403 id - 13541399 + 13541403 str @@ -28241,7 +28288,7 @@ 1 2 - 13541399 + 13541403 @@ -28287,11 +28334,11 @@ valuetext - 6637514 + 6637663 id - 6637514 + 6637663 text @@ -28309,7 +28356,7 @@ 1 2 - 6637514 + 6637663 @@ -28339,7 +28386,7 @@ 7 - 593717 + 593719 27872 @@ -28350,15 +28397,15 @@ valuebind - 13649549 + 13649553 val - 13541399 + 13541403 expr - 13649549 + 13649553 @@ -28372,7 +28419,7 @@ 1 2 - 13451241 + 13451245 2 @@ -28393,7 +28440,7 @@ 1 2 - 13649549 + 13649553 @@ -28795,11 +28842,11 @@ initialisers - 2244826 + 2244827 init - 2244826 + 2244827 var @@ -28807,7 +28854,7 @@ expr - 2244826 + 2244827 location @@ -28825,7 +28872,7 @@ 1 2 - 2244826 + 2244827 @@ -28841,7 +28888,7 @@ 1 2 - 2244826 + 2244827 @@ -28857,7 +28904,7 @@ 1 2 - 2244826 + 2244827 @@ -28946,7 +28993,7 @@ 1 2 - 2244826 + 2244827 @@ -28962,7 +29009,7 @@ 1 2 - 2244826 + 2244827 @@ -28978,7 +29025,7 @@ 1 2 - 2244826 + 2244827 @@ -29025,7 +29072,7 @@ 1 2 - 443422 + 443423 2 @@ -29076,11 +29123,11 @@ braced_initialisers - 67626 + 67652 init - 67626 + 67652 @@ -29145,11 +29192,11 @@ exprs - 25213256 + 25213263 id - 25213256 + 25213263 kind @@ -29157,7 +29204,7 @@ location - 10586808 + 10586811 @@ -29171,7 +29218,7 @@ 1 2 - 25213256 + 25213263 @@ -29187,7 +29234,7 @@ 1 2 - 25213256 + 25213263 @@ -29365,7 +29412,7 @@ 1 2 - 8904642 + 8904644 2 @@ -29396,7 +29443,7 @@ 1 2 - 9044060 + 9044063 2 @@ -29542,11 +29589,11 @@ expr_types - 25213256 + 25213263 id - 25213256 + 25213263 typeid @@ -29568,7 +29615,7 @@ 1 2 - 25213256 + 25213263 @@ -29584,7 +29631,7 @@ 1 2 - 25213256 + 25213263 @@ -29848,6 +29895,17 @@ + + param_ref_to_this + 24953 + + + expr + 24953 + + + + aggregate_field_init 5717382 @@ -31234,11 +31292,11 @@ typeid_bind - 47590 + 47589 expr - 47590 + 47589 type_id @@ -31256,7 +31314,7 @@ 1 2 - 47590 + 47589 @@ -33066,11 +33124,11 @@ stmts - 6349655 + 6349657 id - 6349655 + 6349657 kind @@ -33078,7 +33136,7 @@ location - 2676167 + 2676168 @@ -33092,7 +33150,7 @@ 1 2 - 6349655 + 6349657 @@ -33108,7 +33166,7 @@ 1 2 - 6349655 + 6349657 @@ -33346,7 +33404,7 @@ 1 2 - 2218094 + 2218095 2 @@ -33377,7 +33435,7 @@ 1 2 - 2593460 + 2593461 2 @@ -33547,15 +33605,15 @@ if_then - 990318 + 990319 if_stmt - 990318 + 990319 then_id - 990318 + 990319 @@ -33569,7 +33627,7 @@ 1 2 - 990318 + 990319 @@ -33585,7 +33643,7 @@ 1 2 - 990318 + 990319 @@ -34513,11 +34571,11 @@ stmtparents - 5611095 + 5611096 id - 5611095 + 5611096 index @@ -34525,7 +34583,7 @@ parent - 2374340 + 2374341 @@ -34539,7 +34597,7 @@ 1 2 - 5611095 + 5611096 @@ -34555,7 +34613,7 @@ 1 2 - 5611095 + 5611096 @@ -34698,7 +34756,7 @@ 2 3 - 515763 + 515764 3 @@ -34739,7 +34797,7 @@ 2 3 - 515763 + 515764 3 @@ -34769,11 +34827,11 @@ ishandler - 43261 + 43218 block - 43261 + 43218 @@ -35431,11 +35489,11 @@ preprocdirects - 5395213 + 5395215 id - 5395213 + 5395215 kind @@ -35443,7 +35501,7 @@ location - 5392102 + 5392103 @@ -35457,7 +35515,7 @@ 1 2 - 5395213 + 5395215 @@ -35473,7 +35531,7 @@ 1 2 - 5395213 + 5395215 @@ -35621,7 +35679,7 @@ 1 2 - 5391977 + 5391979 26 @@ -35642,7 +35700,7 @@ 1 2 - 5392102 + 5392103 @@ -35710,11 +35768,11 @@ preproctrue - 438182 + 438183 branch - 438182 + 438183 @@ -35732,15 +35790,15 @@ preproctext - 4341757 + 4341758 id - 4341757 + 4341758 head - 2947934 + 2947935 body @@ -35758,7 +35816,7 @@ 1 2 - 4341757 + 4341758 @@ -35774,7 +35832,7 @@ 1 2 - 4341757 + 4341758 @@ -35790,7 +35848,7 @@ 1 2 - 2749812 + 2749813 2 @@ -35811,7 +35869,7 @@ 1 2 - 2866918 + 2866919 2 @@ -35832,7 +35890,7 @@ 1 2 - 1531462 + 1531463 2 @@ -35858,7 +35916,7 @@ 1 2 - 1535693 + 1535694 2 @@ -35878,15 +35936,15 @@ includes - 317353 + 317352 id - 317353 + 317352 included - 58459 + 58458 @@ -35900,7 +35958,7 @@ 1 2 - 317353 + 317352 @@ -36004,11 +36062,11 @@ link_parent - 30225687 + 30225290 element - 3843833 + 3843783 link_target @@ -36026,7 +36084,7 @@ 1 2 - 527079 + 527072 2 @@ -36036,7 +36094,7 @@ 9 10 - 3289980 + 3289937 From e0c36c758d7f82d469081756985abd5571d177d0 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 11:41:27 +0100 Subject: [PATCH 42/63] Rust: Move associated types tests into separate file --- .../type-inference/associated_types.rs | 236 + .../test/library-tests/type-inference/main.rs | 230 +- .../type-inference/type-inference.expected | 12875 ++++++++-------- 3 files changed, 6566 insertions(+), 6775 deletions(-) create mode 100644 rust/ql/test/library-tests/type-inference/associated_types.rs diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs new file mode 100644 index 0000000000000..6ea5dc2957528 --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -0,0 +1,236 @@ +mod associated_type_in_trait { + #[derive(Debug)] + struct Wrapper { + field: A, + } + + impl Wrapper { + fn unwrap(self) -> A { + self.field // $ fieldof=Wrapper + } + } + + trait MyTrait { + type AssociatedType; + + // MyTrait::m1 + fn m1(self) -> Self::AssociatedType; + + fn m2(self) -> Self::AssociatedType + where + Self::AssociatedType: Default, + Self: Sized, + { + self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType + Self::AssociatedType::default() + } + } + + trait MyTraitAssoc2 { + type GenericAssociatedType; + + // MyTrait::put + fn put(&self, a: A) -> Self::GenericAssociatedType; + + fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { + self.put(a); // $ target=MyTrait::put + self.put(b) // $ target=MyTrait::put + } + } + + // A generic trait with multiple associated types. + trait TraitMultipleAssoc { + type Assoc1; + type Assoc2; + + fn get_zero(&self) -> TrG; + + fn get_one(&self) -> Self::Assoc1; + + fn get_two(&self) -> Self::Assoc2; + } + + #[derive(Debug, Default)] + struct S; + + #[derive(Debug, Default)] + struct S2; + + #[derive(Debug, Default)] + struct AT; + + impl MyTrait for S { + type AssociatedType = AT; + + // S::m1 + fn m1(self) -> Self::AssociatedType { + AT + } + } + + impl MyTraitAssoc2 for S { + // Associated type with a type parameter + type GenericAssociatedType = Wrapper; + + // S::put + fn put(&self, a: A) -> Wrapper { + Wrapper { field: a } + } + } + + impl MyTrait for S2 { + // Associated type definition with a type argument + type AssociatedType = Wrapper; + + fn m1(self) -> Self::AssociatedType { + Wrapper { field: self } + } + } + + // NOTE: This implementation is just to make it possible to call `m2` on `S2.` + impl Default for Wrapper { + fn default() -> Self { + Wrapper { field: S2 } + } + } + + // Function that returns an associated type from a trait bound + + fn g(thing: T) -> ::AssociatedType { + thing.m1() // $ target=MyTrait::m1 + } + + impl TraitMultipleAssoc for AT { + type Assoc1 = S; + type Assoc2 = S2; + + fn get_zero(&self) -> AT { + AT + } + + fn get_one(&self) -> Self::Assoc1 { + S + } + + fn get_two(&self) -> Self::Assoc2 { + S2 + } + } + + pub fn test() { + let x1 = S; + // Call to method in `impl` block + println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT + + let x2 = S; + // Call to default method in `trait` block + let y = x2.m2(); // $ target=m2 type=y:AT + println!("{:?}", y); + + let x3 = S; + // Call to the method in `impl` block + println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap + + // Call to default implementation in `trait` block + println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap + + let x4 = g(S); // $ target=g $ MISSING: type=x4:AT + println!("{:?}", x4); + + let x5 = S2; + println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 + let x6 = S2; + println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 + + let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT + let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S + let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 + } +} + +mod associated_type_in_supertrait { + trait Supertrait { + type Content; + // Supertrait::insert + fn insert(&self, content: Self::Content); + } + + trait Subtrait: Supertrait { + // Subtrait::get_content + fn get_content(&self) -> Self::Content; + } + + // A subtrait declared using a `where` clause. + trait Subtrait2 + where + Self: Supertrait, + { + // Subtrait2::insert_two + fn insert_two(&self, c1: Self::Content, c2: Self::Content) { + self.insert(c1); // $ target=Supertrait::insert + self.insert(c2); // $ target=Supertrait::insert + } + } + + struct MyType(T); + + impl Supertrait for MyType { + type Content = T; + fn insert(&self, _content: Self::Content) { + println!("Inserting content: "); + } + } + + impl Subtrait for MyType { + // MyType::get_content + fn get_content(&self) -> Self::Content { + (*self).0.clone() // $ fieldof=MyType target=clone target=deref + } + } + + fn get_content(item: &T) -> T::Content { + item.get_content() // $ target=Subtrait::get_content + } + + fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { + item.insert(c1); // $ target=Supertrait::insert + item.insert_two(c2, c3); // $ target=Subtrait2::insert_two + } + + pub fn test() { + let item1 = MyType(42i64); + let _content1 = item1.get_content(); // $ target=MyType::get_content MISSING: type=_content1:i64 + + let item2 = MyType(true); + let _content2 = get_content(&item2); // $ target=get_content MISSING: type=_content2:bool + } +} + +mod generic_associated_type_name_clash { + struct GenS(GenT); + + trait TraitWithAssocType { + type Output; + fn get_input(self) -> Self::Output; + } + + impl TraitWithAssocType for GenS { + // This is not a recursive type, the `Output` on the right-hand side + // refers to the type parameter of the impl block just above. + type Output = Result; + + fn get_input(self) -> Self::Output { + Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output + } + } + + pub fn test() { + let _y = GenS(true).get_input(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get_input + } +} + +pub fn test() { + associated_type_in_trait::test(); // $ target=test + associated_type_in_supertrait::test(); // $ target=test + generic_associated_type_name_clash::test(); // $ target=test +} diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 840e17b52ef9e..a7efa447647a1 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -903,214 +903,6 @@ mod function_trait_bounds { } } -mod associated_type_in_trait { - #[derive(Debug)] - struct Wrapper { - field: A, - } - - impl Wrapper { - fn unwrap(self) -> A { - self.field // $ fieldof=Wrapper - } - } - - trait MyTrait { - type AssociatedType; - - // MyTrait::m1 - fn m1(self) -> Self::AssociatedType; - - fn m2(self) -> Self::AssociatedType - where - Self::AssociatedType: Default, - Self: Sized, - { - self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType - Self::AssociatedType::default() - } - } - - trait MyTraitAssoc2 { - type GenericAssociatedType; - - // MyTrait::put - fn put(&self, a: A) -> Self::GenericAssociatedType; - - fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { - self.put(a); // $ target=MyTrait::put - self.put(b) // $ target=MyTrait::put - } - } - - // A generic trait with multiple associated types. - trait TraitMultipleAssoc { - type Assoc1; - type Assoc2; - - fn get_zero(&self) -> TrG; - - fn get_one(&self) -> Self::Assoc1; - - fn get_two(&self) -> Self::Assoc2; - } - - #[derive(Debug, Default)] - struct S; - - #[derive(Debug, Default)] - struct S2; - - #[derive(Debug, Default)] - struct AT; - - impl MyTrait for S { - type AssociatedType = AT; - - // S::m1 - fn m1(self) -> Self::AssociatedType { - AT - } - } - - impl MyTraitAssoc2 for S { - // Associated type with a type parameter - type GenericAssociatedType = Wrapper; - - // S::put - fn put(&self, a: A) -> Wrapper { - Wrapper { field: a } - } - } - - impl MyTrait for S2 { - // Associated type definition with a type argument - type AssociatedType = Wrapper; - - fn m1(self) -> Self::AssociatedType { - Wrapper { field: self } - } - } - - // NOTE: This implementation is just to make it possible to call `m2` on `S2.` - impl Default for Wrapper { - fn default() -> Self { - Wrapper { field: S2 } - } - } - - // Function that returns an associated type from a trait bound - - fn g(thing: T) -> ::AssociatedType { - thing.m1() // $ target=MyTrait::m1 - } - - impl TraitMultipleAssoc for AT { - type Assoc1 = S; - type Assoc2 = S2; - - fn get_zero(&self) -> AT { - AT - } - - fn get_one(&self) -> Self::Assoc1 { - S - } - - fn get_two(&self) -> Self::Assoc2 { - S2 - } - } - - pub fn f() { - let x1 = S; - // Call to method in `impl` block - println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT - - let x2 = S; - // Call to default method in `trait` block - let y = x2.m2(); // $ target=m2 type=y:AT - println!("{:?}", y); - - let x3 = S; - // Call to the method in `impl` block - println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap - - // Call to default implementation in `trait` block - println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap - - let x4 = g(S); // $ target=g $ MISSING: type=x4:AT - println!("{:?}", x4); - - let x5 = S2; - println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 - let x6 = S2; - println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 - - let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT - let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S - let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 - } -} - -mod associated_type_in_supertrait { - trait Supertrait { - type Content; - // Supertrait::insert - fn insert(&self, content: Self::Content); - } - - trait Subtrait: Supertrait { - // Subtrait::get_content - fn get_content(&self) -> Self::Content; - } - - // A subtrait declared using a `where` clause. - trait Subtrait2 - where - Self: Supertrait, - { - // Subtrait2::insert_two - fn insert_two(&self, c1: Self::Content, c2: Self::Content) { - self.insert(c1); // $ target=Supertrait::insert - self.insert(c2); // $ target=Supertrait::insert - } - } - - struct MyType(T); - - impl Supertrait for MyType { - type Content = T; - fn insert(&self, _content: Self::Content) { - println!("Inserting content: "); - } - } - - impl Subtrait for MyType { - // MyType::get_content - fn get_content(&self) -> Self::Content { - (*self).0.clone() // $ fieldof=MyType target=clone target=deref - } - } - - fn get_content(item: &T) -> T::Content { - item.get_content() // $ target=Subtrait::get_content - } - - fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { - item.insert(c1); // $ target=Supertrait::insert - item.insert_two(c2, c3); // $ target=Subtrait2::insert_two - } - - fn test() { - let item1 = MyType(42i64); - let _content1 = item1.get_content(); // $ target=MyType::get_content MISSING: type=_content1:i64 - - let item2 = MyType(true); - let _content2 = get_content(&item2); // $ target=get_content MISSING: type=_content2:bool - } -} - mod generic_enum { #[derive(Debug)] enum MyEnum { @@ -1350,23 +1142,6 @@ mod type_aliases { type S7 = Result, S1>; - struct GenS(GenT); - - trait TraitWithAssocType { - type Output; - fn get_input(self) -> Self::Output; - } - - impl TraitWithAssocType for GenS { - // This is not a recursive type, the `Output` on the right-hand side - // refers to the type parameter of the impl block just above. - type Output = Result; - - fn get_input(self) -> Self::Output { - Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output - } - } - pub fn f() { // Type can be inferred from the constructor let p1: MyPair = PairOption::PairBoth(S1, S2); @@ -1387,8 +1162,6 @@ mod type_aliases { g(PairOption::PairSnd(PairOption::PairSnd(S3))); // $ target=g let x: S7; // $ certainType=x:Result $ certainType=x:E.S1 $ certainType=x:T.S4 $ certainType=x:T.T41.S2 $ certainType=x:T.T42.S5 $ certainType=x:T.T42.T5.S2 - - let y = GenS(true).get_input(); // $ type=y:Result type=y:T.bool type=y:E.bool target=get_input } } @@ -3099,6 +2872,7 @@ mod literal_overlap { } } +mod associated_types; mod blanket_impl; mod closure; mod dereference; @@ -3112,7 +2886,6 @@ fn main() { method_non_parametric_trait_impl::f(); // $ target=f trait_default_self_type_parameter::test(); // $ target=test function_trait_bounds::f(); // $ target=f - associated_type_in_trait::f(); // $ target=f generic_enum::f(); // $ target=f method_supertraits::f(); // $ target=f function_trait_bounds_2::f(); // $ target=f @@ -3133,6 +2906,7 @@ fn main() { method_determined_by_argument_type::f(); // $ target=f tuples::f(); // $ target=f path_buf::f(); // $ target=f + associated_types::test(); // $ target=test dereference::test(); // $ target=test pattern_matching::test_all_patterns(); // $ target=test_all_patterns pattern_matching_experimental::box_patterns(); // $ target=box_patterns 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 a7b856a75179d..422e691ddf90a 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,4 +1,146 @@ inferCertainType +| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | +| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | +| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | +| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | +| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | +| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -1474,2160 +1616,2023 @@ inferCertainType | 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: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: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:919:15:919:18 | SelfParam | | main.rs:907:5:911:5 | MyEnum | +| main.rs:919:15:919:18 | SelfParam | A | main.rs:918:10:918:10 | T | +| main.rs:919:26:924:9 | { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:19:920:22 | self | | main.rs:907:5:911:5 | MyEnum | +| main.rs:920:19:920:22 | self | A | main.rs:918:10:918:10 | T | +| main.rs:922:17:922:32 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:927:16:933:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:929:13:929:13 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:17:929:36 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:931:18:931:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:954:15:954:18 | SelfParam | | main.rs:952:5:955:5 | Self [trait MyTrait1] | +| main.rs:959:15:959:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:959:15:959:19 | SelfParam | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:962:9:968:9 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:964:17:964:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:964:17:964:20 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:966:27:966:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:966:27:966:30 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:973:15:973:18 | SelfParam | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:976:9:982:9 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:20 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:980:26:980:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:980:27:980:30 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:987:15:987:18 | SelfParam | | main.rs:937:5:940:5 | MyThing | +| main.rs:987:15:987:18 | SelfParam | A | main.rs:985:10:985:10 | T | +| main.rs:987:26:989:9 | { ... } | | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:16 | self | | main.rs:937:5:940:5 | MyThing | +| main.rs:988:13:988:16 | self | A | main.rs:985:10:985:10 | T | +| main.rs:996:15:996:18 | SelfParam | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:996:15:996:18 | SelfParam | A | main.rs:994:10:994:10 | T | +| main.rs:996:35:998:9 | { ... } | | main.rs:937:5:940:5 | MyThing | +| main.rs:996:35:998:9 | { ... } | A | main.rs:994:10:994:10 | T | +| main.rs:997:13:997:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:997:26:997:29 | self | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:997:26:997:29 | self | A | main.rs:994:10:994:10 | T | +| main.rs:1005:44:1005:44 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1005:57:1007:5 | { ... } | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1006:9:1006:9 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1009:56:1009:56 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1009:62:1013:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1011:17:1011:17 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1012:18:1012:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1016:13:1016:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:17:1016:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:13:1017:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:17:1017:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1019:18:1019:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1020:18:1020:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:13:1022:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:17:1022:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:13:1023:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:17:1023:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| 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:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1026:18:1026:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1028:13:1028:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:13:1029:13 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| 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:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1032:18:1032:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1034:13:1034:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:17:1034:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1035:31:1035:31 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1037:13:1037:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1038:31:1038:31 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1055:22:1055:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1055:22:1055:22 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1055:35:1057:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1055:35:1057:5 | { ... } | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1056:9:1056:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1056:9:1056:9 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1060:17:1060:20 | SelfParam | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1060:29:1062:9 | { ... } | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1065:21:1065:21 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1068:5:1070:5 | { ... } | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1069:9:1069:9 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1072:16:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | +| main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1084:9:1084:25 | into::<...>(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:13:1087:13 | y | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1101:22:1101:25 | SelfParam | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1101:22:1101:25 | SelfParam | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1101:22:1101:25 | SelfParam | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1101:35:1108:9 | { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:19:1102:22 | self | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1102:19:1102:22 | self | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1102:19:1102:22 | self | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:43:1103:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1103:50:1103:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1104:43:1104:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1104:50:1104:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1132:10:1132:10 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1132:30:1135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1133:17:1133:17 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1134:18:1134:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:13:1147:14 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:13:1147:14 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1148:18:1148:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:13:1151:14 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:13:1151:14 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:13:1151:14 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:13:1155:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1156:18:1156:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:13:1159:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1160:18:1160:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:9:1162:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1164:13:1164:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1164:13:1164:13 | x | E | main.rs:1111:5:1112:14 | S1 | +| main.rs:1164:13:1164:13 | x | T | main.rs:1137:5:1137:34 | S4 | +| main.rs:1164:13:1164:13 | x | T.T41 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1164:13:1164:13 | x | T.T42 | main.rs:1139:5:1139:22 | S5 | +| main.rs:1164:13:1164:13 | x | T.T42.T5 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1177:16:1177:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1177:16:1177:24 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1177:27:1177:31 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:21:1179:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1179:21:1179:29 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1179:32:1179:36 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:42:1181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1180:13:1180:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1180:13:1180:16 | self | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1180:22:1180:26 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1186:16:1186:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut.T | main.rs:1184:10:1184:10 | T | +| main.rs:1186:27:1186:31 | value | | main.rs:1184:10:1184:10 | T | +| main.rs:1186:37:1186:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1190:26:1192:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1190:26:1192:9 | { ... } | T | main.rs:1189:10:1189:10 | T | +| main.rs:1196:20:1196:23 | SelfParam | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1196:41:1201:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:41:1201:9 | { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:19:1197:22 | self | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1207:16:1252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1208:13:1208:14 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:13:1208:14 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1208:18:1208:37 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:18:1208:37 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1209:18:1209:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:22:1211:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1212:9:1212:10 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| 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:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:22:1215:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1216:9:1216:10 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1217:18:1217:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:22:1219:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:9:1220:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:23:1220:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1220:28:1220:29 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1221:18:1221:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| 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:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | | 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} | &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} | &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} | &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} | &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 | -| 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: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} | &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 | -| 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: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: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: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: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: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} | &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} | &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} | & | -| 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} | &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} | () | -| 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: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: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} | [] | -| 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: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 | 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: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: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} | (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} | (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 | 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: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: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} | & | -| 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: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: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} | &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} | & | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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: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} | &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} | () | -| 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} | &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} | &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 | -| 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: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} | &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} | () | -| 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: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} | () | +| main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1235:18:1235:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:13:1239:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1240:13:1240:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1242:18:1242:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1245:30:1250:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1246:13:1248:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1246:22:1248:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | +| main.rs:1269:15:1269:18 | SelfParam | T | main.rs:1268:10:1268:10 | T | +| main.rs:1269:26:1271:9 | { ... } | | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:16 | self | | main.rs:1257:5:1258:19 | S | +| main.rs:1270:13:1270:16 | self | T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:15:1273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1273:15:1273:19 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1273:15:1273:19 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:28:1275:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1273:28:1275:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:13:1274:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1274:14:1274:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:15:1277:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1277:15:1277:25 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1277:15:1277:25 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:34:1279:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1277:34:1279:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:13:1278:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1278:14:1278:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1283:29:1283:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1283:29:1283:33 | SelfParam | TRef | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1284:33:1284:36 | SelfParam | | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1290:29:1290:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1290:43:1292:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:17:1291:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:33:1295:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1295:33:1295:36 | SelfParam | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:46:1297:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:15:1296:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1296:15:1296:18 | self | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1300:16:1350:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:13:1314:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:18:1314:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:13:1319:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:18:1319:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:13:1324:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:18:1324:23 | &... | | {EXTERNAL LOCATION} | & | +| 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:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:28:1327:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1329:20:1329:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1335:13:1335:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1335:26:1335:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1335:26:1335:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1339:17:1339:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1341:13:1341:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1341:24:1341:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1341:25:1341:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1343:17:1343:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1347:24:1347:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1347:25:1347:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1348:17:1348:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:16:1359:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1359:16:1359:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:32:1361:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1359:32:1361:9 | { ... } | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:16 | self | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1368:16:1368:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1368:16:1368:20 | SelfParam | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1368:36:1370:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1368:36:1370:9 | { ... } | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1369:13:1369:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1369:13:1369:16 | self | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1373:16:1376:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:16:1385:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1385:16:1385:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1385:32:1387:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1385:32:1387:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:32:1387:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1386:13:1386:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1386:13:1386:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1386:13:1386:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:16:1389:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1389:16:1389:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:16:1389:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:23:1389:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1389:23:1389:23 | x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:23:1389:23 | x | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:42:1391:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1389:42:1391:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:42:1391:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1390:13:1390:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1390:13:1390:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1390:13:1390:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1394:16:1400:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1399:15:1399:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1399:16:1399:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1410:17:1410:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1410:17:1410:25 | SelfParam | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1410:28:1412:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1411:13:1411:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:13:1411:16 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:26:1411:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:26:1411:29 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1418:15:1418:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1418:15:1418:19 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1418:31:1420:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1418:31:1420:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:15:1422:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1422:15:1422:25 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:37:1424:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1422:37:1424:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:15:1426:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1426:15:1426:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:34:1428:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1426:34:1428:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1427:13:1427:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1427:13:1427:13 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:15:1430:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1430:15:1430:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:34:1432:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1430:34:1432:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1435:16:1448:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:13:1436:13 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1436:17:1436:20 | S {...} | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1439:9:1439:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1439:9:1439:17 | ...::f3(...) | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:15:1439:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1439:16:1439:16 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1441:19:1441:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:20:1441:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1441:21:1441:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1446:9:1446:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1446:22:1446:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| 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:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1462:43:1465:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1469:46:1473:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1469:46:1473:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1469:46:1473:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1477:40:1482:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1477:40:1482:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1477:40:1482:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:30:1486:34 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1486:69:1493:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:69:1493:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:69:1493:5 | { ... } | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1487:21:1487:25 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1487:21:1487:25 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1489:22:1489:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1496:16:1512:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1497:9:1499:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1497:37:1497:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:37:1497:52 | try_same_error(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:54:1499:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1501:37:1501:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:37:1501:55 | try_convert_error(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:57:1503:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1505:37:1505:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:37:1505:49 | try_chained(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:37:1505:49 | try_chained(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:51:1507:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1509:37:1509:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:37:1509:63 | try_complex(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:65:1511:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1521:13:1521:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1521:17:1521:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1522:13:1522:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1522:13:1522:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1522:21:1522:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1522:21:1522:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:13:1523:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1523:17:1523:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1524:13:1524:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1524:17:1524:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:13:1525:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:17:1525:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1528:26:1528:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:30 | SelfParam | TRef | main.rs:1527:9:1531:9 | Self [trait MyTrait] | +| main.rs:1534:26:1534:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1534:26:1534:30 | SelfParam | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1534:39:1536:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1534:39:1536:13 | { ... } | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1535:17:1535:20 | self | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1538:31:1540:13 | { ... } | | main.rs:1533:14:1533:23 | T | +| main.rs:1543:17:1543:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:13:1544:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1544:37:1544:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1544:38:1544:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1545:13:1545:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:17:1545:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1548:26:1548:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1548:26:1548:30 | SelfParam | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1548:39:1550:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1548:39:1550:13 | { ... } | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1549:17:1549:20 | self | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1552:31:1554:13 | { ... } | | main.rs:1547:14:1547:23 | T | +| main.rs:1557:13:1557:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1557:13:1557:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:13:1557:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1557:26:1557:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1558:17:1558:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1558:17:1558:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:13:1559:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1559:34:1559:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:13:1560:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:17:1560:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:26:1563:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1563:26:1563:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:39:1565:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1563:39:1565:13 | { ... } | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:17:1564:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1564:18:1564:21 | self | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1567:31:1569:13 | { ... } | | main.rs:1562:14:1562:23 | T | +| main.rs:1572:13:1572:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:17:1572:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1573:17:1573:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:13:1574:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1574:17:1574:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1574:37:1574:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1574:38:1574:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1575:13:1575:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:17:1575:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1578:26:1578:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1578:39:1580:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1578:39:1580:13 | { ... } | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:18:1579:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1582:31:1584:13 | { ... } | | main.rs:1577:14:1577:23 | T | +| main.rs:1587:13:1587:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1587:17:1587:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:13:1589:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1589:17:1589:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:34:1589:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1590:13:1590:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:17:1590:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1593:26:1593:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1593:26:1593:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1593:26:1593:30 | SelfParam | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1593:39:1595:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1593:39:1595:13 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:26:1594:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:29:1594:32 | self | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1597:31:1599:13 | { ... } | | main.rs:1592:14:1592:23 | T | +| main.rs:1603:13:1603:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1603:13:1603:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:27:1603:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1604:26:1604:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1604:26:1604:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:26:1605:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1605:46:1605:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1605:47:1605:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:47:1605:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:13:1606:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:17:1606:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1612:16:1624:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1613:13:1613:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:25:1613:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:13:1614:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:25:1614:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1618:17:1620:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1620:16:1622:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1637:30:1639:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:13:1638:31 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:16:1645:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:22:1645:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:41:1650:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1646:13:1649:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:29:1647:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:20:1648:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:29:1648:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:23:1655:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1655:23:1655:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:34:1655:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:45:1658:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1656:13:1656:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1656:13:1656:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:23:1656:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:13:1657:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1657:13:1657:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:23:1657:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:16:1663:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:22:1663:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:41:1668:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1664:13:1667:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:29:1665:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:20:1666:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:29:1666:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:23:1673:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:23:1673:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:34:1673:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:45:1676:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:13:1674:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1674:13:1674:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:23:1674:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:13:1675:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1675:13:1675:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:23:1675:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:16:1681:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:22:1681:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:41:1686:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1682:13:1685:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:29:1683:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:20:1684:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:29:1684:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:23:1690:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1690:23:1690:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:34:1690:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:45:1693:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1691:13:1691:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1691:13:1691:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:23:1691:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:13:1692:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1692:13:1692:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:23:1692:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:16:1698:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:22:1698:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:41:1703:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1699:13:1702:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:29:1700:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:20:1701:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:29:1701:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:23:1707:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1707:23:1707:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:34:1707:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:45:1710:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1708:13:1708:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1708:13:1708:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:23:1708:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:13:1709:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1709:13:1709:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:23:1709:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:16:1715:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:22:1715:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:41:1720:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1716:13:1719:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:29:1717:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:20:1718:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:29:1718:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:23:1724:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1724:23:1724:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:34:1724:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:45:1727:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:13:1725:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1725:13:1725:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:23:1725:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:13:1726:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1726:13:1726:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:23:1726:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:19:1732:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:25:1732:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:44:1737:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1733:13:1736:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:29:1734:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:20:1735:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:29:1735:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:26:1741:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1741:26:1741:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:37:1741:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:48:1744:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1742:13:1742:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1742:13:1742:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:23:1742:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:13:1743:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1743:13:1743:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:23:1743:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:18:1749:21 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:24:1749:26 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:43:1754:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1750:13:1753:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:29:1751:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:20:1752:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:29:1752:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:25:1758:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1758:25:1758:33 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:36:1758:38 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:47:1761:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1759:13:1759:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1759:13:1759:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:23:1759:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:13:1760:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1760:13:1760:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:23:1760:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:19:1766:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:25:1766:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:44:1771:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1767:13:1770:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:29:1768:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:20:1769:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:29:1769:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:26:1775:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1775:26:1775:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:37:1775:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:48:1778:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1776:13:1776:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1776:13:1776:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:23:1776:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:13:1777:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1777:13:1777:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:23:1777:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:16:1783:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:22:1783:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1783:40:1788:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1784:13:1787:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:30:1785:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1786:20:1786:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1786:30:1786:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:23:1792:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1792:23:1792:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1792:34:1792:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:44:1795:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1793:13:1793:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1793:13:1793:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1793:24:1793:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1794:13:1794:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1794:13:1794:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1794:24:1794:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:16:1800:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1800:22:1800:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:40:1805:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1801:13:1804:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:30:1802:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1803:20:1803:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1803:30:1803:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:23:1809:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1809:23:1809:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1809:34:1809:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:44:1812:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1810:13:1810:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1810:13:1810:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1810:24:1810:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1811:13:1811:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1811:13:1811:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1811:24:1811:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1817:16:1817:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1817:30:1822:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1818:13:1821:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:21:1819:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1820:21:1820:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:16:1827:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:30:1832:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1828:13:1831:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:21:1829:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1830:21:1830:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:15:1836:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1836:15:1836:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:22:1836:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1836:22:1836:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:44:1838:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:13:1837:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:13:1837:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:23:1837:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:23:1837:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:34:1837:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:44:1837:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:44:1837:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:15:1840:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1840:15:1840:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:22:1840:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1840:22:1840:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:44:1842:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:13:1841:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:13:1841:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:23:1841:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:23:1841:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:34:1841:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:44:1841:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:44:1841:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:24:1846:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1846:24:1846:28 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:31:1846:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1846:31:1846:35 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:75:1848:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1846:75:1848:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:14:1847:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:14:1847:17 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:23:1847:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:23:1847:26 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:43:1847:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:55:1847:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:55:1847:59 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:15:1850:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1850:15:1850:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:22:1850:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1850:22:1850:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:44:1852:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:13:1851:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:13:1851:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:22:1851:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:22:1851:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:33:1851:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:42:1851:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:42:1851:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:15:1854:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1854:15:1854:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:22:1854:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1854:22:1854:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:44:1856:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:13:1855:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:13:1855:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:23:1855:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:23:1855:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:34:1855:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:44:1855:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:44:1855:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:15:1858:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1858:15:1858:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:22:1858:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1858:22:1858:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:44:1860:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:13:1859:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:13:1859:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:22:1859:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:22:1859:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:33:1859:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:42:1859:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:42:1859:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:15:1862:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1862:15:1862:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:22:1862:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1862:22:1862:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:44:1864:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:13:1863:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:13:1863:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:23:1863:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:23:1863:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:34:1863:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:44:1863:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:44:1863:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1867:26:1867:26 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1867:32:1867:32 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:9:1868:9 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:13:1868:13 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1871:16:2002:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1875:23:1875:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:31:1875:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:23:1876:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:31:1876:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:23:1877:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:30:1877:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:23:1878:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:31:1878:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:23:1879:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:30:1879:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:23:1880:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:32:1880:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:31:1883:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:31:1884:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:31:1885:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:31:1886:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:31:1887:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:39:1888:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:45:1888:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:17:1891:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:34:1891:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:27:1892:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:17:1894:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:34:1894:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:27:1895:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:17:1897:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:34:1897:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:27:1898:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:17:1900:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:34:1900:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:27:1901:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:17:1903:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:27:1904:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:33:1908:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:34:1909:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:32:1910:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:32:1911:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:17:1914:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:37:1914:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:30:1915:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:17:1917:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:36:1917:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:29:1918:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:17:1920:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:37:1920:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:30:1921:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:17:1923:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:34:1923:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:28:1924:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:17:1926:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:34:1926:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:28:1927:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:24:1929:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:24:1930:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:13:1933:14 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:18:1933:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:13:1934:14 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:18:1934:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:23:1937:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:29:1937:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:23:1938:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:29:1938:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:23:1939:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:28:1939:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:23:1940:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:29:1940:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:23:1941:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:28:1941:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:23:1942:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:29:1942:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:29:1945:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:29:1946:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:29:1947:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:29:1948:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:29:1949:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:17:1952:31 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:35:1952:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:23 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:28:1953:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:17:1955:31 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:35:1955:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:23 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:28:1956:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:17:1958:31 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:35:1958:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:23 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:28:1959:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:17:1961:31 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:35:1961:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:23 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:28:1962:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:17:1964:31 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:35:1964:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:23 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:28:1965:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:32:1968:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:27 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:31:1969:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:32:1970:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:30:1971:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1972:24:1972:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:30:1972:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1975:17:1975:34 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1975:38:1975:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:26 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:31:1976:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:17:1978:33 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:37:1978:38 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:25 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:30:1979:31 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:17:1981:34 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:38:1981:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:26 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:31:1982:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:17:1984:31 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:35:1984:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:23 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:29:1985:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1987:17:1987:31 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1987:35:1987:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:23 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:29:1988:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1991:25:1991:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:25:1992:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:30:2001:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2011:18:2011:21 | SelfParam | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2011:24:2011:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2014:25:2016:5 | { ... } | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:9:2019:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2032:13:2032:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2032:13:2032:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2032:13:2032:42 | SelfParam | Ptr.TRefMut | main.rs:2026:5:2026:14 | S2 | +| main.rs:2033:13:2033:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2033:13:2033:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2034:44:2036:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2034:44:2036:9 | { ... } | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2043:22:2051:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2044:9:2044:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2044:9:2044:12 | f1(...) | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2045:9:2045:12 | f2(...) | | main.rs:2018:16:2018:39 | impl ... | +| main.rs:2046:9:2046:12 | f3(...) | | main.rs:2022:16:2022:39 | impl ... | +| main.rs:2047:9:2047:12 | f4(...) | | main.rs:2039:16:2039:39 | impl ... | +| main.rs:2049:13:2049:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:17:2049:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2050:9:2050:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2061:15:2061:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2061:15:2061:19 | SelfParam | TRef | main.rs:2060:5:2062:5 | Self [trait Trait1] | +| main.rs:2061:22:2061:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2065:15:2065:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2065:15:2065:19 | SelfParam | TRef | main.rs:2064:5:2066:5 | Self [trait Trait2] | +| main.rs:2065:22:2065:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2069:15:2069:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2069:15:2069:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2069:22:2069:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2073:15:2073:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:15:2073:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2073:22:2073:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2081:18:2081:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:18:2081:22 | SelfParam | TRef | main.rs:2080:5:2082:5 | Self [trait MyTrait] | +| main.rs:2085:18:2085:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:18:2085:22 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2085:31:2087:9 | { ... } | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2091:18:2091:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2091:18:2091:22 | SelfParam | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2091:18:2091:22 | SelfParam | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2091:30:2094:9 | { ... } | | main.rs:2090:10:2090:17 | T | +| main.rs:2092:25:2092:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2092:25:2092:28 | self | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:25:2092:28 | self | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2101:41:2101:41 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2101:52:2103:5 | { ... } | | main.rs:2101:23:2101:23 | A | +| main.rs:2102:9:2102:9 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2105:34:2105:34 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2105:59:2107:5 | { ... } | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2105:59:2107:5 | { ... } | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:12:2106:12 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2109:34:2109:34 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2109:67:2111:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2109:67:2111:5 | { ... } | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2109:67:2111:5 | { ... } | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:17:2110:17 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2113:34:2113:34 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2113:78:2115:5 | { ... } | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2114:13:2114:13 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:28:2114:28 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2117:26:2117:26 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2117:51:2119:5 | { ... } | | main.rs:2117:23:2117:23 | A | +| main.rs:2118:9:2118:9 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2121:16:2135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2122:13:2122:13 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2122:17:2122:20 | f1(...) | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2124:9:2124:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2125:13:2125:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2125:17:2125:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2126:32:2126:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:13:2127:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:17:2127:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2128:32:2128:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2145:16:2145:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2145:16:2145:20 | SelfParam | TRef | main.rs:2141:5:2142:13 | S | +| main.rs:2145:31:2147:9 | { ... } | | main.rs:2141:5:2142:13 | S | +| main.rs:2156:26:2158:9 | { ... } | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2156:26:2158:9 | { ... } | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:13:2157:38 | MyVec {...} | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2157:27:2157:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2157:27:2157:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2160:17:2160:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:28:2160:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2160:38:2162:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2161:13:2161:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2161:13:2161:16 | self | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2161:13:2161:16 | self | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:28:2161:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2169:18:2169:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2169:18:2169:22 | SelfParam | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2169:18:2169:22 | SelfParam | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2169:25:2169:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2169:56:2171:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2169:56:2171:9 | { ... } | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:13:2170:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2170:14:2170:17 | self | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:24:2170:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2174:22:2174:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2174:22:2174:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2174:22:2174:26 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2174:35:2176:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2175:17:2175:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2175:17:2175:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2175:17:2175:21 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2178:37:2178:37 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2178:43:2178:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2182:9:2182:9 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2182:11:2182:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2185:16:2196:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2186:17:2186:19 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:23:2186:34 | ...::new(...) | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2187:9:2187:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2188:9:2188:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2190:13:2190:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:13:2190:14 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:26:2190:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2193:29:2193:31 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2195:9:2195:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2195:23:2195:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2195:24:2195:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:24:2195:25 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2200:16:2202:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2201:25:2201:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:25:2201:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2201:25:2201:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:38:2201:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:38:2201:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2210:19:2210:22 | SelfParam | | main.rs:2206:5:2211:5 | Self [trait MyAdd] | +| main.rs:2210:25:2210:27 | rhs | | main.rs:2206:17:2206:26 | Rhs | +| main.rs:2217:19:2217:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:25:2217:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:45:2219:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2218:13:2218:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:19:2226:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:25:2226:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2226:25:2226:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:46:2228:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:14:2227:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2227:14:2227:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:19:2235:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:25:2235:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2235:46:2241:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:16:2236:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2250:19:2250:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:19:2250:22 | SelfParam | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:25:2250:29 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:25:2250:29 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:54:2252:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:35 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:31:2251:35 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2259:19:2259:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2259:19:2259:22 | SelfParam | T | main.rs:2255:10:2255:17 | T | +| main.rs:2259:25:2259:29 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2259:51:2261:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | T | main.rs:2255:10:2255:17 | T | +| main.rs:2260:31:2260:35 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2271:19:2271:22 | SelfParam | T | main.rs:2264:14:2264:14 | T | +| main.rs:2271:25:2271:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2271:25:2271:29 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2271:55:2273:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | T | main.rs:2264:14:2264:14 | T | +| main.rs:2272:31:2272:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2272:31:2272:35 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2278:20:2278:24 | value | | main.rs:2276:18:2276:18 | T | +| main.rs:2283:20:2283:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2283:40:2285:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2284:13:2284:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2290:20:2290:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2290:41:2296:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:16:2291:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2301:21:2301:25 | value | | main.rs:2299:19:2299:19 | T | +| main.rs:2301:31:2301:31 | x | | main.rs:2299:5:2302:5 | Self [trait MyFrom2] | +| main.rs:2306:21:2306:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:33:2306:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:48:2308:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2307:13:2307:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:21:2313:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2313:34:2313:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:49:2319:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2314:16:2314:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2324:15:2324:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2327:15:2327:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2332:15:2332:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2332:31:2334:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:15:2337:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:32:2339:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2344:15:2344:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2344:31:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2349:15:2349:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2349:32:2351:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2350:13:2350:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2354:16:2379:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2355:13:2355:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:18:2356:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:18:2357:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2357:19:2357:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:18:2358:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2360:11:2360:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:26:2360:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:11:2361:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:24:2361:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:11:2362:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:24:2362:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2362:25:2362:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:13:2364:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:17:2364:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:30:2364:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:13:2365:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:17:2365:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:30:2365:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2366:13:2366:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:38:2366:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:9:2367:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2367:23:2367:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:30:2367:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2368:9:2368:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2368:23:2368:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2368:29:2368:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:9:2369:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2369:27:2369:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:34:2369:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:9:2371:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:17:2371:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:9:2372:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:17:2372:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:9:2373:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:18:2373:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:9:2374:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:18:2374:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2375:9:2375:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2375:25:2375:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:25:2376:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:9:2377:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:25:2377:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:25:2378:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2386:26:2388:9 | { ... } | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2387:13:2387:25 | MyCallable {...} | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:17:2390:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2390:17:2390:21 | SelfParam | TRef | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:31:2392:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2395:16:2502:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:9:2398:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:18:2398:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2398:28:2398:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:9:2399:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:18:2399:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:43:2399:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:9:2400:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:18:2400:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2400:40:2400:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:21:2402:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:22:2402:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:9:2403:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2403:18:2403:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:24:2403:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2405:13:2405:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:21:2405:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:22:2405:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:9:2406:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2406:18:2406:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2406:24:2406:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2408:13:2408:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:13:2408:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:31:2408:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:9:2409:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2409:18:2409:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:18:2409:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:24:2409:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2411:13:2411:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:13:2411:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:31:2411:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:9:2412:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2412:18:2412:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:18:2412:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:24:2412:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2414:17:2414:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:28:2414:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:29:2414:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:29:2414:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:36:2414:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:36:2414:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:43:2414:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:43:2414:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:9:2415:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2415:18:2415:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2415:19:2415:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:28:2415:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:9:2416:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:18:2416:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:23:2416:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:32:2416:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:9:2417:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:18:2417:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:27:2417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2419:13:2419:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2420:9:2424:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2421:13:2421:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2421:26:2421:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2421:26:2421:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:13:2422:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2422:26:2422:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2422:26:2422:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2423:13:2423:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2423:26:2423:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2423:26:2423:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2425:9:2425:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2425:18:2425:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2425:27:2425:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2427:13:2427:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2428:9:2432:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2428:10:2432:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2429:13:2429:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2429:26:2429:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2429:26:2429:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2430:13:2430:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2430:26:2430:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2430:26:2430:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2431:13:2431:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2431:26:2431:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2431:26:2431:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2433:9:2433:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2433:18:2433:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2433:27:2433:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2435:13:2435:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:25:2435:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:26:2435:42 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:45:2435:61 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:64:2435:80 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2436:9:2440:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2437:12:2437:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2438:9:2440:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:9:2444:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:18:2444:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2444:24:2444:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:9:2445:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:18:2445:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2445:19:2445:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:28:2445:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2446:13:2446:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:21:2446:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:9:2447:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2447:18:2447:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:24:2447:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2448:13:2448:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2448:26:2448:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:9:2449:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2449:18:2449:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2449:19:2449:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2449:20:2449:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:26:2449:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:32:2449:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:38:2449:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:50:2449:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2451:13:2451:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2452:9:2455:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2453:20:2453:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2454:18:2454:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:9:2456:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2456:18:2456:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2456:25:2456:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:9:2461:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:24:2461:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2463:13:2463:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:13:2463:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:13:2463:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2463:33:2463:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:9:2464:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2464:18:2464:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2464:18:2464:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2464:18:2464:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:25:2464:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2466:22:2466:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2466:23:2466:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2467:9:2467:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2467:25:2467:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2469:13:2469:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:21:2469:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:31:2469:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2469:32:2469:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:9:2470:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2470:18:2470:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2470:24:2470:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2472:13:2472:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:13:2472:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:13:2472:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:13:2472:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2472:33:2472:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:9:2473:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2473:18:2473:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2473:18:2473:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2473:18:2473:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2473:18:2473:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:24:2473:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2475:17:2475:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:17:2475:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:25:2475:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:25:2475:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:9:2476:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2476:9:2476:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:20:2476:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:9:2477:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2477:18:2477:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2477:18:2477:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2477:24:2477:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2481:17:2484:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:13:2483:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:29:2483:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2486:17:2486:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:17:2486:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:24:2486:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:24:2486:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:9:2487:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2487:9:2487:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:24:2487:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2487:24:2487:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:33:2487:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2487:33:2487:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2488:9:2488:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2488:24:2488:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2488:24:2488:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:33:2488:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2488:33:2488:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:9:2489:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2489:20:2489:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2489:20:2489:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2489:32:2489:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:9:2490:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:22:2490:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2490:22:2490:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2490:36:2490:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:9:2491:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:13:2491:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2491:29:2491:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2491:29:2491:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2491:41:2491:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:9:2492:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:13:2492:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2492:29:2492:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2492:30:2492:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:30:2492:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:35:2492:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2496:17:2496:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:17:2501:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2498:23:2498:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2499:9:2501:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2500:13:2500:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2512:40:2514:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2512:40:2514:9 | { ... } | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2512:40:2514:9 | { ... } | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2516:30:2518:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2516:30:2518:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:19:2520:22 | SelfParam | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:19:2520:22 | SelfParam | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:33:2522:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:33:2522:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2521:13:2521:16 | self | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2521:13:2521:16 | self | T | main.rs:2511:10:2511:19 | T | +| main.rs:2533:15:2533:15 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2533:26:2535:5 | { ... } | | main.rs:2533:12:2533:12 | T | +| main.rs:2534:9:2534:9 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2537:16:2559:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2538:13:2538:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:13:2538:14 | x1 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:13:2538:14 | x1 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:13:2539:14 | x2 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:13:2540:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:13:2540:14 | x3 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:13:2540:14 | x3 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:13:2541:14 | x4 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:13:2541:14 | x4 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:18:2541:48 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:18:2541:48 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:35:2541:47 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:18:2542:42 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:18:2542:42 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:29:2542:41 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2546:21:2546:33 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:13:2547:15 | x10 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:13:2547:15 | x10 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:13:2551:15 | x11 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:19:2551:34 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:13:2552:15 | x12 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:19:2552:33 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:13:2553:15 | x13 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:19:2556:9 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2555:20:2555:32 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2557:13:2557:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:19:2557:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:13:2558:15 | x15 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:13:2558:15 | x15 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2558:19:2558:37 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:19:2558:37 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2567:35:2569:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2567:35:2569:9 | { ... } | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2567:35:2569:9 | { ... } | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2568:14:2568:18 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:21:2568:25 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:16:2570:19 | SelfParam | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:22:2570:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2573:16:2607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2574:13:2574:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:13:2574:13 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:13:2574:13 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:17:2575:17 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2580:9:2580:9 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2581:9:2581:9 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2594:13:2594:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:20:2594:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2595:13:2595:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2596:13:2596:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:20:2598:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2600:13:2600:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2600:30:2600:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2600:30:2600:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2600:30:2600:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2601:25:2601:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2601:25:2601:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2605:13:2605:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2605:17:2605:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2612:27:2634:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2613:13:2613:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:13:2613:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:27:2613:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:27:2613:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:36:2613:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2616:15:2616:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2616:15:2616:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2617:24:2619:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:22:2623:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:35:2627:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:35:2627:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:44:2627:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2628:15:2628:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:26:2632:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | +| main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2647:29:2647:33 | SelfParam | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:59:2649:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2647:59:2649:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2647:59:2649:9 | { ... } | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:16:2648:29 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2655:39:2657:9 | { ... } | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2656:13:2656:22 | PathBuf {...} | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:18:2665:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2665:18:2665:22 | SelfParam | TRef | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:34:2669:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2665:34:2669:9 | { ... } | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2667:33:2667:43 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:13:2668:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2672:16:2680:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2673:21:2673:31 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:21:2674:25 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2677:13:2677:20 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:24:2677:37 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:31 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2685:14:2685:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2685:14:2685:18 | SelfParam | TRef | main.rs:2684:5:2686:5 | Self [trait MyTrait] | +| main.rs:2692:14:2692:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2692:14:2692:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2692:14:2692:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2692:28:2694:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2693:13:2693:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2693:13:2693:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:14:2698:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2698:14:2698:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:28:2700:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:15:2704:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2704:15:2704:19 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2704:15:2704:19 | SelfParam | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2704:33:2706:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2705:17:2705:20 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2705:17:2705:20 | self | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2709:14:2709:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2709:48:2726:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2709:48:2726:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2709:48:2726:5 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2709:48:2726:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:20:2710:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2720:12:2720:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2722:13:2722:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2722:13:2722:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2724:13:2724:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2724:13:2724:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2730:22:2734:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2731:18:2731:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2731:33:2733:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:11:2739:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2739:30:2747:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2742:13:2744:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2742:16:2742:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2742:21:2744:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2750:20:2757:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:11:2764:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2764:30:2772:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:13:2765:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2765:17:2769:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2766:13:2768:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2766:16:2766:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2766:21:2768:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2778:13:2778:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:13:2778:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:26:2782:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2782:26:2782:28 | opt | T | main.rs:2782:23:2782:23 | T | +| main.rs:2782:42:2782:42 | x | | main.rs:2782:23:2782:23 | T | +| main.rs:2782:48:2782:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2785:9:2785:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2792:13:2792:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:17:2792:39 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2793:40:2793:40 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:17:2794:52 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:17:2794:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2796:13:2796:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:13:2796:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:20:2797:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2800:29:2800:29 | e | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2800:29:2800:29 | e | T1 | main.rs:2800:26:2800:26 | T | +| main.rs:2800:29:2800:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2800:53:2800:53 | x | | main.rs:2800:26:2800:26 | T | +| main.rs:2800:59:2800:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2803:13:2803:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:17:2805:9 | ...::B {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2804:20:2804:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2806:9:2806:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2806:23:2806:23 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2809:13:2809:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:13:2809:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:13:2809:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:29:2813:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:2813:29:2813:31 | res | E | main.rs:2813:26:2813:26 | E | +| main.rs:2813:29:2813:31 | res | T | main.rs:2813:23:2813:23 | T | +| main.rs:2813:48:2813:48 | x | | main.rs:2813:26:2813:26 | E | +| main.rs:2813:54:2813:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2816:9:2816:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:23:2816:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:2818:17:2818:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:17:2818:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:21:2818:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:21:2818:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:9:2819:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2819:9:2819:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2822:9:2822:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2822:9:2822:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2829:14:2829:17 | SelfParam | | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:14:2832:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2832:14:2832:18 | SelfParam | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:21:2832:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2832:21:2832:25 | other | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:44:2834:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2832:44:2834:9 | { ... } | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:16 | self | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2839:14:2839:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:28:2841:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:13:2840:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:2846:14:2846:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:2846:28:2848:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2847:13:2847:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:2853:14:2853:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2853:14:2853:17 | SelfParam | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2853:28:2855:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2853:28:2855:9 | { ... } | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2854:13:2854:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2854:13:2854:16 | self | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2858:25:2862:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2864:12:2872:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2865:13:2865:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2866:13:2866:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2866:17:2866:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:2867:17:2867:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2867:21:2867:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2870:13:2870:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2871:23:2871:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2881:11:2916:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2882:5:2882:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2883:5:2883:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:5:2884:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:20:2884:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:41:2884:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2885:5:2885:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2886:5:2886:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2887:5:2887:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2888:5:2888:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2889:5:2889:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2890:5:2890:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2891:5:2891:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2892:5:2892:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2893:5:2893:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2894:5:2894:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2895:5:2895:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2896:5:2896:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2897:5:2897:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2898:5:2898:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2899:5:2899:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2900:5:2900:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2900:5:2900:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2901:5:2901:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2902:5:2902:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2903:5:2903:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2904:5:2904:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2905:5:2905:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2906:5:2906:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2907:5:2907:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2908:5:2908:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2909:5:2909:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2910:5:2910:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2911:5:2911:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2912:5:2912:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2913:5:2913:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2914:5:2914:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2914:5:2914:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2914:5:2914:20 | ...::f(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2914:5:2914:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2914:16:2914:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2915:5:2915: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} | () | @@ -4538,6 +4543,247 @@ inferCertainType | raw_pointer.rs:59:5:59:30 | raw_type_from_deref(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:59:25:59:29 | false | | {EXTERNAL LOCATION} | bool | inferType +| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:22 | self.field | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:24:13:24:21 | self.m1() | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:25:13:25:43 | ...::default(...) | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | +| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:36:13:36:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:37:13:37:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:67:13:67:14 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:77:13:77:32 | Wrapper {...} | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:86:13:86:35 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:93:13:93:33 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:30:93:31 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:108:13:108:14 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:112:13:112:13 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:116:13:116:14 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:121:13:121:14 | x1 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:121:18:121:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:123:9:123:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:26:123:27 | x1 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:123:26:123:32 | x1.m1() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:125:13:125:14 | x2 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:125:18:125:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:127:13:127:13 | y | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:127:17:127:18 | x2 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:127:17:127:23 | x2.m2() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:128:9:128:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:26:128:26 | y | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:130:13:130:14 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:130:18:130:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:132:9:132:44 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:26:132:27 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:132:26:132:34 | x3.put(...) | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:132:26:132:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:132:26:132:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:132:33:132:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:135:9:135:50 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:26:135:27 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:135:26:135:40 | x3.putTwo(...) | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:135:36:135:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:135:39:135:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:137:20:137:20 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:138:9:138:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:140:13:140:14 | x5 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:140:18:140:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:141:9:141:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:26:141:27 | x5 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:141:26:141:32 | x5.m1() | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:141:26:141:32 | x5.m1() | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:142:13:142:14 | x6 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:142:18:142:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:143:9:143:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:26:143:27 | x6 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:143:26:143:32 | x6.m2() | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:143:26:143:32 | x6.m2() | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:145:13:145:22 | assoc_zero | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:145:26:145:27 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:145:26:145:38 | AT.get_zero() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:146:13:146:21 | assoc_one | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:146:25:146:26 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:146:25:146:36 | AT.get_one() | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:147:13:147:21 | assoc_two | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:147:25:147:26 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:147:25:147:36 | AT.get_two() | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | +| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | +| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | +| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:170:13:170:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:171:13:171:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:13:180:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:186:48:188:9 | { ... } | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:19 | (...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:13:187:19 | (...) | T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:21 | ... .0 | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:29 | ... .clone() | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:14:187:18 | * ... | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:14:187:18 | * ... | T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:196:9:196:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:197:9:197:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:201:13:201:17 | item1 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:201:13:201:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:201:21:201:33 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:201:21:201:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:202:25:202:29 | item1 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:202:25:202:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:204:13:204:17 | item2 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:204:13:204:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:204:21:204:32 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:204:21:204:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:205:37:205:42 | &item2 | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:205:37:205:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:38:205:42 | item2 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:205:38:205:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | +| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:13:223:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:223:13:223:22 | Ok(...) | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:13:223:22 | Ok(...) | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:21 | self.0 | | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:228:13:228:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:228:13:228:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:13:228:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:27 | GenS(...) | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:228:18:228:27 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:39 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:228:18:228:39 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:39 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4570,7 +4816,6 @@ inferType | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:20:47:21 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:13:48:14 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:18:48:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4584,7 +4829,6 @@ inferType | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:49:18:49:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:20:49:21 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:13:50:14 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | @@ -4594,7 +4838,6 @@ inferType | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:51:18:51:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:20:51:21 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:13:52:14 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:18:52:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4608,7 +4851,6 @@ inferType | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:53:18:53:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:20:53:21 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:13:54:14 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:18:54:35 | ...::duplicate(...) | | blanket_impl.rs:6:5:7:14 | S1 | @@ -4620,7 +4862,6 @@ inferType | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:55:18:55:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:20:55:21 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:13:56:14 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:18:56:19 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | @@ -4630,7 +4871,6 @@ inferType | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:57:18:57:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:20:57:21 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:13:58:14 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:18:58:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4644,7 +4884,6 @@ inferType | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:59:18:59:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:20:59:21 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:68:24:68:24 | x | | {EXTERNAL LOCATION} | i64 | | blanket_impl.rs:68:32:68:32 | y | | blanket_impl.rs:67:5:69:5 | Self [trait Trait1] | @@ -4670,7 +4909,6 @@ inferType | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:91:18:91:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:20:91:21 | x1 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:13:92:14 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:18:92:43 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4681,7 +4919,6 @@ inferType | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:93:18:93:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:20:93:21 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:13:94:14 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:18:94:39 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4692,7 +4929,6 @@ inferType | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:95:18:95:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:20:95:21 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:13:96:14 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:18:96:43 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4703,7 +4939,6 @@ inferType | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:97:18:97:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:20:97:21 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:108:22:108:26 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:108:22:108:26 | SelfParam | TRef | blanket_impl.rs:107:5:109:5 | Self [trait Flag] | @@ -4858,7 +5093,6 @@ inferType | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:278:22:278:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:281:24:281:28 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:281:24:281:28 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | @@ -4868,7 +5102,6 @@ inferType | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:282:22:282:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:290:16:300:5 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:291:13:291:13 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | | blanket_impl.rs:291:17:291:34 | MySqlConnection {...} | | blanket_impl.rs:286:5:286:29 | MySqlConnection | @@ -5481,7 +5714,6 @@ inferType | dereference.rs:214:22:214:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:214:22:214:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | -| dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:220:16:220:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:220:16:220:20 | SelfParam | TRef | dereference.rs:205:5:205:17 | Foo | | dereference.rs:220:23:222:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5490,7 +5722,6 @@ inferType | dereference.rs:221:22:221:37 | "In trait impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:221:22:221:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | -| dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:225:19:228:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:226:17:226:17 | f | | dereference.rs:205:5:205:17 | Foo | | dereference.rs:226:21:226:26 | Foo {...} | | dereference.rs:205:5:205:17 | Foo | @@ -5520,7 +5751,6 @@ inferType | dyn_type.rs:29:17:29:42 | ...::format(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | -| dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:33:29:36 | self | | {EXTERNAL LOCATION} | & | | dyn_type.rs:29:33:29:36 | self | TRef | dyn_type.rs:21:1:24:1 | MyStruct | | dyn_type.rs:29:33:29:42 | self.value | | {EXTERNAL LOCATION} | i32 | @@ -5778,7 +6008,6 @@ inferType | main.rs:27:18:27:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:27:18:27:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:3:5:4:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5793,7 +6022,6 @@ inferType | main.rs:32:18:32:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:32:18:32:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:35:31:63:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5806,7 +6034,6 @@ inferType | main.rs:38:18:38:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:38:18:38:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:38:26:38:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:38:26:38:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5820,7 +6047,6 @@ inferType | main.rs:42:18:42:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:42:18:42:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:42:26:42:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:42:26:42:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5833,7 +6059,6 @@ inferType | main.rs:49:18:49:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:49:18:49:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:49:26:49:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:49:26:49:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:49:26:49:28 | x.a | T | main.rs:3:5:4:13 | S | @@ -5850,7 +6075,6 @@ inferType | main.rs:55:18:55:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:55:18:55:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:55:26:55:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:55:26:55:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:55:26:55:26 | x | A.T | main.rs:3:5:4:13 | S | @@ -5876,7 +6100,6 @@ inferType | main.rs:62:18:62:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:62:18:62:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:62:26:62:26 | a | T | main.rs:3:5:4:13 | S | | main.rs:65:16:68:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5894,7 +6117,6 @@ inferType | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:85:18:85:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:86:13:86:13 | x | | main.rs:72:5:72:21 | Foo | | main.rs:86:17:86:22 | Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:87:13:87:13 | y | | main.rs:72:5:72:21 | Foo | @@ -5908,7 +6130,6 @@ inferType | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:92:18:92:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:93:9:93:9 | x | | main.rs:72:5:72:21 | Foo | | main.rs:93:9:93:14 | x.m1() | | main.rs:72:5:72:21 | Foo | | main.rs:94:9:94:9 | y | | main.rs:72:5:72:21 | Foo | @@ -5939,7 +6160,6 @@ inferType | main.rs:131:26:131:31 | "foo!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:131:26:131:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:137:25:137:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:137:25:137:29 | SelfParam | TRef | main.rs:135:9:140:9 | Self [trait Bar] | | main.rs:137:32:139:13 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5948,7 +6168,6 @@ inferType | main.rs:138:26:138:31 | "bar!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:138:26:138:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:149:15:170:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:150:13:150:13 | x | | main.rs:142:9:142:21 | X | | main.rs:150:17:150:17 | X | | main.rs:142:9:142:21 | X | @@ -6007,7 +6226,6 @@ inferType | main.rs:209:18:209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:209:18:209:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:209:26:209:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:209:26:209:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:209:26:209:28 | x.a | | main.rs:179:5:180:14 | S1 | @@ -6016,7 +6234,6 @@ inferType | main.rs:210:18:210:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:210:18:210:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:210:26:210:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:210:26:210:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:210:26:210:28 | y.a | | main.rs:181:5:182:14 | S2 | @@ -6025,7 +6242,6 @@ inferType | main.rs:212:18:212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:212:18:212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:212:26:212:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:212:26:212:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:212:26:212:31 | x.m1() | | main.rs:179:5:180:14 | S1 | @@ -6034,7 +6250,6 @@ inferType | main.rs:213:18:213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:213:18:213:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:213:26:213:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:213:26:213:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:213:26:213:31 | y.m1() | | main.rs:174:5:177:5 | MyThing | @@ -6055,7 +6270,6 @@ inferType | main.rs:218:18:218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:218:18:218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:218:26:218:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:218:26:218:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:218:26:218:31 | x.m2() | | main.rs:179:5:180:14 | S1 | @@ -6064,7 +6278,6 @@ inferType | main.rs:219:18:219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:219:18:219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:219:26:219:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:219:26:219:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:219:26:219:31 | y.m2() | | main.rs:181:5:182:14 | S2 | @@ -6209,7 +6422,6 @@ inferType | main.rs:378:18:378:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:378:18:378:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:378:26:378:33 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:378:26:378:33 | thing_s1 | A | main.rs:235:5:236:14 | S1 | | main.rs:378:26:378:38 | thing_s1.m1() | | main.rs:235:5:236:14 | S1 | @@ -6218,7 +6430,6 @@ inferType | main.rs:379:18:379:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:379:18:379:40 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:379:26:379:33 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:379:26:379:33 | thing_s2 | A | main.rs:237:5:238:14 | S2 | | main.rs:379:26:379:38 | thing_s2.m1() | | main.rs:224:5:227:5 | MyThing | @@ -6233,7 +6444,6 @@ inferType | main.rs:381:18:381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:381:18:381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:381:26:381:27 | s3 | | main.rs:239:5:240:14 | S3 | | main.rs:383:13:383:14 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:383:13:383:14 | p1 | P1 | main.rs:235:5:236:14 | S1 | @@ -6248,7 +6458,6 @@ inferType | main.rs:384:18:384:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:384:18:384:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:384:26:384:27 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:384:26:384:27 | p1 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:384:26:384:27 | p1 | P2 | main.rs:235:5:236:14 | S1 | @@ -6266,7 +6475,6 @@ inferType | main.rs:387:18:387:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:387:18:387:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:387:26:387:27 | p2 | | main.rs:229:5:233:5 | MyPair | | main.rs:387:26:387:27 | p2 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:387:26:387:27 | p2 | P2 | main.rs:237:5:238:14 | S2 | @@ -6288,7 +6496,6 @@ inferType | main.rs:393:18:393:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:393:18:393:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:393:26:393:27 | p3 | | main.rs:229:5:233:5 | MyPair | | main.rs:393:26:393:27 | p3 | P1 | main.rs:224:5:227:5 | MyThing | | main.rs:393:26:393:27 | p3 | P1.A | main.rs:235:5:236:14 | S1 | @@ -6312,7 +6519,6 @@ inferType | main.rs:398:18:398:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:398:18:398:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:398:26:398:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:399:13:399:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | | main.rs:229:5:233:5 | MyPair | @@ -6324,7 +6530,6 @@ inferType | main.rs:400:18:400:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:400:18:400:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:400:26:400:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:406:13:406:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:406:13:406:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6344,7 +6549,6 @@ inferType | main.rs:408:18:408:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:408:18:408:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:408:26:408:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:409:13:409:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | | main.rs:229:5:233:5 | MyPair | @@ -6356,7 +6560,6 @@ inferType | main.rs:410:18:410:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:410:18:410:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:410:26:410:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:414:13:414:13 | x | | main.rs:235:5:236:14 | S1 | | main.rs:414:17:414:39 | call_trait_m1(...) | | main.rs:235:5:236:14 | S1 | @@ -6367,7 +6570,6 @@ inferType | main.rs:415:18:415:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:415:18:415:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:415:26:415:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:416:13:416:13 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:416:13:416:13 | y | A | main.rs:237:5:238:14 | S2 | @@ -6380,7 +6582,6 @@ inferType | main.rs:417:18:417:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:417:18:417:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:417:26:417:26 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:417:26:417:26 | y | A | main.rs:237:5:238:14 | S2 | | main.rs:417:26:417:28 | y.a | | main.rs:237:5:238:14 | S2 | @@ -6402,7 +6603,6 @@ inferType | main.rs:422:18:422:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:422:18:422:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:422:26:422:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:423:13:423:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:423:17:423:26 | get_snd(...) | | main.rs:235:5:236:14 | S1 | @@ -6414,7 +6614,6 @@ inferType | main.rs:424:18:424:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:424:18:424:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:424:26:424:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:427:13:427:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:427:13:427:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6434,7 +6633,6 @@ inferType | main.rs:429:18:429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:429:18:429:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:429:26:429:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:430:13:430:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:430:17:430:26 | get_snd(...) | | main.rs:237:5:238:14 | S2 | @@ -6446,7 +6644,6 @@ inferType | main.rs:431:18:431:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:431:18:431:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:431:26:431:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:433:13:433:13 | c | | main.rs:229:5:233:5 | MyPair | | main.rs:433:13:433:13 | c | P1 | main.rs:239:5:240:14 | S3 | @@ -6569,7 +6766,6 @@ inferType | main.rs:571:18:571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:571:18:571:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:571:26:571:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:571:26:571:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | | main.rs:572:9:572:46 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6577,7 +6773,6 @@ inferType | main.rs:572:18:572:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:572:18:572:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:572:26:572:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:572:44:572:44 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:9:573:45 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6585,7 +6780,6 @@ inferType | main.rs:573:18:573:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:573:18:573:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:573:26:573:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:26:573:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | | main.rs:574:9:574:48 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6593,7 +6787,6 @@ inferType | main.rs:574:18:574:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:574:18:574:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:574:26:574:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | | main.rs:574:46:574:46 | x | | main.rs:446:5:447:14 | S1 | | main.rs:576:13:576:13 | y | | main.rs:479:5:479:22 | S2 | @@ -6606,7 +6799,6 @@ inferType | main.rs:577:18:577:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:577:18:577:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:577:26:577:26 | y | | main.rs:479:5:479:22 | S2 | | main.rs:577:26:577:26 | y | T2 | main.rs:446:5:447:14 | S1 | | main.rs:577:26:577:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | @@ -6615,7 +6807,6 @@ inferType | main.rs:578:18:578:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:578:18:578:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:578:26:578:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:578:50:578:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:578:50:578:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | @@ -6630,7 +6821,6 @@ inferType | main.rs:581:18:581:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:581:18:581:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:581:26:581:26 | z | | main.rs:479:5:479:22 | S2 | | main.rs:581:26:581:26 | z | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:581:26:581:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | @@ -6639,7 +6829,6 @@ inferType | main.rs:582:18:582:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:582:18:582:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:582:26:582:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:582:44:582:48 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:582:44:582:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -6649,7 +6838,6 @@ inferType | main.rs:583:18:583:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:583:18:583:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:583:26:583:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:583:51:583:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:583:51:583:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -6664,7 +6852,6 @@ inferType | main.rs:586:18:586:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:586:18:586:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:586:26:586:26 | w | | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:26 | w | T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:26:586:31 | w.m(...) | | {EXTERNAL LOCATION} | & | @@ -6676,7 +6863,6 @@ inferType | main.rs:587:18:587:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:587:18:587:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:587:26:587:37 | ...::m(...) | | {EXTERNAL LOCATION} | & | | main.rs:587:26:587:37 | ...::m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:587:26:587:37 | ...::m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | @@ -6726,7 +6912,6 @@ inferType | main.rs:622:18:622:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:622:18:622:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:622:26:622:27 | s1 | | main.rs:619:35:619:42 | I | | main.rs:625:65:625:65 | x | | main.rs:625:46:625:62 | T | | main.rs:625:71:629:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6738,7 +6923,6 @@ inferType | main.rs:628:18:628:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:628:18:628:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:628:26:628:27 | s2 | | main.rs:625:36:625:43 | I | | main.rs:631:49:631:49 | x | | main.rs:631:30:631:46 | T | | main.rs:631:55:634:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6750,7 +6934,6 @@ inferType | main.rs:633:18:633:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:633:18:633:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:633:26:633:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:636:53:636:53 | x | | main.rs:636:34:636:50 | T | | main.rs:636:59:639:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6762,7 +6945,6 @@ inferType | main.rs:638:18:638:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:638:18:638:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:638:26:638:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:641:43:641:43 | x | | main.rs:641:40:641:40 | T | | main.rs:644:5:647:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6774,7 +6956,6 @@ inferType | main.rs:646:18:646:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:646:18:646:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:646:26:646:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:650:16:650:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | | main.rs:652:16:652:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | @@ -6801,7 +6982,6 @@ inferType | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:668:18:668:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:668:32:668:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:668:36:668:37 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:671:69:671:69 | x | | main.rs:671:52:671:66 | T | @@ -6818,7 +6998,6 @@ inferType | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:675:18:675:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:675:32:675:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:675:36:675:37 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:678:50:678:50 | x | | main.rs:678:41:678:47 | T | @@ -6835,7 +7014,6 @@ inferType | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:682:18:682:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:682:32:682:33 | s1 | | {EXTERNAL LOCATION} | bool | | main.rs:682:36:682:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:685:54:685:54 | x | | main.rs:685:41:685:51 | T | @@ -6852,7 +7030,6 @@ inferType | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:689:18:689:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:689:32:689:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:689:36:689:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:697:18:697:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -7019,7 +7196,6 @@ inferType | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:31 | { ... } | | {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 | @@ -7028,7 +7204,6 @@ inferType | 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: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 | @@ -7047,7 +7222,6 @@ inferType | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:31 | { ... } | | {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 | @@ -7056,7 +7230,6 @@ inferType | 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: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 | @@ -7079,7 +7252,6 @@ inferType | 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: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 | @@ -7090,7 +7262,6 @@ inferType | 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: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 | @@ -7101,7 +7272,6 @@ inferType | 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: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 | @@ -7112,7 +7282,6 @@ inferType | 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: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 | @@ -7123,7 +7292,6 @@ inferType | 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: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 | @@ -7134,7 +7302,6 @@ inferType | 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: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 | @@ -7145,7 +7312,6 @@ inferType | 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: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 | @@ -7156,7 +7322,6 @@ inferType | 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: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 | @@ -7167,7 +7332,6 @@ inferType | 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: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 | @@ -7178,7 +7342,6 @@ inferType | 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: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 | @@ -7208,7 +7371,6 @@ inferType | 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: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 | @@ -7220,7 +7382,6 @@ inferType | 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: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 | @@ -7232,7 +7393,6 @@ inferType | 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: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 | @@ -7244,7 +7404,6 @@ inferType | 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: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 | @@ -7256,7 +7415,6 @@ inferType | 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: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 | @@ -7268,7 +7426,6 @@ inferType | 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: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 | @@ -7276,4232 +7433,3938 @@ inferType | 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:9:1028:33 | MacroExpr | | {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:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:32 | { ... } | | {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:9:1033:27 | MacroExpr | | {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:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:26 | { ... } | | {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:9:1037:44 | MacroExpr | | {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: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:9:1040:50 | MacroExpr | | {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: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:9:1043:28 | MacroExpr | | {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: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:9:1046:33 | MacroExpr | | {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: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:9:1048:33 | MacroExpr | | {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: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:13:1085:43 | MacroExpr | | {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: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:9:1139:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1140:32 | MacroExpr | | {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: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:9:1220:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1227:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:919:15:919:18 | SelfParam | | main.rs:907:5:911:5 | MyEnum | +| main.rs:919:15:919:18 | SelfParam | A | main.rs:918:10:918:10 | T | +| main.rs:919:26:924:9 | { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:13:923:13 | match self { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:19:920:22 | self | | main.rs:907:5:911:5 | MyEnum | +| main.rs:920:19:920:22 | self | A | main.rs:918:10:918:10 | T | +| main.rs:921:17:921:29 | ...::C1(...) | | main.rs:907:5:911:5 | MyEnum | +| main.rs:921:17:921:29 | ...::C1(...) | A | main.rs:918:10:918:10 | T | +| main.rs:921:28:921:28 | a | | main.rs:918:10:918:10 | T | +| main.rs:921:34:921:34 | a | | main.rs:918:10:918:10 | T | +| main.rs:922:17:922:32 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:922:17:922:32 | ...::C2 {...} | A | main.rs:918:10:918:10 | T | +| main.rs:922:30:922:30 | a | | main.rs:918:10:918:10 | T | +| main.rs:922:37:922:37 | a | | main.rs:918:10:918:10 | T | +| main.rs:927:16:933:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:928:13:928:13 | x | | main.rs:907:5:911:5 | MyEnum | +| main.rs:928:13:928:13 | x | A | main.rs:913:5:914:14 | S1 | +| main.rs:928:17:928:30 | ...::C1(...) | | main.rs:907:5:911:5 | MyEnum | +| main.rs:928:17:928:30 | ...::C1(...) | A | main.rs:913:5:914:14 | S1 | +| main.rs:928:28:928:29 | S1 | | main.rs:913:5:914:14 | S1 | +| main.rs:929:13:929:13 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:13:929:13 | y | A | main.rs:915:5:916:14 | S2 | +| main.rs:929:17:929:36 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:17:929:36 | ...::C2 {...} | A | main.rs:915:5:916:14 | S2 | +| main.rs:929:33:929:34 | S2 | | main.rs:915:5:916:14 | S2 | +| main.rs:931:9:931:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:931:26:931:26 | x | | main.rs:907:5:911:5 | MyEnum | +| main.rs:931:26:931:26 | x | A | main.rs:913:5:914:14 | S1 | +| main.rs:931:26:931:31 | x.m1() | | main.rs:913:5:914:14 | S1 | +| main.rs:932:9:932:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:932:26:932:26 | y | A | main.rs:915:5:916:14 | S2 | +| main.rs:932:26:932:31 | y.m1() | | main.rs:915:5:916:14 | S2 | +| main.rs:954:15:954:18 | SelfParam | | main.rs:952:5:955:5 | Self [trait MyTrait1] | +| main.rs:959:15:959:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:959:15:959:19 | SelfParam | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:962:9:968:9 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:963:13:967:13 | if ... {...} else {...} | | main.rs:957:20:957:22 | Tr2 | +| main.rs:963:16:963:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:963:16:963:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:963:20:963:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:963:22:965:13 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:964:17:964:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:964:17:964:20 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:964:17:964:25 | self.m1() | | main.rs:957:20:957:22 | Tr2 | +| main.rs:965:20:967:13 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:966:17:966:31 | ...::m1(...) | | main.rs:957:20:957:22 | Tr2 | +| main.rs:966:26:966:30 | * ... | | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:966:27:966:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:966:27:966:30 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:973:15:973:18 | SelfParam | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:976:9:982:9 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:977:13:981:13 | if ... {...} else {...} | | main.rs:971:20:971:22 | Tr3 | +| main.rs:977:16:977:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:977:16:977:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:977:20:977:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:977:22:979:13 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:20 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:978:17:978:25 | self.m2() | | main.rs:937:5:940:5 | MyThing | +| main.rs:978:17:978:25 | self.m2() | A | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:27 | ... .a | | main.rs:971:20:971:22 | Tr3 | +| main.rs:979:20:981:13 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:17:980:31 | ...::m2(...) | | main.rs:937:5:940:5 | MyThing | +| main.rs:980:17:980:31 | ...::m2(...) | A | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:17:980:33 | ... .a | | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:26:980:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:980:26:980:30 | &self | TRef | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:980:27:980:30 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:987:15:987:18 | SelfParam | | main.rs:937:5:940:5 | MyThing | +| main.rs:987:15:987:18 | SelfParam | A | main.rs:985:10:985:10 | T | +| main.rs:987:26:989:9 | { ... } | | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:16 | self | | main.rs:937:5:940:5 | MyThing | +| main.rs:988:13:988:16 | self | A | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:18 | self.a | | main.rs:985:10:985:10 | T | +| main.rs:996:15:996:18 | SelfParam | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:996:15:996:18 | SelfParam | A | main.rs:994:10:994:10 | T | +| main.rs:996:35:998:9 | { ... } | | main.rs:937:5:940:5 | MyThing | +| main.rs:996:35:998:9 | { ... } | A | main.rs:994:10:994:10 | T | +| main.rs:997:13:997:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:997:13:997:33 | MyThing {...} | A | main.rs:994:10:994:10 | T | +| main.rs:997:26:997:29 | self | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:997:26:997:29 | self | A | main.rs:994:10:994:10 | T | +| main.rs:997:26:997:31 | self.a | | main.rs:994:10:994:10 | T | +| main.rs:1005:44:1005:44 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1005:57:1007:5 | { ... } | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1006:9:1006:9 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1006:9:1006:14 | x.m1() | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1009:56:1009:56 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1009:62:1013:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1011:13:1011:13 | a | | main.rs:937:5:940:5 | MyThing | +| main.rs:1011:13:1011:13 | a | A | main.rs:947:5:948:14 | S1 | +| main.rs:1011:17:1011:17 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1011:17:1011:22 | x.m1() | | main.rs:937:5:940:5 | MyThing | +| main.rs:1011:17:1011:22 | x.m1() | A | main.rs:947:5:948:14 | S1 | +| main.rs:1012:9:1012:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1012:26:1012:26 | a | | main.rs:937:5:940:5 | MyThing | +| main.rs:1012:26:1012:26 | a | A | main.rs:947:5:948:14 | S1 | +| main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1016:13:1016:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:13:1016:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1016:17:1016:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:17:1016:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1016:30:1016:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1017:13:1017:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:13:1017:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1017:17:1017:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:17:1017:33 | MyThing {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1017:30:1017:31 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1019:9:1019:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1019:26:1019:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1019:26:1019:31 | x.m1() | | main.rs:947:5:948:14 | S1 | +| main.rs:1020:9:1020:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1020:26:1020:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1020:26:1020:31 | y.m1() | | main.rs:949:5:950:14 | S2 | +| main.rs:1022:13:1022:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:13:1022:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1022:17:1022:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:17:1022:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1022:30:1022:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1023:13:1023:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:13:1023:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1023:17:1023:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:17:1023:33 | MyThing {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1023:30:1023:31 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1025:9:1025:32 | MacroExpr | | {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:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1025:26:1025:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1025:26:1025:31 | x.m2() | | main.rs:947:5:948:14 | S1 | +| main.rs:1026:9:1026:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1026:26:1026:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1026:26:1026:31 | y.m2() | | main.rs:949:5:950:14 | S2 | +| main.rs:1028:13:1028:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:13:1028:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1028:31:1028:32 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1029:13:1029:13 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:13:1029:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1029:31:1029:32 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1031:9:1031:32 | MacroExpr | | {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:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1031:26:1031:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1031:26:1031:31 | x.m3() | | main.rs:947:5:948:14 | S1 | +| main.rs:1032:9:1032:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1032:26:1032:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1032:26:1032:31 | y.m3() | | main.rs:949:5:950:14 | S2 | +| main.rs:1034:13:1034:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:13:1034:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1034:17:1034:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:17:1034:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1034:30:1034:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:13:1035:13 | s | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:17:1035:32 | call_trait_m1(...) | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:31:1035:31 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1035:31:1035:31 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1037:13:1037:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:13:1037:13 | x | A | main.rs:949:5:950:14 | S2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1037:31:1037:32 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1038:13:1038:13 | s | | main.rs:937:5:940:5 | MyThing | +| main.rs:1038:13:1038:13 | s | A | main.rs:949:5:950:14 | S2 | +| main.rs:1038:17:1038:32 | call_trait_m1(...) | | main.rs:937:5:940:5 | MyThing | +| main.rs:1038:17:1038:32 | call_trait_m1(...) | A | main.rs:949:5:950:14 | S2 | +| main.rs:1038:31:1038:31 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1038:31:1038:31 | x | A | main.rs:949:5:950:14 | S2 | +| main.rs:1055:22:1055:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1055:22:1055:22 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1055:35:1057:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1055:35:1057:5 | { ... } | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1056:9:1056:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1056:9:1056:9 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1060:17:1060:20 | SelfParam | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1060:29:1062:9 | { ... } | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1061:13:1061:14 | S2 | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1065:21:1065:21 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1068:5:1070:5 | { ... } | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1069:9:1069:9 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1069:9:1069:16 | x.into() | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1072:16:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1073:13:1073:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1073:17:1073:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:9:1074:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1074:26:1074:31 | id(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1074:29:1074:30 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:30:1074:30 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1076:13:1076:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1076:17:1076:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:9:1077:38 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1077:35:1077:36 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:36:1077:36 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1079:13:1079:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1079:17:1079:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1081:9:1081:45 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | +| main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1081:42:1081:43 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1081:43:1081:43 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1083:13:1083:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1083:17:1083:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1084:9:1084:25 | into::<...>(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1084:24:1084:24 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1086:13:1086:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1086:17:1086:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1087:13:1087:13 | y | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:21:1087:27 | into(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:26:1087:26 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1101:22:1101:25 | SelfParam | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1101:22:1101:25 | SelfParam | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1101:22:1101:25 | SelfParam | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1101:35:1108:9 | { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:13:1107:13 | match self { ... } | | file://:0:0:0:0 | ! | +| main.rs:1102:13:1107:13 | match self { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:19:1102:22 | self | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1102:19:1102:22 | self | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1102:19:1102:22 | self | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:43:1103:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1103:50:1103:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1103:50:1103:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1104:37:1104:37 | _ | | main.rs:1100:10:1100:12 | Fst | +| main.rs:1104:43:1104:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1104:50:1104:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1104:50:1104:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1105:37:1105:39 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1105:45:1105:47 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:38:1106:38 | _ | | main.rs:1100:10:1100:12 | Fst | +| main.rs:1106:41:1106:43 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:49:1106:51 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1132:10:1132:10 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1132:30:1135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1133:13:1133:13 | x | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:17 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:41 | ... .unwrapSnd() | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1134:9:1134:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1134:26:1134:26 | x | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:13:1147:14 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:13:1147:14 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1147:47:1147:48 | S1 | | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:51:1147:52 | S2 | | main.rs:1114:5:1115:14 | S2 | +| main.rs:1148:9:1148:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:13:1151:14 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:13:1151:14 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:13:1151:14 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1152:9:1152:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:13:1155:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1155:54:1155:55 | S3 | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1156:9:1156:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1156:26:1156:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1159:13:1159:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:13:1159:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1160:9:1160:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:9:1162:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:51:1162:52 | S3 | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1164:13:1164:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1164:13:1164:13 | x | E | main.rs:1111:5:1112:14 | S1 | +| main.rs:1164:13:1164:13 | x | T | main.rs:1137:5:1137:34 | S4 | +| main.rs:1164:13:1164:13 | x | T.T41 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1164:13:1164:13 | x | T.T42 | main.rs:1139:5:1139:22 | S5 | +| main.rs:1164:13:1164:13 | x | T.T42.T5 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1177:16:1177:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1177:16:1177:24 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1177:27:1177:31 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:21:1179:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1179:21:1179:29 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1179:32:1179:36 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:42:1181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1180:13:1180:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1180:13:1180:16 | self | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1180:13:1180:27 | self.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1180:22:1180:26 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1186:16:1186:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut.T | main.rs:1184:10:1184:10 | T | +| main.rs:1186:27:1186:31 | value | | main.rs:1184:10:1184:10 | T | +| main.rs:1186:37:1186:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1190:26:1192:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1190:26:1192:9 | { ... } | T | main.rs:1189:10:1189:10 | T | +| main.rs:1191:13:1191:30 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1191:13:1191:30 | ...::MyNone(...) | T | main.rs:1189:10:1189:10 | T | +| main.rs:1196:20:1196:23 | SelfParam | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1196:41:1201:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:41:1201:9 | { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:13:1200:13 | match self { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:13:1200:13 | match self { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:19:1197:22 | self | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1198:39:1198:56 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:39:1198:56 | ...::MyNone(...) | T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:17:1199:35 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:17:1199:35 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:17:1199:35 | ...::MySome(...) | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:34:1199:34 | x | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:34:1199:34 | x | T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:40:1199:40 | x | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:40:1199:40 | x | T | main.rs:1195:10:1195:10 | T | +| main.rs:1207:16:1252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1208:13:1208:14 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:13:1208:14 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1208:18:1208:37 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:18:1208:37 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1209:9:1209:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:17:1211:18 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:22:1211:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:22:1211:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1212:9:1212:10 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1212:9:1212:10 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1212:9:1212:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1212:16:1212:16 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1213:9:1213:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| 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:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1213:26:1213:27 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:17:1215:18 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1215:22:1215:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:22:1215:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1216:9:1216:10 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1216:9:1216:10 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1216:9:1216:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1216:21:1216:21 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1217:9:1217:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1217:26:1217:27 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:17:1219:18 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1219:22:1219:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:22:1219:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:9:1220:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:23:1220:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1220:23:1220:29 | &mut x4 | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:23:1220:29 | &mut x4 | TRefMut.T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:28:1220:29 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:28:1220:29 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:32:1220:32 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1221:9:1221:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1221:26:1221:27 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:13:1223:14 | x5 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:13:1223:14 | x5 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:13:1223:14 | x5 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:18:1223:58 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:18:1223:58 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:18:1223:58 | ...::MySome(...) | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:35:1223:57 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:35:1223:57 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1224:9:1224:38 | MacroExpr | | {EXTERNAL LOCATION} | () | +| 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:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:26:1224:27 | x5 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:27 | x5 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:27 | x5 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1224:26:1224:37 | x5.flatten() | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:37 | x5.flatten() | T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:13:1226:14 | x6 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:13:1226:14 | x6 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:13:1226:14 | x6 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:18:1226:58 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:18:1226:58 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:18:1226:58 | ...::MySome(...) | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:35:1226:57 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:35:1226:57 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1227:9:1227:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | 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: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:9:1228:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1233:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1234:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1239:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1240:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1282:32 | MacroExpr | | {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: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:9:1285:38 | MacroExpr | | {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: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:9:1289:45 | MacroExpr | | {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: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:9:1342:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1373:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1377:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1381:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1385:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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} | &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} | &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} | &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} | &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 | -| 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:9:1436:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:27 | { ... } | | {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:9:1440:28 | MacroExpr | | {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:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:27 | { ... } | | {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:9:1444:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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} | &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 | -| main.rs:1448:9:1448:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1451:38 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1454:62 | MacroExpr | | {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:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:61 | { ... } | | {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:9:1462:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1469:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:9:1478:35 | MacroExpr | | {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: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:9:1529:33 | MacroExpr | | {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:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| 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:9:1533:33 | MacroExpr | | {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:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| 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:9:1534:33 | MacroExpr | | {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: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:9:1538:42 | MacroExpr | | {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: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:9:1539:42 | MacroExpr | | {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:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:41 | { ... } | | {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:9:1543:33 | MacroExpr | | {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: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:9:1544:33 | MacroExpr | | {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: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:9:1548:33 | MacroExpr | | {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: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:9:1549:30 | MacroExpr | | {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: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:9:1554:36 | MacroExpr | | {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: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:9:1560:28 | MacroExpr | | {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: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:9:1571:27 | MacroExpr | | {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: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:9:1576:27 | MacroExpr | | {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: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} | &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} | &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} | &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 | -| 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} | &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:9:1674:30 | MacroExpr | | {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: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:13:1716:31 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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: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:13:1725:36 | MacroExpr | | {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: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:13:1729:36 | MacroExpr | | {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: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:13:1733:36 | MacroExpr | | {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: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:13:1737:36 | MacroExpr | | {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: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: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: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: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} | [] | -| 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: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 | 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 | 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: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: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} | (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: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} | (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 | 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 | 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: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: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} | & | -| 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: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: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: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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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} | &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} | &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} | &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 | -| 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: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} | &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 | -| 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} | &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} | &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 | -| 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: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} | &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 | -| 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:17:2845:37 | MacroExpr | | {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: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:17:2849:52 | MacroExpr | | {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: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:17:2858:60 | MacroExpr | | {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: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:13:2905:20 | pathbuf2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2905:13:2905:20 | pathbuf2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2905:13:2905:20 | pathbuf2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:13:2906:20 | pathbuf3 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:24:2906:31 | pathbuf2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2906:24:2906:31 | pathbuf2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2906:24:2906:31 | pathbuf2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:24:2906:40 | pathbuf2.unwrap() | | 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:9:2982:30 | MacroExpr | | {EXTERNAL LOCATION} | () | -| 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:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| 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:9:2997:30 | MacroExpr | | {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: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} | () | +| main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1227:59:1227:60 | x6 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:59:1227:60 | x6 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:59:1227:60 | x6 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:13:1230:19 | from_if | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:13:1230:19 | from_if | T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:23:1234:9 | if ... {...} else {...} | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:23:1234:9 | if ... {...} else {...} | T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:26:1230:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1230:26:1230:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1230:30:1230:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1230:32:1232:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:32:1232:9 | { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1231:13:1231:30 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1231:13:1231:30 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1232:16:1234:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1232:16:1234:9 | { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1233:13:1233:31 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1233:13:1233:31 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1233:30:1233:30 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1235:9:1235:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1235:26:1235:32 | from_if | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1235:26:1235:32 | from_if | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:13:1238:22 | from_match | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1238:13:1238:22 | from_match | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:26:1241:9 | match ... { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1238:26:1241:9 | match ... { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:32:1238:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1238:32:1238:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1238:36:1238:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1239:13:1239:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1239:21:1239:38 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1239:21:1239:38 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1240:13:1240:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1240:22:1240:40 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1240:22:1240:40 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1240:39:1240:39 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1242:9:1242:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1242:26:1242:35 | from_match | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1242:26:1242:35 | from_match | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:13:1245:21 | from_loop | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1245:13:1245:21 | from_loop | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:25:1250:9 | loop { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1245:25:1250:9 | loop { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:30:1250:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1246:13:1248:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1246:16:1246:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1246:16:1246:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1246:20:1246:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1246:22:1248:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1247:23:1247:40 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1247:23:1247:40 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1249:19:1249:37 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1249:19:1249:37 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1249:36:1249:36 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1251:9:1251:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:26:1251:34 | from_loop | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1251:26:1251:34 | from_loop | T | main.rs:1204:5:1205:13 | S | +| main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | +| main.rs:1269:15:1269:18 | SelfParam | T | main.rs:1268:10:1268:10 | T | +| main.rs:1269:26:1271:9 | { ... } | | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:16 | self | | main.rs:1257:5:1258:19 | S | +| main.rs:1270:13:1270:16 | self | T | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:18 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1273:15:1273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1273:15:1273:19 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1273:15:1273:19 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:28:1275:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1273:28:1275:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:13:1274:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1274:13:1274:19 | &... | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:14:1274:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1274:14:1274:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1274:14:1274:19 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1277:15:1277:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1277:15:1277:25 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1277:15:1277:25 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:34:1279:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1277:34:1279:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:13:1278:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1278:13:1278:19 | &... | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:14:1278:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1278:14:1278:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1278:14:1278:19 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1283:29:1283:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1283:29:1283:33 | SelfParam | TRef | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1284:33:1284:36 | SelfParam | | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1290:29:1290:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1290:43:1292:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:13:1291:22 | (...) | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:13:1291:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:14:1291:21 | * ... | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:15:1291:21 | (...) | | {EXTERNAL LOCATION} | & | +| main.rs:1291:15:1291:21 | (...) | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:16:1291:20 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1291:16:1291:20 | * ... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:17:1291:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:33:1295:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1295:33:1295:36 | SelfParam | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:46:1297:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:13:1296:19 | (...) | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1296:13:1296:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:14:1296:18 | * ... | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1296:15:1296:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1296:15:1296:18 | self | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1300:16:1350:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1301:13:1301:14 | x1 | | main.rs:1257:5:1258:19 | S | +| main.rs:1301:13:1301:14 | x1 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1301:18:1301:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1301:18:1301:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1301:20:1301:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1302:9:1302:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:26:1302:27 | x1 | | main.rs:1257:5:1258:19 | S | +| main.rs:1302:26:1302:27 | x1 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1302:26:1302:32 | x1.m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:13:1304:14 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1304:13:1304:14 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:18:1304:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1304:18:1304:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:20:1304:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1306:9:1306:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:26:1306:27 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1306:26:1306:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1306:26:1306:32 | x2.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1306:26:1306:32 | x2.m2() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1307:9:1307:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:26:1307:27 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1307:26:1307:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1307:26:1307:32 | x2.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1307:26:1307:32 | x2.m3() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:13:1309:14 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1309:13:1309:14 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:18:1309:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1309:18:1309:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:20:1309:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:9:1311:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1311:38:1311:40 | &x3 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1311:38:1311:40 | &x3 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:39:1311:40 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1311:39:1311:40 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:9:1312:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1312:38:1312:40 | &x3 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1312:38:1312:40 | &x3 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:39:1312:40 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1312:39:1312:40 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:13:1314:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:13:1314:14 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1314:13:1314:14 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:18:1314:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1314:18:1314:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1314:18:1314:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:19:1314:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1314:19:1314:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:21:1314:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1316:9:1316:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1316:26:1316:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1316:26:1316:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1316:26:1316:32 | x4.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1316:26:1316:32 | x4.m2() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1317:9:1317:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1317:26:1317:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1317:26:1317:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1317:26:1317:32 | x4.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1317:26:1317:32 | x4.m3() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:13:1319:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:13:1319:14 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1319:13:1319:14 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:18:1319:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1319:18:1319:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1319:18:1319:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:19:1319:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1319:19:1319:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:21:1319:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1321:9:1321:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1321:26:1321:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1321:26:1321:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1321:26:1321:32 | x5.m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1322:9:1322:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1322:26:1322:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1322:26:1322:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1322:26:1322:29 | x5.0 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:13:1324:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:13:1324:14 | x6 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1324:13:1324:14 | x6 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:18:1324:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1324:18:1324:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1324:18:1324:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:19:1324:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1324:19:1324:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:21:1324:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:9:1327:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| 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:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:26:1327:30 | (...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1327:26:1327:30 | (...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:26:1327:35 | ... .m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:27:1327:29 | * ... | | main.rs:1257:5:1258:19 | S | +| main.rs:1327:27:1327:29 | * ... | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:28:1327:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1327:28:1327:29 | x6 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1327:28:1327:29 | x6 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:13:1329:14 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1329:13:1329:14 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1329:13:1329:14 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:18:1329:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1329:18:1329:23 | S(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1329:18:1329:23 | S(...) | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:20:1329:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1329:20:1329:22 | &S2 | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:21:1329:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:13:1332:13 | t | | {EXTERNAL LOCATION} | & | +| main.rs:1332:13:1332:13 | t | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:17:1332:18 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1332:17:1332:18 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1332:17:1332:18 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:17:1332:23 | x7.m1() | | {EXTERNAL LOCATION} | & | +| main.rs:1332:17:1332:23 | x7.m1() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1333:9:1333:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1333:26:1333:27 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1333:26:1333:27 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1333:26:1333:27 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1335:13:1335:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1335:26:1335:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1335:26:1335:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1335:26:1335:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1339:13:1339:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1339:13:1339:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1339:17:1339:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1339:17:1339:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1339:17:1339:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1341:13:1341:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1341:13:1341:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:24:1341:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1341:24:1341:39 | &... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:25:1341:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:36:1341:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1343:13:1343:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1343:17:1343:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1343:17:1343:24 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1343:17:1343:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1344:9:1344:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1344:26:1344:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1347:13:1347:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:24:1347:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1347:24:1347:39 | &... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:25:1347:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:36:1347:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1348:13:1348:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1348:17:1348:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1348:17:1348:24 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1348:17:1348:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1349:9:1349:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1349:26:1349:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:16:1359:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1359:16:1359:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:32:1361:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1359:32:1361:9 | { ... } | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:16 | self | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:22 | self.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:22 | self.foo() | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1368:16:1368:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1368:16:1368:20 | SelfParam | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1368:36:1370:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1368:36:1370:9 | { ... } | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1369:13:1369:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1369:13:1369:16 | self | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1373:16:1376:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1374:13:1374:13 | x | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1374:17:1374:24 | MyStruct | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1375:9:1375:9 | x | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1375:9:1375:15 | x.bar() | | {EXTERNAL LOCATION} | & | +| main.rs:1375:9:1375:15 | x.bar() | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1385:16:1385:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1385:32:1387:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1385:32:1387:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:32:1387:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1386:13:1386:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1386:13:1386:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1386:13:1386:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:16:1389:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1389:16:1389:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:16:1389:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:23:1389:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1389:23:1389:23 | x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:23:1389:23 | x | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:42:1391:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1389:42:1391:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:42:1391:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1390:13:1390:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1390:13:1390:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1390:13:1390:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1394:16:1400:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1395:13:1395:13 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1395:13:1395:13 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1395:17:1395:27 | MyStruct(...) | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1395:17:1395:27 | MyStruct(...) | T | main.rs:1380:5:1380:13 | S | +| main.rs:1395:26:1395:26 | S | | main.rs:1380:5:1380:13 | S | +| main.rs:1396:9:1396:9 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1396:9:1396:9 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1396:9:1396:15 | x.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1396:9:1396:15 | x.foo() | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1396:9:1396:15 | x.foo() | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:13:1397:13 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1397:13:1397:13 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:17:1397:27 | MyStruct(...) | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1397:17:1397:27 | MyStruct(...) | T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:26:1397:26 | S | | main.rs:1380:5:1380:13 | S | +| main.rs:1399:9:1399:9 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:9:1399:9 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:9:1399:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1399:9:1399:18 | x.bar(...) | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:9:1399:18 | x.bar(...) | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:15:1399:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1399:15:1399:17 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1399:15:1399:17 | &... | TRef.TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:15:1399:17 | &... | TRef.TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:16:1399:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1399:16:1399:17 | &x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:16:1399:17 | &x | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:17:1399:17 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:17:1399:17 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1410:17:1410:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1410:17:1410:25 | SelfParam | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1410:28:1412:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1411:13:1411:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:13:1411:16 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:13:1411:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1411:13:1411:34 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1411:25:1411:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1411:26:1411:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:26:1411:29 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:26:1411:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1418:15:1418:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1418:15:1418:19 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1418:31:1420:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1418:31:1420:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:14:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:15:1419:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:16:1419:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:15:1422:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1422:15:1422:25 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:37:1424:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1422:37:1424:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:14:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:15:1423:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:16:1423:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:15:1426:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1426:15:1426:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:34:1428:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1426:34:1428:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1427:13:1427:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1427:13:1427:13 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:15:1430:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1430:15:1430:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:34:1432:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1430:34:1432:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:14:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:15:1431:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:16:1431:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1435:16:1448:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:13:1436:13 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1436:17:1436:20 | S {...} | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:14 | x.f1() | | {EXTERNAL LOCATION} | & | +| main.rs:1437:9:1437:14 | x.f1() | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:14 | x.f2() | | {EXTERNAL LOCATION} | & | +| main.rs:1438:9:1438:14 | x.f2() | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:9:1439:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1439:9:1439:17 | ...::f3(...) | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:15:1439:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1439:15:1439:16 | &x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:16:1439:16 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1441:13:1441:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1441:17:1441:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1441:18:1441:24 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:18:1441:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:19:1441:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:19:1441:24 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1441:19:1441:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:20:1441:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1441:20:1441:24 | &true | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:21:1441:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1445:17:1445:20 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1445:24:1445:41 | ...::default(...) | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1446:9:1446:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1446:22:1446:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1446:22:1446:30 | &mut flag | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1446:27:1446:30 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1447:9:1447:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| 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:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1447:26:1447:29 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1462:43:1465:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:13:1463:13 | x | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:17:1463:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1463:17:1463:30 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:17:1463:31 | TryExpr | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:28:1463:29 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:9:1464:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1464:9:1464:22 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:9:1464:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:20:1464:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1469:46:1473:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1469:46:1473:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1469:46:1473:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:13:1470:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1470:13:1470:13 | x | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:17:1470:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1470:17:1470:30 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:28:1470:29 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:13:1471:13 | y | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:17:1471:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1471:17:1471:17 | x | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:17:1471:18 | TryExpr | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1472:9:1472:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1472:9:1472:22 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1472:9:1472:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1472:20:1472:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1477:40:1482:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1477:40:1482:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1477:40:1482:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:13:1478:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:13:1478:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1478:13:1478:13 | x | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:17:1478:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:17:1478:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1478:17:1478:42 | ...::Ok(...) | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:28:1478:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:28:1478:41 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:39:1478:40 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:17 | x | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:18 | TryExpr | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:24:1480:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1480:24:1480:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1481:9:1481:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1481:9:1481:22 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1481:9:1481:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1481:20:1481:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:30:1486:34 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1486:69:1493:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:69:1493:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:69:1493:5 | { ... } | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:13:1487:17 | value | | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1487:21:1487:25 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1487:21:1487:25 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:26 | TryExpr | | main.rs:1486:20:1486:27 | T | +| main.rs:1488:22:1488:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:22:1488:38 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:22:1488:38 | ...::Ok(...) | T | main.rs:1486:20:1486:27 | T | +| main.rs:1488:22:1491:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:22:1491:10 | ... .and_then(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:33:1488:37 | value | | main.rs:1486:20:1486:27 | T | +| main.rs:1488:49:1491:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output).E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:53:1491:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:53:1491:9 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1489:13:1489:31 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1492:9:1492:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1492:9:1492:23 | ...::Err(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1492:9:1492:23 | ...::Err(...) | T | main.rs:1486:20:1486:27 | T | +| main.rs:1492:21:1492:22 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1496:16:1512:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1497:9:1499:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1497:16:1497:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:16:1497:33 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:16:1497:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:27:1497:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:37:1497:52 | try_same_error(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:54:1499:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:13:1498:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:30:1498:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1501:16:1501:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:16:1501:33 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:16:1501:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:27:1501:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:37:1501:55 | try_convert_error(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:57:1503:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:13:1502:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:30:1502:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1505:16:1505:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:16:1505:33 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:16:1505:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:27:1505:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:37:1505:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:37:1505:49 | try_chained(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:37:1505:49 | try_chained(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:51:1507:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:13:1506:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:30:1506:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1509:16:1509:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:16:1509:33 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:16:1509:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:27:1509:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:37:1509:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:37:1509:63 | try_complex(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:37:1509:63 | try_complex(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:49:1509:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:49:1509:62 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:49:1509:62 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:60:1509:61 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:65:1511:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:13:1510:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:30:1510:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1517:22:1517:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1518:13:1518:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1518:17:1518:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:13:1519:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:21:1519:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:13:1520:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1521:13:1521:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1521:17:1521:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1522:13:1522:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1522:13:1522:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1522:21:1522:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1522:21:1522:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:13:1523:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1523:17:1523:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1524:13:1524:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1524:17:1524:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:13:1525:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:17:1525:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1528:26:1528:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:30 | SelfParam | TRef | main.rs:1527:9:1531:9 | Self [trait MyTrait] | +| main.rs:1534:26:1534:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1534:26:1534:30 | SelfParam | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1534:39:1536:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1534:39:1536:13 | { ... } | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1535:17:1535:20 | self | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:36 | ... .unwrap() | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:26:1535:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1538:31:1540:13 | { ... } | | main.rs:1533:14:1533:23 | T | +| main.rs:1539:17:1539:28 | ...::default(...) | | main.rs:1533:14:1533:23 | T | +| main.rs:1543:13:1543:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1543:13:1543:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:17:1543:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1543:17:1543:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:17:1543:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1543:17:1543:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:18:1543:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:21:1543:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:24:1543:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:13:1544:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1544:13:1544:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:17:1544:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:22:1544:22 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:37:1544:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1544:37:1544:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:37:1544:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:38:1544:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:38:1544:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:39:1544:39 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:42:1544:42 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:45:1544:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:13:1545:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:17:1545:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:24:1545:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1548:26:1548:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1548:26:1548:30 | SelfParam | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1548:39:1550:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1548:39:1550:13 | { ... } | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1549:17:1549:20 | self | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1549:17:1549:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:36 | ... .unwrap() | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:26:1549:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1552:31:1554:13 | { ... } | | main.rs:1547:14:1547:23 | T | +| main.rs:1553:17:1553:28 | ...::default(...) | | main.rs:1547:14:1547:23 | T | +| main.rs:1557:13:1557:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1557:13:1557:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:13:1557:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1557:25:1557:34 | &... | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:25:1557:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1557:25:1557:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:26:1557:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1557:26:1557:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:27:1557:27 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:30:1557:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:33:1557:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:13:1558:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1558:13:1558:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:17:1558:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1558:17:1558:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:17:1558:29 | s.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:13:1559:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1559:13:1559:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:17:1559:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:34:1559:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1559:34:1559:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:13:1560:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:17:1560:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:26:1563:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1563:26:1563:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:39:1565:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1563:39:1565:13 | { ... } | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:17:1564:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1564:17:1564:23 | &... | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1564:18:1564:21 | self | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1564:18:1564:23 | self.0 | | main.rs:1562:14:1562:23 | T | +| main.rs:1567:31:1569:13 | { ... } | | main.rs:1562:14:1562:23 | T | +| main.rs:1568:17:1568:28 | ...::default(...) | | main.rs:1562:14:1562:23 | T | +| main.rs:1572:13:1572:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:13:1572:13 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:13:1572:13 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:17:1572:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:17:1572:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:17:1572:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:18:1572:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:22:1572:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:13:1573:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1573:13:1573:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1573:17:1573:17 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:17 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:29 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1573:17:1573:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:13:1574:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1574:13:1574:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:17:1574:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1574:17:1574:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:37:1574:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1574:37:1574:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:37:1574:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:37:1574:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:38:1574:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:38:1574:38 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:38:1574:38 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:13:1575:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:17:1575:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1578:26:1578:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1578:39:1580:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1578:39:1580:13 | { ... } | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:17:1579:21 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1579:17:1579:21 | * ... | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:18:1579:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1582:31:1584:13 | { ... } | | main.rs:1577:14:1577:23 | T | +| main.rs:1583:17:1583:28 | ...::default(...) | | main.rs:1577:14:1577:23 | T | +| main.rs:1587:13:1587:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:13 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1587:17:1587:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1587:17:1587:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1587:18:1587:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:13:1588:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1588:13:1588:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:17:1588:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:17 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:17:1588:29 | r.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:13:1589:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1589:13:1589:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:17:1589:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1589:17:1589:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:33:1589:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:34:1589:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:34:1589:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:13:1590:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:17:1590:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1593:26:1593:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1593:26:1593:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1593:26:1593:30 | SelfParam | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1593:39:1595:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1593:39:1595:13 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:17:1594:34 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1594:17:1594:34 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:26:1594:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1594:26:1594:32 | &... | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:27:1594:32 | * ... | | main.rs:1592:14:1592:23 | T | +| main.rs:1594:28:1594:32 | * ... | | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:28:1594:32 | * ... | TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1594:29:1594:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:29:1594:32 | self | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1597:31:1599:13 | { ... } | | main.rs:1592:14:1592:23 | T | +| main.rs:1598:17:1598:28 | ...::default(...) | | main.rs:1592:14:1592:23 | T | +| main.rs:1602:17:1602:17 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1602:21:1602:22 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:13:1603:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1603:13:1603:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:27:1603:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1603:27:1603:32 | &mut v | TRefMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:32:1603:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:13:1604:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1604:13:1604:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:17:1604:40 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1604:17:1604:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:26:1604:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1604:26:1604:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:26:1604:38 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1604:26:1604:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:13:1605:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1605:13:1605:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:17:1605:50 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1605:17:1605:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:26:1605:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1605:26:1605:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:46:1605:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1605:46:1605:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:46:1605:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:47:1605:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:47:1605:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:13:1606:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:17:1606:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1612:16:1624:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1613:13:1613:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:25:1613:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:13:1614:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:25:1614:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1616:17:1616:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1617:13:1617:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1617:20:1617:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1617:20:1617:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1617:26:1617:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1618:9:1622:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1618:12:1618:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1618:17:1620:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1619:17:1619:17 | z | | {EXTERNAL LOCATION} | () | +| main.rs:1619:21:1619:27 | (...) | | {EXTERNAL LOCATION} | () | +| main.rs:1619:22:1619:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1619:22:1619:26 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1619:26:1619:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1620:16:1622:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1621:13:1621:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1621:13:1621:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1621:17:1621:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1623:9:1623:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1637:30:1639:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:13:1638:31 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:23:1638:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1638:29:1638:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1645:16:1645:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:22:1645:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:41:1650:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1646:13:1649:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:20:1647:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:29:1647:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:29:1647:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:20:1648:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:20:1648:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:20:1648:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:29:1648:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:29:1648:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1655:23:1655:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1655:23:1655:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:34:1655:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:45:1658:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1656:13:1656:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1656:13:1656:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:13:1656:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1656:13:1656:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1656:23:1656:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:23:1656:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1657:13:1657:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1657:13:1657:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:13:1657:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1657:13:1657:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1657:23:1657:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:23:1657:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1663:16:1663:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:22:1663:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:41:1668:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1664:13:1667:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1665:20:1665:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1665:29:1665:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:29:1665:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:20:1666:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:20:1666:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:20:1666:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:29:1666:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:29:1666:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1673:23:1673:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:23:1673:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:34:1673:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:45:1676:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:13:1674:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1674:13:1674:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:13:1674:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1674:13:1674:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1674:23:1674:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:23:1674:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1675:13:1675:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1675:13:1675:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:13:1675:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1675:13:1675:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1675:23:1675:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:23:1675:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1681:16:1681:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:22:1681:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:41:1686:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1682:13:1685:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1683:20:1683:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1683:29:1683:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:29:1683:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:20:1684:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:20:1684:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:20:1684:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:29:1684:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:29:1684:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1690:23:1690:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1690:23:1690:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:34:1690:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:45:1693:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1691:13:1691:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1691:13:1691:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:13:1691:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1691:13:1691:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1691:23:1691:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:23:1691:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1692:13:1692:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1692:13:1692:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:13:1692:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1692:13:1692:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1692:23:1692:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:23:1692:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1698:16:1698:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:22:1698:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:41:1703:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1699:13:1702:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1700:20:1700:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1700:29:1700:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:29:1700:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:20:1701:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:20:1701:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:20:1701:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:29:1701:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:29:1701:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1707:23:1707:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1707:23:1707:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:34:1707:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:45:1710:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1708:13:1708:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1708:13:1708:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:13:1708:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1708:13:1708:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1708:23:1708:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:23:1708:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1709:13:1709:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1709:13:1709:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:13:1709:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1709:13:1709:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1709:23:1709:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:23:1709:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1715:16:1715:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:22:1715:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:41:1720:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1716:13:1719:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1717:20:1717:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1717:29:1717:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:29:1717:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:20:1718:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:20:1718:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:20:1718:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:29:1718:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:29:1718:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1724:23:1724:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1724:23:1724:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:34:1724:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:45:1727:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:13:1725:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1725:13:1725:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:13:1725:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1725:13:1725:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1725:23:1725:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:23:1725:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1726:13:1726:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1726:13:1726:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:13:1726:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1726:13:1726:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1726:23:1726:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:23:1726:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1732:19:1732:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:25:1732:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:44:1737:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1733:13:1736:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1734:20:1734:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1734:29:1734:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:29:1734:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:20:1735:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:20:1735:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:20:1735:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:29:1735:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:29:1735:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1741:26:1741:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1741:26:1741:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:37:1741:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:48:1744:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1742:13:1742:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1742:13:1742:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:13:1742:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1742:13:1742:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1742:23:1742:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:23:1742:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1743:13:1743:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1743:13:1743:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:13:1743:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1743:13:1743:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1743:23:1743:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:23:1743:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1749:18:1749:21 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:24:1749:26 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:43:1754:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1750:13:1753:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:20:1751:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:29:1751:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:29:1751:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:20:1752:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:20:1752:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:20:1752:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:29:1752:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:29:1752:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1758:25:1758:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1758:25:1758:33 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:36:1758:38 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:47:1761:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1759:13:1759:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1759:13:1759:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:13:1759:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1759:13:1759:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1759:23:1759:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:23:1759:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1760:13:1760:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:13:1760:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1760:23:1760:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:23:1760:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:19:1766:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:25:1766:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:44:1771:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1767:13:1770:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1768:20:1768:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1768:29:1768:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:29:1768:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:20:1769:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:20:1769:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:20:1769:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:29:1769:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:29:1769:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1775:26:1775:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1775:26:1775:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:37:1775:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:48:1778:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1776:13:1776:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1776:13:1776:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:13:1776:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1776:13:1776:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1776:23:1776:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:23:1776:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1777:13:1777:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1777:13:1777:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:13:1777:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1777:13:1777:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1777:23:1777:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:23:1777:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1783:16:1783:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:22:1783:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1783:40:1788:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1784:13:1787:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1785:20:1785:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1785:30:1785:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1786:20:1786:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1786:20:1786:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:20:1786:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:30:1786:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:23:1792:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1792:23:1792:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1792:34:1792:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:44:1795:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1793:13:1793:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1793:13:1793:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1793:13:1793:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1793:13:1793:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1793:24:1793:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1794:13:1794:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1794:13:1794:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1794:13:1794:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1794:13:1794:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1794:24:1794:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:16:1800:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1800:22:1800:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:40:1805:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1801:13:1804:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1802:20:1802:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1802:30:1802:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1803:20:1803:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1803:20:1803:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:20:1803:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:30:1803:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:23:1809:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1809:23:1809:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1809:34:1809:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:44:1812:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1810:13:1810:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1810:13:1810:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1810:13:1810:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1810:13:1810:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1810:24:1810:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1811:13:1811:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1811:13:1811:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1811:13:1811:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1811:13:1811:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1811:24:1811:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1817:16:1817:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1817:30:1822:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1818:13:1821:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:20:1819:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1819:21:1819:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:21:1819:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:20:1820:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:21:1820:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1820:21:1820:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1827:16:1827:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:30:1832:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1828:13:1831:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:20:1829:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1829:21:1829:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:21:1829:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1830:20:1830:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1830:21:1830:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1830:21:1830:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1836:15:1836:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1836:15:1836:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:22:1836:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1836:22:1836:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:44:1838:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:13:1837:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:13:1837:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:13:1837:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:23:1837:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:23:1837:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:23:1837:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:34:1837:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:34:1837:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:34:1837:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:44:1837:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:44:1837:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:44:1837:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1840:15:1840:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1840:15:1840:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:22:1840:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1840:22:1840:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:44:1842:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:13:1841:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:13:1841:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:13:1841:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:23:1841:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:23:1841:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:23:1841:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:34:1841:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:34:1841:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:34:1841:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:44:1841:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:44:1841:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:44:1841:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1846:24:1846:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1846:24:1846:28 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:31:1846:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1846:31:1846:35 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:75:1848:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1846:75:1848:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:13:1847:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:13:1847:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1847:13:1847:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:14:1847:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:14:1847:17 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:14:1847:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:14:1847:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:23:1847:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:23:1847:26 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:23:1847:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:43:1847:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1847:43:1847:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:44:1847:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:45:1847:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:45:1847:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:45:1847:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:55:1847:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:55:1847:59 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:55:1847:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1850:15:1850:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1850:15:1850:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:22:1850:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1850:22:1850:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:44:1852:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:13:1851:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:13:1851:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:13:1851:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:22:1851:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:22:1851:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:22:1851:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:33:1851:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:33:1851:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:33:1851:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:42:1851:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:42:1851:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:42:1851:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:15:1854:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1854:15:1854:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:22:1854:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1854:22:1854:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:44:1856:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:13:1855:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:13:1855:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:13:1855:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:23:1855:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:23:1855:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:23:1855:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:34:1855:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:34:1855:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:34:1855:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:44:1855:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:44:1855:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:44:1855:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1858:15:1858:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1858:15:1858:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:22:1858:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1858:22:1858:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:44:1860:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:13:1859:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:13:1859:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:13:1859:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:22:1859:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:22:1859:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:22:1859:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:33:1859:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:33:1859:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:33:1859:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:42:1859:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:42:1859:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:42:1859:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1862:15:1862:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1862:15:1862:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:22:1862:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1862:22:1862:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:44:1864:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:13:1863:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:13:1863:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:13:1863:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:23:1863:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:23:1863:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:23:1863:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:34:1863:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:34:1863:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:34:1863:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:44:1863:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:44:1863:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:44:1863:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:26:1867:26 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1867:32:1867:32 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:9:1868:9 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:13:1868:13 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1871:16:2002:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1875:13:1875:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:22:1875:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:23:1875:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:23:1875:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:31:1875:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:13:1876:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:22:1876:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:23:1876:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:23:1876:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:31:1876:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:13:1877:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:22:1877:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:23:1877:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:23:1877:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:30:1877:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:13:1878:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:22:1878:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:23:1878:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:23:1878:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:31:1878:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:13:1879:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:22:1879:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:23:1879:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:23:1879:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:30:1879:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:13:1880:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:22:1880:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:23:1880:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:23:1880:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:32:1880:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:13:1883:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:31:1883:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:31:1884:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:13:1885:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:31:1885:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:13:1886:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:31:1886:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:13:1887:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:31:1887:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:39:1888:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:45:1888:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:17:1891:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:34:1891:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:31 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1892:27:1892:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:17:1894:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:34:1894:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:31 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1895:27:1895:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:17:1897:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:34:1897:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:31 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1898:27:1898:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:17:1900:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:34:1900:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:31 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1901:27:1901:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:17:1903:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:31 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1904:27:1904:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:13:1907:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:13:1908:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:33:1908:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:13:1909:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:34:1909:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:13:1910:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:32:1910:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:13:1911:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:32:1911:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:17:1914:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:37:1914:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:34 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1915:30:1915:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:17:1917:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:36:1917:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1918:29:1918:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:17:1920:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:37:1920:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1921:30:1921:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:17:1923:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:34:1923:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1924:28:1924:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:17:1926:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:34:1926:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1927:28:1927:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:13:1929:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:23:1929:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:24:1929:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:13:1930:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:23:1930:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:24:1930:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:13:1933:14 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:18:1933:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:28:1933:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1933:34:1933:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1934:13:1934:14 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:18:1934:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:28:1934:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1934:34:1934:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:13:1937:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1937:23:1937:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:23:1937:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1937:29:1937:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:13:1938:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1938:23:1938:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:23:1938:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1938:29:1938:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:13:1939:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1939:23:1939:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:23:1939:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1939:28:1939:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:13:1940:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:23:1940:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:23:1940:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:29:1940:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:13:1941:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:23:1941:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:23:1941:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:28:1941:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:13:1942:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:23:1942:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:23:1942:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:29:1942:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:13:1945:20 | vec2_add | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:30 | ... + ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:29:1945:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:13:1946:20 | vec2_sub | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:30 | ... - ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:29:1946:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:13:1947:20 | vec2_mul | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:30 | ... * ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:29:1947:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:13:1948:20 | vec2_div | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:30 | ... / ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:29:1948:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:13:1949:20 | vec2_rem | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:30 | ... % ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:29:1949:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:17:1952:31 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:35:1952:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:23 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:29 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1953:28:1953:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:17:1955:31 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:35:1955:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:23 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:29 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1956:28:1956:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:17:1958:31 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:35:1958:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:23 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:29 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1959:28:1959:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:17:1961:31 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:35:1961:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:23 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:29 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1962:28:1962:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:17:1964:31 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:35:1964:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:23 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:29 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1965:28:1965:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:13:1968:23 | vec2_bitand | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:33 | ... & ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:32:1968:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:13:1969:22 | vec2_bitor | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:27 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:32 | ... \| ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:31:1969:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:13:1970:23 | vec2_bitxor | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:33 | ... ^ ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:32:1970:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:13:1971:20 | vec2_shl | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:33 | ... << ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:30:1971:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1972:13:1972:20 | vec2_shr | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:24:1972:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:24:1972:33 | ... >> ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:30:1972:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1975:17:1975:34 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1975:38:1975:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:26 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:32 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1976:31:1976:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:17:1978:33 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:37:1978:38 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:25 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1979:30:1979:31 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:17:1981:34 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:38:1981:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:26 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1982:31:1982:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:17:1984:31 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:35:1984:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:23 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1985:29:1985:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1987:17:1987:31 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1987:35:1987:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:23 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1988:29:1988:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1991:13:1991:20 | vec2_neg | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1991:24:1991:26 | - ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1991:25:1991:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:13:1992:20 | vec2_not | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:24:1992:26 | ! ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:25:1992:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1995:13:1995:24 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1995:28:1995:45 | ...::default(...) | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:13:1996:26 | vec2_zero_plus | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:63 | ... + ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:40:1996:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1996:46:1996:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1996:52:1996:63 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2000:13:2000:24 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2000:28:2000:45 | ...::default(...) | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:13:2001:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2001:30:2001:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:30:2001:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2001:40:2001:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2001:46:2001:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2001:53:2001:64 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2011:18:2011:21 | SelfParam | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2011:24:2011:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2014:25:2016:5 | { ... } | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2015:9:2015:10 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2018:41:2020:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2018:41:2020:5 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:9:2019:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2019:9:2019:20 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:17:2019:18 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2022:41:2024:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2022:41:2024:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2023:9:2023:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2032:13:2032:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2032:13:2032:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2032:13:2032:42 | SelfParam | Ptr.TRefMut | main.rs:2026:5:2026:14 | S2 | +| main.rs:2033:13:2033:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2033:13:2033:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2034:44:2036:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2034:44:2036:9 | { ... } | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2035:13:2035:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2035:13:2035:38 | ...::Ready(...) | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2035:36:2035:37 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2039:41:2041:5 | { ... } | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2040:9:2040:10 | S2 | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2043:22:2051:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2044:9:2044:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2044:9:2044:12 | f1(...) | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2044:9:2044:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2044:9:2044:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2045:9:2045:12 | f2(...) | | main.rs:2018:16:2018:39 | impl ... | +| main.rs:2045:9:2045:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2045:9:2045:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2046:9:2046:12 | f3(...) | | main.rs:2022:16:2022:39 | impl ... | +| main.rs:2046:9:2046:18 | await ... | | {EXTERNAL LOCATION} | () | +| main.rs:2047:9:2047:12 | f4(...) | | main.rs:2039:16:2039:39 | impl ... | +| main.rs:2047:9:2047:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2047:9:2047:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2048:9:2048:10 | S2 | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2048:9:2048:16 | await S2 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2048:9:2048:20 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2049:13:2049:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:13:2049:13 | b | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2049:17:2049:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:17:2049:28 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2049:25:2049:26 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2050:9:2050:9 | b | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:15 | await b | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:19 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2061:15:2061:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2061:15:2061:19 | SelfParam | TRef | main.rs:2060:5:2062:5 | Self [trait Trait1] | +| main.rs:2061:22:2061:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2065:15:2065:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2065:15:2065:19 | SelfParam | TRef | main.rs:2064:5:2066:5 | Self [trait Trait2] | +| main.rs:2065:22:2065:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2069:15:2069:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2069:15:2069:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2069:22:2069:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2073:15:2073:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:15:2073:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2073:22:2073:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2076:37:2078:5 | { ... } | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2077:9:2077:10 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2081:18:2081:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:18:2081:22 | SelfParam | TRef | main.rs:2080:5:2082:5 | Self [trait MyTrait] | +| main.rs:2085:18:2085:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:18:2085:22 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2085:31:2087:9 | { ... } | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2086:13:2086:14 | S2 | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2091:18:2091:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2091:18:2091:22 | SelfParam | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2091:18:2091:22 | SelfParam | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2091:30:2094:9 | { ... } | | main.rs:2090:10:2090:17 | T | +| main.rs:2092:17:2092:21 | S3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2092:17:2092:21 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:17:2092:21 | S3(...) | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:17:2092:21 | S3(...) | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2092:25:2092:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2092:25:2092:28 | self | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:25:2092:28 | self | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2093:13:2093:21 | t.clone() | | main.rs:2090:10:2090:17 | T | +| main.rs:2097:45:2099:5 | { ... } | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2098:9:2098:10 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2101:41:2101:41 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2101:52:2103:5 | { ... } | | main.rs:2101:23:2101:23 | A | +| main.rs:2102:9:2102:9 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2102:9:2102:17 | t.get_a() | | main.rs:2101:23:2101:23 | A | +| main.rs:2105:34:2105:34 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2105:59:2107:5 | { ... } | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2105:59:2107:5 | { ... } | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:9:2106:13 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2106:9:2106:13 | S3(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2106:9:2106:13 | S3(...) | T3 | main.rs:2105:24:2105:31 | T | +| main.rs:2106:9:2106:13 | S3(...) | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:12:2106:12 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2109:34:2109:34 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2109:67:2111:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2109:67:2111:5 | { ... } | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2109:67:2111:5 | { ... } | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:9:2110:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2110:9:2110:19 | Some(...) | T | main.rs:2058:5:2058:22 | S3 | +| main.rs:2110:9:2110:19 | Some(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2110:9:2110:19 | Some(...) | T.T3 | main.rs:2109:24:2109:31 | T | +| main.rs:2110:9:2110:19 | Some(...) | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:14:2110:18 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2110:14:2110:18 | S3(...) | T3 | main.rs:2109:24:2109:31 | T | +| main.rs:2110:17:2110:17 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2113:34:2113:34 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2113:78:2115:5 | { ... } | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2114:9:2114:30 | TupleExpr | T0 | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:9:2114:30 | TupleExpr | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2114:9:2114:30 | TupleExpr | T0.T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T1 | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:9:2114:30 | TupleExpr | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2114:9:2114:30 | TupleExpr | T1.T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:10:2114:22 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:10:2114:22 | S3(...) | | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2114:10:2114:22 | S3(...) | T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:10:2114:22 | S3(...) | impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:13:2114:13 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:13:2114:21 | x.clone() | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:25:2114:29 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:25:2114:29 | S3(...) | | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2114:25:2114:29 | S3(...) | T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:25:2114:29 | S3(...) | impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:28:2114:28 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2117:26:2117:26 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2117:51:2119:5 | { ... } | | main.rs:2117:23:2117:23 | A | +| main.rs:2118:9:2118:9 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2118:9:2118:17 | t.get_a() | | main.rs:2117:23:2117:23 | A | +| main.rs:2121:16:2135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2122:13:2122:13 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2122:17:2122:20 | f1(...) | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:14 | x.f1() | | {EXTERNAL LOCATION} | () | +| main.rs:2124:9:2124:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2124:9:2124:14 | x.f2() | | {EXTERNAL LOCATION} | () | +| main.rs:2125:13:2125:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2125:17:2125:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2126:13:2126:13 | b | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2126:17:2126:33 | uses_my_trait1(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2126:32:2126:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:13:2127:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:17:2127:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2128:13:2128:13 | c | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2128:17:2128:33 | uses_my_trait2(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2128:32:2128:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2129:13:2129:13 | d | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2129:17:2129:34 | uses_my_trait2(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2129:32:2129:33 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:13:2130:13 | e | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:17:2130:43 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:33:2130:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:13:2133:13 | f | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:44 | ... .unwrap() | | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2133:17:2133:44 | ... .unwrap() | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:52 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:33:2133:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:13:2134:13 | g | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:37 | ... .0 | | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:37 | ... .0 | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:45 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:33:2134:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2145:16:2145:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2145:16:2145:20 | SelfParam | TRef | main.rs:2141:5:2142:13 | S | +| main.rs:2145:31:2147:9 | { ... } | | main.rs:2141:5:2142:13 | S | +| main.rs:2146:13:2146:13 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2156:26:2158:9 | { ... } | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2156:26:2158:9 | { ... } | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:13:2157:38 | MyVec {...} | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2157:13:2157:38 | MyVec {...} | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:27:2157:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2157:27:2157:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2157:27:2157:36 | ...::new(...) | T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:17:2160:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:28:2160:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2160:38:2162:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2161:13:2161:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2161:13:2161:16 | self | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2161:13:2161:16 | self | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:13:2161:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2161:13:2161:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2161:13:2161:21 | self.data | T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:13:2161:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2161:28:2161:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2169:18:2169:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2169:18:2169:22 | SelfParam | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2169:18:2169:22 | SelfParam | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2169:25:2169:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2169:56:2171:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2169:56:2171:9 | { ... } | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:13:2170:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2170:13:2170:29 | &... | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2170:14:2170:17 | self | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2170:14:2170:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2170:14:2170:22 | self.data | T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:29 | ...[index] | | main.rs:2165:10:2165:10 | T | +| main.rs:2170:24:2170:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2174:22:2174:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2174:22:2174:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2174:22:2174:26 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2174:35:2176:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2175:13:2175:13 | x | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2175:17:2175:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2175:17:2175:21 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:24 | slice[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:30 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:23:2175:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2178:37:2178:37 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2178:43:2178:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2182:9:2182:9 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2182:11:2182:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2185:16:2196:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2186:17:2186:19 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:17:2186:19 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2186:23:2186:34 | ...::new(...) | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:23:2186:34 | ...::new(...) | T | main.rs:2141:5:2142:13 | S | +| main.rs:2187:9:2187:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2187:9:2187:11 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2187:9:2187:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2187:18:2187:18 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2188:9:2188:11 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:14 | vec[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:20 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:13:2188:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2190:13:2190:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:13:2190:14 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:21:2190:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2190:26:2190:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:26:2190:28 | [...] | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:27:2190:27 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:13:2191:13 | x | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:21 | xs[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:27 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:20:2191:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2193:29:2193:31 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2193:29:2193:31 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2193:34:2193:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2195:9:2195:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2195:23:2195:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2195:23:2195:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:23:2195:25 | &xs | TRef.TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2195:24:2195:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:24:2195:25 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2200:16:2202:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2201:13:2201:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2201:17:2201:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:25:2201:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2201:25:2201:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2201:38:2201:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:38:2201:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2210:19:2210:22 | SelfParam | | main.rs:2206:5:2211:5 | Self [trait MyAdd] | +| main.rs:2210:25:2210:27 | rhs | | main.rs:2206:17:2206:26 | Rhs | +| main.rs:2217:19:2217:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:25:2217:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:45:2219:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2218:13:2218:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:19:2226:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:25:2226:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2226:25:2226:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:46:2228:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:13:2227:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:14:2227:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2227:14:2227:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:19:2235:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:25:2235:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2235:46:2241:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:13:2240:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2236:13:2240:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:16:2236:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2236:22:2238:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2236:22:2238:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2237:17:2237:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2237:17:2237:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2238:20:2240:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2238:20:2240:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2239:17:2239:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2239:17:2239:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2250:19:2250:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:19:2250:22 | SelfParam | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:25:2250:29 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:25:2250:29 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:54:2252:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:13:2251:39 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:15:2251:22 | (...) | | main.rs:2246:10:2246:17 | T | +| main.rs:2251:16:2251:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:16:2251:21 | self.0 | | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:35 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:31:2251:35 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:37 | other.0 | | main.rs:2246:10:2246:17 | T | +| main.rs:2259:19:2259:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2259:19:2259:22 | SelfParam | T | main.rs:2255:10:2255:17 | T | +| main.rs:2259:25:2259:29 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2259:51:2261:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:13:2260:37 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:15:2260:22 | (...) | | main.rs:2255:10:2255:17 | T | +| main.rs:2260:16:2260:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | T | main.rs:2255:10:2255:17 | T | +| main.rs:2260:16:2260:21 | self.0 | | main.rs:2255:10:2255:17 | T | +| main.rs:2260:31:2260:35 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2271:19:2271:22 | SelfParam | T | main.rs:2264:14:2264:14 | T | +| main.rs:2271:25:2271:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2271:25:2271:29 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2271:55:2273:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:13:2272:37 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:15:2272:22 | (...) | | main.rs:2264:14:2264:14 | T | +| main.rs:2272:16:2272:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | T | main.rs:2264:14:2264:14 | T | +| main.rs:2272:16:2272:21 | self.0 | | main.rs:2264:14:2264:14 | T | +| main.rs:2272:31:2272:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2272:31:2272:35 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2278:20:2278:24 | value | | main.rs:2276:18:2276:18 | T | +| main.rs:2283:20:2283:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2283:40:2285:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2284:13:2284:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2290:20:2290:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2290:41:2296:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:13:2295:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:13:2295:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:16:2291:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2291:22:2293:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:22:2293:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2292:17:2292:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2292:17:2292:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2293:20:2295:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2293:20:2295:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2294:17:2294:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2294:17:2294:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2301:21:2301:25 | value | | main.rs:2299:19:2299:19 | T | +| main.rs:2301:31:2301:31 | x | | main.rs:2299:5:2302:5 | Self [trait MyFrom2] | +| main.rs:2306:21:2306:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:33:2306:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:48:2308:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2307:13:2307:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:21:2313:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2313:34:2313:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:49:2319:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2314:13:2318:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2314:16:2314:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2314:22:2316:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2315:17:2315:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2316:20:2318:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2317:17:2317:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2324:15:2324:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2327:15:2327:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2332:15:2332:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2332:31:2334:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:17:2333:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2337:15:2337:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:32:2339:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:17:2338:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2344:15:2344:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2344:31:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2345:13:2345:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2345:13:2345:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2349:15:2349:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2349:32:2351:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2350:13:2350:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2354:16:2379:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2355:13:2355:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2355:22:2355:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2355:22:2355:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:18:2356:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:18:2357:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2357:18:2357:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:19:2357:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:18:2358:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2360:9:2360:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:9:2360:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:9:2360:31 | ... .my_add(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:11:2360:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:24:2360:30 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:24:2360:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:26:2360:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:9:2361:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2361:9:2361:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:11:2361:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:24:2361:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:9:2362:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2362:9:2362:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:9:2362:29 | ... .my_add(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2362:11:2362:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:24:2362:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2362:24:2362:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:25:2362:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:13:2364:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:17:2364:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:30:2364:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:13:2365:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:17:2365:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:30:2365:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2366:13:2366:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:22:2366:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:38:2366:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:9:2367:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2367:23:2367:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:30:2367:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2368:9:2368:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2368:23:2368:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2368:29:2368:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:9:2369:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2369:27:2369:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:34:2369:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:9:2371:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:17:2371:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:9:2372:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:17:2372:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:9:2373:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:18:2373:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:9:2374:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:18:2374:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2375:9:2375:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2375:25:2375:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:9:2376:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:25:2376:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:9:2377:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:25:2377:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:9:2378:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:25:2378:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2386:26:2388:9 | { ... } | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2387:13:2387:25 | MyCallable {...} | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:17:2390:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2390:17:2390:21 | SelfParam | TRef | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:31:2392:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2391:13:2391:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2391:13:2391:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2395:16:2502:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:9:2398:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:13:2398:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:18:2398:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2398:18:2398:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:19:2398:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:22:2398:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:25:2398:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:28:2398:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:9:2399:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:18:2399:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:18:2399:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:18:2399:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:19:2399:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:22:2399:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:25:2399:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:32:2399:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2399:32:2399:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2399:40:2399:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:43:2399:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:9:2400:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:13:2400:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:18:2400:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2400:18:2400:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:18:2400:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2400:18:2400:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:19:2400:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:22:2400:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:25:2400:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:40:2400:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:13:2402:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:13:2402:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:21:2402:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:21:2402:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:21:2402:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:22:2402:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:27:2402:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:27:2402:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:30:2402:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:30:2402:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:9:2403:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2403:13:2403:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2403:13:2403:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:18:2403:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:18:2403:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2403:18:2403:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:24:2403:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2405:13:2405:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:13:2405:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:21:2405:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:21:2405:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:22:2405:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:28:2405:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2406:9:2406:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2406:13:2406:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:18:2406:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2406:18:2406:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:24:2406:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2408:13:2408:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:13:2408:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:26:2408:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:31:2408:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:31:2408:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:31:2408:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:32:2408:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:32:2408:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:35:2408:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:35:2408:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:38:2408:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:38:2408:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:9:2409:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2409:13:2409:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:18:2409:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:18:2409:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:24:2409:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2411:13:2411:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:13:2411:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:26:2411:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:31:2411:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:31:2411:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:31:2411:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:32:2411:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:32:2411:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:35:2411:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2412:9:2412:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2412:13:2412:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:18:2412:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:18:2412:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:24:2412:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2414:17:2414:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:17:2414:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2414:17:2414:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:28:2414:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:28:2414:48 | [...] | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2414:28:2414:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:29:2414:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:29:2414:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:36:2414:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:36:2414:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:43:2414:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:43:2414:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:9:2415:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2415:13:2415:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2415:13:2415:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2415:13:2415:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:18:2415:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2415:18:2415:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:18:2415:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2415:18:2415:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:19:2415:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:19:2415:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2415:19:2415:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:28:2415:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:9:2416:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:13:2416:13 | s | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:13:2416:13 | s | TRefMut | {EXTERNAL LOCATION} | & | +| main.rs:2416:13:2416:13 | s | TRefMut.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:18:2416:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:23:2416:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:23:2416:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2416:23:2416:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:32:2416:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:9:2417:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:13:2417:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2417:13:2417:13 | s | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2417:18:2417:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:18:2417:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2417:18:2417:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2417:27:2417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2419:13:2419:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2419:13:2419:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2420:9:2424:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2420:9:2424:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2421:13:2421:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2421:26:2421:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2421:26:2421:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:13:2422:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2422:26:2422:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2422:26:2422:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2423:13:2423:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2423:26:2423:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2423:26:2423:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2425:9:2425:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2425:13:2425:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2425:18:2425:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2425:18:2425:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2425:27:2425:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2427:13:2427:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2427:13:2427:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2427:13:2427:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2428:9:2432:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2428:9:2432:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2428:9:2432:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2428:10:2432:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2428:10:2432:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2429:13:2429:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2429:26:2429:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2429:26:2429:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2430:13:2430:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2430:26:2430:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2430:26:2430:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2431:13:2431:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2431:26:2431:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2431:26:2431:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2433:9:2433:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2433:13:2433:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2433:13:2433:13 | s | TRef | {EXTERNAL LOCATION} | String | +| main.rs:2433:18:2433:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2433:18:2433:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2433:18:2433:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2433:27:2433:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2435:13:2435:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:13:2435:21 | callables | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:25:2435:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:25:2435:81 | [...] | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:26:2435:42 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:45:2435:61 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:64:2435:80 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2436:9:2440:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2436:13:2436:13 | c | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2437:12:2437:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2437:12:2437:20 | callables | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2438:9:2440:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2439:17:2439:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2439:26:2439:26 | c | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2439:26:2439:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:9:2444:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:13:2444:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:18:2444:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:18:2444:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2444:18:2444:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:21:2444:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:24:2444:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:9:2445:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:13:2445:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:13:2445:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:13:2445:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:18:2445:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2445:18:2445:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | +| main.rs:2445:18:2445:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:18:2445:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:19:2445:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:19:2445:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:24:2445:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:24:2445:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:28:2445:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2446:13:2446:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:13:2446:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:21:2446:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:21:2446:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:21:2446:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:24:2446:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:9:2447:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2447:13:2447:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:18:2447:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:18:2447:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:24:2447:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2448:13:2448:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2448:26:2448:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:9:2449:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2449:18:2449:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2449:19:2449:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2449:19:2449:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:20:2449:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:26:2449:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:32:2449:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:38:2449:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:50:2449:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2451:13:2451:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2451:13:2451:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2452:9:2455:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2452:9:2455:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2453:20:2453:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2454:18:2454:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:9:2456:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2456:13:2456:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:18:2456:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2456:18:2456:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:25:2456:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2460:13:2460:17 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2460:21:2460:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2460:26:2460:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:29:2460:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:32:2460:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:9:2461:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:18:2461:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2461:24:2461:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2463:13:2463:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:13:2463:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:13:2463:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2463:32:2463:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:32:2463:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:32:2463:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:32:2463:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:33:2463:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:39:2463:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:42:2463:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:9:2464:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:18:2464:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2464:18:2464:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2464:18:2464:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:25:2464:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2466:22:2466:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2466:22:2466:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:22:2466:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:23:2466:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:29:2466:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:32:2466:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2467:9:2467:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2467:25:2467:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2469:13:2469:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:13:2469:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2469:13:2469:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:13:2469:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:21:2469:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:21:2469:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2469:21:2469:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:21:2469:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:31:2469:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2469:31:2469:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:31:2469:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:32:2469:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:38:2469:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:41:2469:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:9:2470:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:18:2470:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2470:18:2470:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2470:18:2470:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:18:2470:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:24:2470:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2472:13:2472:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:13:2472:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:13:2472:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:13:2472:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2472:32:2472:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:32:2472:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:32:2472:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:32:2472:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:32:2472:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:33:2472:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:39:2472:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:42:2472:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2473:9:2473:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2473:13:2473:13 | u | | {EXTERNAL LOCATION} | & | +| main.rs:2473:13:2473:13 | u | TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:18:2473:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2473:18:2473:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2473:18:2473:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2473:18:2473:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:24:2473:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2475:17:2475:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:17:2475:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:17:2475:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2475:25:2475:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:25:2475:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:25:2475:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2476:9:2476:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2476:9:2476:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:9:2476:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2476:9:2476:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2476:20:2476:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:9:2477:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2477:13:2477:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:18:2477:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2477:18:2477:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2477:18:2477:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:24:2477:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2479:13:2479:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:23:2479:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:28:2479:37 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:28:2479:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:33:2479:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:36:2479:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:40:2479:49 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:40:2479:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:45:2479:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:48:2479:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2481:13:2481:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2481:17:2484:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2481:28:2481:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2481:36:2484:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:13:2483:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:29:2483:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2486:17:2486:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:17:2486:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2486:17:2486:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:17:2486:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2486:17:2486:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2486:17:2486:20 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2486:17:2486:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2486:24:2486:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:24:2486:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2486:24:2486:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:24:2486:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2486:24:2486:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2486:24:2486:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2486:24:2486:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:9:2487:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2487:9:2487:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:9:2487:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:9:2487:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2487:9:2487:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:9:2487:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2487:9:2487:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:9:2487:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2487:9:2487:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:21:2487:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:24:2487:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2487:24:2487:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:24:2487:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2487:24:2487:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:33:2487:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2487:33:2487:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2488:9:2488:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2488:9:2488:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2488:9:2488:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2488:9:2488:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:9:2488:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2488:9:2488:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2488:9:2488:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:21:2488:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2488:24:2488:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2488:24:2488:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:24:2488:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2488:24:2488:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:33:2488:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2488:33:2488:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:9:2489:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2489:13:2489:15 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2489:13:2489:15 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2489:20:2489:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2489:20:2489:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2489:20:2489:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2489:20:2489:23 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2489:20:2489:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:20:2489:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2489:20:2489:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2489:20:2489:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2489:20:2489:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2489:20:2489:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:32:2489:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:9:2490:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:13:2490:17 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2490:13:2490:17 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2490:13:2490:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:13:2490:17 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:13:2490:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:22:2490:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2490:22:2490:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2490:22:2490:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2490:22:2490:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2490:22:2490:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:22:2490:25 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:22:2490:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:22:2490:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2490:22:2490:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2490:22:2490:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2490:22:2490:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:22:2490:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:22:2490:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:36:2490:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:9:2491:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:13:2491:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2491:13:2491:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:13:2491:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:14:2491:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2491:14:2491:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:19:2491:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2491:19:2491:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2491:19:2491:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:19:2491:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:19:2491:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:29:2491:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2491:29:2491:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:29:2491:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2491:29:2491:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2491:29:2491:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:29:2491:32 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:29:2491:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:29:2491:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2491:29:2491:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:29:2491:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2491:29:2491:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:29:2491:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:29:2491:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:41:2491:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:9:2492:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:13:2492:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2492:13:2492:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:13:2492:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:14:2492:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2492:14:2492:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:19:2492:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2492:19:2492:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2492:19:2492:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:19:2492:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:19:2492:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:29:2492:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2492:29:2492:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:29:2492:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:29:2492:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:29:2492:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:30:2492:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:30:2492:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:30:2492:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:30:2492:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2492:30:2492:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:30:2492:33 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:30:2492:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:35:2492:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2496:17:2496:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2496:26:2496:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:26:2496:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:13:2498:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2498:17:2501:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2498:23:2498:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:23:2498:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2498:27:2498:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2499:9:2501:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2500:13:2500:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2500:13:2500:18 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2500:18:2500:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2512:40:2514:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2512:40:2514:9 | { ... } | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2512:40:2514:9 | { ... } | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2513:13:2513:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2513:13:2513:16 | None | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2513:13:2513:16 | None | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2516:30:2518:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2516:30:2518:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2517:13:2517:28 | S1(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2517:13:2517:28 | S1(...) | T | main.rs:2511:10:2511:19 | T | +| main.rs:2517:16:2517:27 | ...::default(...) | | main.rs:2511:10:2511:19 | T | +| main.rs:2520:19:2520:22 | SelfParam | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:19:2520:22 | SelfParam | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:33:2522:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:33:2522:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2521:13:2521:16 | self | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2521:13:2521:16 | self | T | main.rs:2511:10:2511:19 | T | +| main.rs:2533:15:2533:15 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2533:26:2535:5 | { ... } | | main.rs:2533:12:2533:12 | T | +| main.rs:2534:9:2534:9 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2537:16:2559:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2538:13:2538:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:13:2538:14 | x1 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:13:2538:14 | x1 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:13:2539:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:13:2539:14 | x2 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:13:2540:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:13:2540:14 | x3 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:13:2540:14 | x3 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:13:2541:14 | x4 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:13:2541:14 | x4 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:18:2541:48 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:18:2541:48 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:35:2541:47 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:35:2541:47 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:13:2542:14 | x5 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:18:2542:42 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:18:2542:42 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:29:2542:41 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:29:2542:41 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:13:2543:14 | x6 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2543:13:2543:14 | x6 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:18:2543:45 | S4::<...>(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2543:18:2543:45 | S4::<...>(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:27:2543:44 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:13:2544:14 | x7 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2544:13:2544:14 | x7 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:18:2544:23 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2544:18:2544:23 | S4(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:21:2544:22 | S2 | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2545:13:2545:14 | x8 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2545:13:2545:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:18:2545:22 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2545:18:2545:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:21:2545:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:13:2546:14 | x9 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2546:13:2546:14 | x9 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2546:18:2546:34 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2546:18:2546:34 | S4(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2546:21:2546:33 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:13:2547:15 | x10 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:13:2547:15 | x10 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2549:20:2549:37 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:13:2551:15 | x11 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:13:2551:15 | x11 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:19:2551:34 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:19:2551:34 | S5 {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:31:2551:32 | S2 | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2552:13:2552:15 | x12 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:13:2552:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:19:2552:33 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:19:2552:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:31:2552:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:13:2553:15 | x13 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:13:2553:15 | x13 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2553:19:2556:9 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:19:2556:9 | S5 {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2555:20:2555:32 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2557:13:2557:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:19:2557:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:30:2557:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:13:2558:15 | x15 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:13:2558:15 | x15 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2558:19:2558:37 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:19:2558:37 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2567:35:2569:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2567:35:2569:9 | { ... } | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2567:35:2569:9 | { ... } | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2568:13:2568:26 | TupleExpr | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:14:2568:18 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:21:2568:25 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:16:2570:19 | SelfParam | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:22:2570:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2573:16:2607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2574:13:2574:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:13:2574:13 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:13:2574:13 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:17:2575:17 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:13:2576:18 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:14:2576:14 | c | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:17:2576:17 | d | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:13:2577:22 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:18:2577:18 | e | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:21:2577:21 | f | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:13:2578:26 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:18:2578:18 | g | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:25:2578:25 | h | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2580:9:2580:9 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:11 | a.0 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2581:9:2581:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2581:9:2581:9 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:11 | b.1 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2582:9:2582:9 | c | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2582:9:2582:15 | c.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2583:9:2583:9 | d | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2583:9:2583:15 | d.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2584:9:2584:9 | e | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2584:9:2584:15 | e.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2585:9:2585:9 | f | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2585:9:2585:15 | f.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2586:9:2586:9 | g | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2586:9:2586:15 | g.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2587:9:2587:9 | h | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2587:9:2587:15 | h.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2592:13:2592:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:13:2593:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:17:2593:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2594:13:2594:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:13:2594:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:13:2594:16 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2594:20:2594:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:20:2594:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:20:2594:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2594:21:2594:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:24:2594:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:13:2595:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2595:22:2595:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2595:22:2595:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:13:2596:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2596:23:2596:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:23:2596:26 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2598:13:2598:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:13:2598:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:13:2598:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2598:20:2598:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:20:2598:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:21:2598:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:24:2598:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2599:9:2602:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2599:15:2599:18 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2599:15:2599:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2599:15:2599:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:13:2600:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2600:13:2600:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:13:2600:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:14:2600:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:17:2600:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:23:2600:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2600:30:2600:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2600:30:2600:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2601:13:2601:13 | _ | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2601:13:2601:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2601:13:2601:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2601:18:2601:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2601:25:2601:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2601:25:2601:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2603:13:2603:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:20 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2603:17:2603:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2605:13:2605:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2605:13:2605:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:13:2605:13 | y | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:13:2605:13 | y | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:17:2605:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2605:17:2605:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:17:2605:31 | &... | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:17:2605:31 | &... | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2606:9:2606:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2606:9:2606:9 | y | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:11 | y.0 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2612:27:2634:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2613:13:2613:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:13:2613:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:13:2613:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:27:2613:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:27:2613:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:27:2613:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:36:2613:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2616:9:2624:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2616:15:2616:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2616:15:2616:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2616:15:2616:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:13:2617:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2617:13:2617:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2617:13:2617:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:17:2617:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:24:2619:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:17:2618:37 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:13:2620:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2620:13:2620:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2620:13:2620:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:22:2623:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:17:2622:52 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:13:2627:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:13:2627:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:26:2627:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:35:2627:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:35:2627:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:35:2627:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:44:2627:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2628:9:2633:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:15:2628:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2628:15:2628:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2628:15:2628:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:13:2629:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2629:13:2629:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:13:2629:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2629:13:2629:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:13:2629:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:26:2632:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:17:2631:60 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | +| main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2647:29:2647:33 | SelfParam | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:59:2649:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2647:59:2649:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2647:59:2649:9 | { ... } | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:13:2648:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2648:13:2648:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | +| main.rs:2648:13:2648:30 | Ok(...) | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:16:2648:29 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2655:39:2657:9 | { ... } | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2656:13:2656:22 | PathBuf {...} | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:18:2665:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2665:18:2665:22 | SelfParam | TRef | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:34:2669:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2665:34:2669:9 | { ... } | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2667:33:2667:43 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:13:2668:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2668:13:2668:17 | &path | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:14:2668:17 | path | | main.rs:2640:5:2640:22 | Path | +| main.rs:2672:16:2680:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2673:21:2673:31 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:13:2674:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2674:13:2674:17 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2674:13:2674:17 | path2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2674:21:2674:25 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:21:2674:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2674:21:2674:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2674:21:2674:40 | path1.canonicalize() | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:13:2675:17 | path3 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:21:2675:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2675:21:2675:25 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2675:21:2675:25 | path2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:21:2675:34 | path2.unwrap() | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:13:2677:20 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:24:2677:37 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:13:2678:20 | pathbuf2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2678:13:2678:20 | pathbuf2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:20 | pathbuf2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:31 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:13:2679:20 | pathbuf3 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:24:2679:31 | pathbuf2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2679:24:2679:31 | pathbuf2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2679:24:2679:31 | pathbuf2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:24:2679:40 | pathbuf2.unwrap() | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2685:14:2685:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2685:14:2685:18 | SelfParam | TRef | main.rs:2684:5:2686:5 | Self [trait MyTrait] | +| main.rs:2692:14:2692:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2692:14:2692:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2692:14:2692:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2692:28:2694:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2693:13:2693:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2693:13:2693:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:14:2698:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2698:14:2698:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:28:2700:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:18 | self.0 | | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:15:2704:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2704:15:2704:19 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2704:15:2704:19 | SelfParam | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2704:33:2706:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:13:2705:24 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2705:13:2705:24 | S(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2705:13:2705:24 | S(...) | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:15:2705:23 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2705:15:2705:23 | S(...) | T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2705:17:2705:20 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2705:17:2705:20 | self | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:22 | self.0 | | main.rs:2703:10:2703:16 | T | +| main.rs:2709:14:2709:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2709:48:2726:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2709:48:2726:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2709:48:2726:5 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2709:48:2726:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:13:2710:13 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:13:2710:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:17:2715:9 | if b {...} else {...} | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:17:2715:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:20:2710:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2710:22:2713:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:22:2713:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:17:2711:17 | y | | main.rs:2688:5:2689:19 | S | +| main.rs:2711:17:2711:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:21:2711:38 | ...::default(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2711:21:2711:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2712:13:2712:13 | y | | main.rs:2688:5:2689:19 | S | +| main.rs:2712:13:2712:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:16:2715:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2713:16:2715:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:13:2714:16 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2714:13:2714:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:15:2714:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:13:2719:13 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2719:13:2719:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:17:2719:20 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2719:17:2719:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:19:2719:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2720:9:2725:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:12:2720:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2720:14:2723:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2720:14:2723:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2720:14:2723:9 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2720:14:2723:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:14:2723:9 | { ... } | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:14:2723:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:14:2723:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:17:2721:17 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:17:2721:17 | x | T | main.rs:2688:5:2689:19 | S | +| main.rs:2721:17:2721:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:21:2721:21 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:21:2721:26 | x.m2() | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:26 | x.m2() | T | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:13:2722:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2722:13:2722:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2722:13:2722:23 | ...::new(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2722:13:2722:23 | ...::new(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:13:2722:23 | ...::new(...) | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:13:2722:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:13:2722:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:22:2722:22 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2722:22:2722:22 | x | T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:22:2722:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:16:2725:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2723:16:2725:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2723:16:2725:9 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2723:16:2725:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2723:16:2725:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:16:2725:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:13:2724:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2724:13:2724:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2724:13:2724:23 | ...::new(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2724:13:2724:23 | ...::new(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2724:13:2724:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:13:2724:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:22:2724:22 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2724:22:2724:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2730:22:2734:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2731:18:2731:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2731:33:2733:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:17:2732:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:11:2739:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2739:30:2747:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2741:13:2741:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2741:17:2745:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2742:13:2744:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2742:16:2742:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2742:21:2744:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2743:24:2743:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2746:9:2746:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2750:20:2757:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2753:26:2753:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2755:9:2755:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2756:9:2756:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2760:16:2760:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:11:2764:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2764:30:2772:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:13:2765:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2765:17:2769:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2766:13:2768:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2766:16:2766:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2766:21:2768:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2767:24:2767:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:9:2770:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2771:9:2771:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2777:13:2777:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2777:13:2777:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2777:17:2777:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2777:17:2777:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2778:13:2778:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:13:2778:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2778:30:2778:30 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:30:2778:30 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:13:2779:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2779:13:2779:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:17:2779:35 | ...::None | | {EXTERNAL LOCATION} | Option | +| main.rs:2779:17:2779:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2780:13:2780:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:17:2780:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | +| main.rs:2780:17:2780:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:26:2782:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2782:26:2782:28 | opt | T | main.rs:2782:23:2782:23 | T | +| main.rs:2782:42:2782:42 | x | | main.rs:2782:23:2782:23 | T | +| main.rs:2782:48:2782:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2784:13:2784:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2784:13:2784:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:17:2784:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2784:17:2784:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:9:2785:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2785:20:2785:20 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2785:20:2785:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:23:2785:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:13:2792:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:13:2792:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:13:2792:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2792:17:2792:39 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:17:2792:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:17:2792:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2792:37:2792:37 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2793:40:2793:40 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:40:2793:40 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:40:2793:40 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:13:2794:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2794:13:2794:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:17:2794:52 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:17:2794:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2794:17:2794:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:50:2794:50 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:13:2796:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:13:2796:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:13:2796:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2797:20:2797:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2800:29:2800:29 | e | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2800:29:2800:29 | e | T1 | main.rs:2800:26:2800:26 | T | +| main.rs:2800:29:2800:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2800:53:2800:53 | x | | main.rs:2800:26:2800:26 | T | +| main.rs:2800:59:2800:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2803:13:2803:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:13:2803:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2803:13:2803:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2803:17:2805:9 | ...::B {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:17:2805:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2803:17:2805:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2804:20:2804:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2806:9:2806:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2806:23:2806:23 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2806:23:2806:23 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2806:23:2806:23 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2806:26:2806:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:13:2808:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2808:13:2808:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2808:13:2808:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:17:2808:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2808:17:2808:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2808:17:2808:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:28:2808:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:13:2809:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:13:2809:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:13:2809:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:38:2809:38 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:38:2809:38 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:38:2809:38 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:13:2810:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2810:13:2810:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2810:13:2810:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:17:2810:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2810:17:2810:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2810:17:2810:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:43:2810:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:13:2811:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2811:13:2811:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2811:13:2811:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:43:2811:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:29:2813:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:2813:29:2813:31 | res | E | main.rs:2813:26:2813:26 | E | +| main.rs:2813:29:2813:31 | res | T | main.rs:2813:23:2813:23 | T | +| main.rs:2813:48:2813:48 | x | | main.rs:2813:26:2813:26 | E | +| main.rs:2813:54:2813:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2815:13:2815:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2815:13:2815:13 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:2815:13:2815:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:17:2815:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2815:17:2815:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | +| main.rs:2815:17:2815:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:28:2815:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2816:9:2816:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:20:2816:20 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2816:20:2816:20 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:2816:20:2816:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2816:23:2816:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:2818:17:2818:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:17:2818:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:17:2818:17 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:21:2818:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:21:2818:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:21:2818:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:9:2819:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2819:9:2819:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:9:2819:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:9:2819:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2819:16:2819:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:13:2821:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:17:2821:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:9:2822:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2822:9:2822:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2822:9:2822:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:9:2822:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2822:16:2822:16 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:2829:14:2829:17 | SelfParam | | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:14:2832:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2832:14:2832:18 | SelfParam | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:21:2832:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2832:21:2832:25 | other | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:44:2834:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2832:44:2834:9 | { ... } | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:16 | self | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:20 | self.f() | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2839:14:2839:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:28:2841:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:13:2840:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:2846:14:2846:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:2846:28:2848:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2847:13:2847:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:2853:14:2853:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2853:14:2853:17 | SelfParam | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2853:28:2855:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2853:28:2855:9 | { ... } | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2854:13:2854:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2854:13:2854:16 | self | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2858:25:2862:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2859:17:2859:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2859:17:2859:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2859:21:2859:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2859:21:2859:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:9:2860:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:9:2860:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:9:2860:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:2860:13:2860:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:13:2860:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:13:2860:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:13:2860:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:2861:9:2861:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2861:9:2861:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2864:12:2872:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2865:13:2865:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2865:24:2865:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2865:24:2865:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2866:13:2866:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2866:13:2866:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2866:17:2866:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:2866:17:2866:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2866:18:2866:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2867:13:2867:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:2867:13:2867:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:2867:17:2867:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2867:17:2867:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2867:17:2867:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:2867:21:2867:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2867:21:2867:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2869:13:2869:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2869:17:2869:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2870:13:2870:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2870:24:2870:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2870:24:2870:24 | 1 | | {EXTERNAL LOCATION} | usize | +| main.rs:2871:13:2871:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:17:2871:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:17:2871:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:23:2871:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2881:11:2916:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2882:5:2882:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2883:5:2883:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:5:2884:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:20:2884:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:41:2884:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2885:5:2885:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2886:5:2886:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2887:5:2887:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2888:5:2888:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2889:5:2889:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2890:5:2890:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2891:5:2891:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2892:5:2892:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2893:5:2893:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2894:5:2894:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2895:5:2895:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2896:5:2896:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2897:5:2897:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2898:5:2898:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2899:5:2899:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2900:5:2900:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2900:5:2900:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2901:5:2901:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2902:5:2902:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2903:5:2903:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2904:5:2904:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2905:5:2905:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2906:5:2906:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2907:5:2907:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2908:5:2908:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2909:5:2909:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2910:5:2910:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2911:5:2911:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2912:5:2912:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2913:5:2913:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2914:5:2914:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2914:5:2914:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2914:5:2914:20 | ...::f(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2914:5:2914:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2914:16:2914:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2915:5:2915: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 | @@ -11523,7 +11386,6 @@ inferType | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:17:18:17:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:20:17:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:19:5:25:5 | match value { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:19:11:19:15 | value | | {EXTERNAL LOCATION} | Option | @@ -11539,7 +11401,6 @@ inferType | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:22:22:22:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:24:22:27 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:24:9:24:12 | None | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:24:9:24:12 | None | T | {EXTERNAL LOCATION} | i32 | @@ -11555,7 +11416,6 @@ inferType | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:28:14:28:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:16:28:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:9:29:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:20 | value | | {EXTERNAL LOCATION} | Option | @@ -11566,7 +11426,6 @@ inferType | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:30:14:30:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:16:30:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:32:9:32:14 | value2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:32:9:32:14 | value2 | TRef | {EXTERNAL LOCATION} | Option | @@ -11595,7 +11454,6 @@ inferType | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:35:18:35:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:20:35:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:9:38:14 | value3 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:18:38:19 | 42 | | {EXTERNAL LOCATION} | i32 | @@ -11613,7 +11471,6 @@ inferType | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:41:18:41:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:20:41:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:20:41:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:44:9:44:14 | value4 | | {EXTERNAL LOCATION} | Option | @@ -11638,7 +11495,6 @@ inferType | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:20:47:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:20:47:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:50:13:50:18 | value5 | | {EXTERNAL LOCATION} | & | @@ -11844,7 +11700,6 @@ inferType | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:175:22:175:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:45:175:57 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:10:177:10 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:15:180:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11855,7 +11710,6 @@ inferType | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:179:22:179:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:46:179:61 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:9:181:9 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:14:184:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11866,7 +11720,6 @@ inferType | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:183:22:183:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:42:183:53 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:9:185:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:14:185:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11883,7 +11736,6 @@ inferType | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:192:22:192:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:40:192:47 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:9:194:9 | _ | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:14:194:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11906,7 +11758,6 @@ inferType | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:201:22:201:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:44:201:54 | hello_match | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:44:201:54 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:203:9:203:9 | _ | | {EXTERNAL LOCATION} | & | @@ -11925,7 +11776,6 @@ inferType | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:210:22:210:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:42:210:51 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:9:212:13 | false | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:18:215:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11936,7 +11786,6 @@ inferType | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:214:22:214:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:43:214:53 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:219:30:277:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:220:9:220:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -11952,7 +11801,6 @@ inferType | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:226:22:226:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:48:226:58 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:231:5:236:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:231:11:231:16 | &value | | {EXTERNAL LOCATION} | & | @@ -11973,7 +11821,6 @@ inferType | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:234:22:234:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:52:234:60 | ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -11993,7 +11840,6 @@ inferType | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:244:22:244:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:48:244:56 | mut_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:249:9:249:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:249:9:249:20 | option_value | T | {EXTERNAL LOCATION} | i32 | @@ -12015,7 +11861,6 @@ inferType | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:253:22:253:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:52:253:59 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12030,7 +11875,6 @@ inferType | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:257:22:257:63 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:50:257:63 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12043,7 +11887,6 @@ inferType | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:261:22:261:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:40:261:49 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:9:263:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:263:9:263:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | @@ -12053,7 +11896,6 @@ inferType | pattern_matching.rs:264:22:264:33 | "None value\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:264:22:264:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | -| 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:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12083,7 +11925,6 @@ inferType | 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} | () | | pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:279:28:290:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:280:9:280:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:280:17:280:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12104,7 +11945,6 @@ inferType | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:287:22:287:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:50:287:65 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:292:25:324:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:293:9:293:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12122,7 +11962,6 @@ inferType | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:299:22:299:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:45:299:59 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:10 | 11 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:12 | RangePat | | {EXTERNAL LOCATION} | i32 | @@ -12134,7 +11973,6 @@ inferType | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:303:22:303:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:43:303:52 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:9:305:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:12:305:12 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -12146,7 +11984,6 @@ inferType | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:307:22:307:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:50:307:67 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:9:309:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:14:309:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12165,7 +12002,6 @@ inferType | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:316:22:316:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:44:316:57 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:11 | 'A' | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:17 | RangePat | | {EXTERNAL LOCATION} | char | @@ -12178,7 +12014,6 @@ inferType | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:320:22:320:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:44:320:57 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:9:322:9 | _ | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:14:322:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12202,7 +12037,6 @@ inferType | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:334:22:334:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:48:334:58 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:336:9:336:10 | &... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:336:9:336:10 | &... | TRef | {EXTERNAL LOCATION} | i32 | @@ -12215,7 +12049,6 @@ inferType | 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: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} | &mut | @@ -12235,7 +12068,6 @@ inferType | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:345:22:345:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:349:5:354:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12257,7 +12089,6 @@ inferType | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:352:22:352:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:47:352:57 | ref_pattern | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12279,7 +12110,6 @@ inferType | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:364:22:364:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:44:364:49 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:9:366:25 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:17:366:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12294,7 +12124,6 @@ inferType | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:369:22:369:80 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:59:369:66 | x_axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:369:69:369:80 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:371:9:371:27 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | @@ -12307,7 +12136,6 @@ inferType | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:373:22:373:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:47:373:57 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:9:375:22 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:17:375:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12322,7 +12150,6 @@ inferType | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:378:22:378:68 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:49:378:57 | general_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:378:60:378:68 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:383:9:383:13 | shape | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12344,7 +12171,6 @@ inferType | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:394:22:394:64 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:42:394:51 | rect_width | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:394:54:394:64 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:396:9:396:9 | _ | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12372,7 +12198,6 @@ inferType | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:407:22:407:48 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:40:407:48 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:9:409:22 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:15:409:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12390,7 +12215,6 @@ inferType | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:414:17:415:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:415:17:415:29 | red_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:32:415:46 | green_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:49:415:62 | blue_component | | {EXTERNAL LOCATION} | u8 | @@ -12408,7 +12232,6 @@ inferType | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:424:22:424:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:45:424:57 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:9:426:20 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:15:426:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12421,7 +12244,6 @@ inferType | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:428:22:428:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:48:428:54 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:434:9:434:15 | wrapper | | pattern_matching.rs:432:5:433:24 | Wrapper | | pattern_matching.rs:434:19:434:29 | Wrapper(...) | | pattern_matching.rs:432:5:433:24 | Wrapper | @@ -12438,7 +12260,6 @@ inferType | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:438:22:438:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:37:438:49 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:443:25:498:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:444:9:444:13 | tuple | | {EXTERNAL LOCATION} | (T_3) | @@ -12492,7 +12313,6 @@ inferType | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:450:22:450:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:43:450:53 | exact_tuple | | {EXTERNAL LOCATION} | (T_3) | | pattern_matching.rs:450:43:450:53 | exact_tuple | T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:450:43:450:53 | exact_tuple | T1 | {EXTERNAL LOCATION} | i32 | @@ -12526,7 +12346,6 @@ inferType | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:456:22:456:79 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:45:456:54 | first_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i64 | @@ -12551,7 +12370,6 @@ inferType | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:464:22:464:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:9:469:12 | unit | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:16:469:17 | TupleExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:470:5:475:5 | match unit { ... } | | {EXTERNAL LOCATION} | () | @@ -12565,7 +12383,6 @@ inferType | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:473:22:473:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:42:473:51 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:478:9:478:14 | single | | {EXTERNAL LOCATION} | (T_1) | | pattern_matching.rs:478:9:478:14 | single | T0 | {EXTERNAL LOCATION} | i32 | @@ -12586,7 +12403,6 @@ inferType | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:482:22:482:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:50:482:60 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | TRef | {EXTERNAL LOCATION} | (T_2) | @@ -12613,13 +12429,11 @@ inferType | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:489:18:489:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:9:490:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:490:18:490:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | @@ -12643,13 +12457,11 @@ inferType | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:496:14:496:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:5:497:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:497:14:497:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:500:33:520:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:501:9:501:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:501:17:501:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12665,7 +12477,6 @@ inferType | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:507:22:507:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:51:507:61 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:512:9:512:13 | tuple | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:512:9:512:13 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12695,7 +12506,6 @@ inferType | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:517:22:517:71 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:56:517:62 | paren_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:517:65:517:71 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:522:25:563:1 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12733,7 +12543,6 @@ inferType | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:529:22:529:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:43:529:53 | empty_slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12746,7 +12555,6 @@ inferType | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:533:22:533:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:535:9:535:23 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12756,7 +12564,6 @@ inferType | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:538:22:538:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:540:9:540:34 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12766,7 +12573,6 @@ inferType | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:545:17:548:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:554:9:554:13 | array | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:554:9:554:13 | array | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:554:17:554:28 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -12785,7 +12591,6 @@ inferType | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:560:22:560:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:565:24:601:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:567:27:567:28 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:568:9:568:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12801,7 +12606,6 @@ inferType | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:573:22:573:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:46:573:56 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:9:575:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:14:575:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12821,7 +12625,6 @@ inferType | pattern_matching.rs:582:22:582:35 | "None variant\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:582:22:582:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:24:584:24 | x | | {EXTERNAL LOCATION} | i32 | @@ -12833,7 +12636,6 @@ inferType | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:586:22:586:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:40:586:49 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:591:5:600:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:591:11:591:51 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | @@ -12852,7 +12654,6 @@ inferType | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:594:22:594:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:38:594:45 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | E | {EXTERNAL LOCATION} | usize | @@ -12866,7 +12667,6 @@ inferType | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:598:22:598:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:35:598:43 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:603:22:638:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:604:9:604:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12885,7 +12685,6 @@ inferType | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:610:22:610:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:42:610:50 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:10 | 10 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:15 | 10 \| 20 | | {EXTERNAL LOCATION} | i32 | @@ -12898,7 +12697,6 @@ inferType | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:614:22:614:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:42:614:50 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:9:616:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:14:616:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12927,7 +12725,6 @@ inferType | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:625:22:625:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:49:625:54 | axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:625:57:625:62 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:627:9:627:9 | _ | | pattern_matching.rs:135:1:140:1 | Point | @@ -12949,7 +12746,6 @@ inferType | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:634:22:634:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:38:634:51 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:9:636:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:14:636:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12985,7 +12781,6 @@ inferType | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:647:22:647:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:5:656:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:11:651:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:651:11:651:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13003,7 +12798,6 @@ inferType | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:654:22:654:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:5:664:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:11:658:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:658:11:658:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13021,7 +12815,6 @@ inferType | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:662:22:662:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:667:9:667:13 | point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:17:667:38 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:28:667:29 | 10 | | {EXTERNAL LOCATION} | i32 | @@ -13038,30 +12831,25 @@ inferType | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:671:22:671:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:42:671:47 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:676:25:696:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:5:678:19 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:17:678:18 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:678:17:678:18 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:678:17:678:18 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:5:679:18 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | x | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:679:17:679:17 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:5:694:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:29 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:694:21:694:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:28:694:29 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:5:695:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:28 | match 10i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:695:21:695:28 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:28:695:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:698:34:724:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:700:9:700:20 | complex_data | | {EXTERNAL LOCATION} | (T_2) | @@ -13112,7 +12900,6 @@ inferType | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:709:17:710:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:710:17:710:24 | nested_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:710:27:710:34 | nested_g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:710:37:710:44 | nested_b | | {EXTERNAL LOCATION} | u8 | @@ -13145,7 +12932,6 @@ inferType | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:716:22:716:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:53:716:65 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:719:9:719:13 | other | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:719:9:719:13 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | @@ -13165,7 +12951,6 @@ inferType | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:721:22:721:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:50:721:62 | other_complex | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:721:50:721:62 | other_complex | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:721:50:721:62 | other_complex | T1 | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13362,7 +13147,6 @@ inferType | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:798:18:798:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:45:798:50 | loop_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:798:53:798:58 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:802:9:802:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13385,7 +13169,6 @@ inferType | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:805:18:805:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:47:805:54 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:809:13:809:17 | stack | | {EXTERNAL LOCATION} | Vec | | pattern_matching.rs:809:13:809:17 | stack | A | {EXTERNAL LOCATION} | Global | @@ -13413,7 +13196,6 @@ inferType | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:812:18:812:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:32:812:42 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:9:816:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:17:816:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -13431,7 +13213,6 @@ inferType | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:820:22:820:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:38:820:44 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:9:822:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:14:822:15 | { ... } | | {EXTERNAL LOCATION} | () | From fd5658dfe8fc5e5d24fef2b49d4dcc16a0221335 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 12:22:29 +0100 Subject: [PATCH 43/63] Rust: Tweak tests for associated types --- .../type-inference/associated_types.rs | 272 +++--- .../type-inference/type-inference.expected | 799 +++++++++--------- 2 files changed, 578 insertions(+), 493 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index 6ea5dc2957528..85de0e05aa0a9 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -1,14 +1,58 @@ -mod associated_type_in_trait { - #[derive(Debug)] - struct Wrapper { - field: A, +#[derive(Debug, Default, Copy, Clone)] +struct Wrapper(A); + +impl Wrapper { + fn unwrap(self) -> A { + self.0 // $ fieldof=Wrapper } +} - impl Wrapper { - fn unwrap(self) -> A { - self.field // $ fieldof=Wrapper - } +#[derive(Debug, Default)] +struct S; + +#[derive(Debug, Default)] +struct S2; + +#[derive(Debug, Default)] +struct S3; + +trait GetSet { + type Output; + + // GetSet::get + fn get(&self) -> Self::Output; + + // GetSet::set + fn set(&self, _a: Self::Output) {} +} + +trait AnotherGet: GetSet { + type AnotherOutput; + + // AnotherGet::get_another + fn get_another(&self) -> Self::AnotherOutput; +} + +impl GetSet for S { + type Output = S3; + + // S::get + fn get(&self) -> Self::Output { + S3 } +} + +impl GetSet for Wrapper { + type Output = T; + + // Wrapper::get + fn get(&self) -> Self::Output { + self.0 // $ fieldof=Wrapper + } +} + +mod default_method_using_associated_type { + use super::*; trait MyTrait { type AssociatedType; @@ -22,49 +66,77 @@ mod associated_type_in_trait { Self: Sized, { self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType - Self::AssociatedType::default() + let _default = Self::AssociatedType::default(); // $ MISSING: target=default _default:AssociatedType + Self::AssociatedType::default() // $ MISSING: target=default } } - trait MyTraitAssoc2 { - type GenericAssociatedType; + impl MyTrait for S { + type AssociatedType = S3; - // MyTrait::put - fn put(&self, a: A) -> Self::GenericAssociatedType; + // S::m1 + fn m1(self) -> Self::AssociatedType { + S3 + } + } - fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { - self.put(a); // $ target=MyTrait::put - self.put(b) // $ target=MyTrait::put + impl MyTrait for S2 { + // Associated type definition with a type argument + type AssociatedType = Wrapper; + + fn m1(self) -> Self::AssociatedType { + Wrapper(self) } } - // A generic trait with multiple associated types. - trait TraitMultipleAssoc { - type Assoc1; - type Assoc2; + pub fn test() { + let x1 = S; + // Call to method in `impl` block + println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():S3 - fn get_zero(&self) -> TrG; + let x2 = S; + // Call to default method in `trait` block + let y = x2.m2(); // $ target=m2 type=y:S3 + println!("{:?}", y); - fn get_one(&self) -> Self::Assoc1; + let x5 = S2; + println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 + let x6 = S2; + println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 + } +} - fn get_two(&self) -> Self::Assoc2; +// Tests for signatures that access associated types from type parameters +mod type_param_access_associated_type { + use super::*; + + fn tp_with_as(thing: T) -> ::Output { + thing.get() // $ target=GetSet::get } - #[derive(Debug, Default)] - struct S; + fn tp_without_as(thing: T) -> T::Output { + thing.get() // $ target=GetSet::get + } - #[derive(Debug, Default)] - struct S2; + pub fn test() { + let _o1 = tp_with_as(S); // $ target=tp_with_as MISSING: type=_o1:S3 + let _o2 = tp_without_as(S); // $ target=tp_without_as MISSING: type=_o2:S3 + } +} - #[derive(Debug, Default)] - struct AT; +mod generic_associated_type { + use super::*; - impl MyTrait for S { - type AssociatedType = AT; + trait MyTraitAssoc2 { + type GenericAssociatedType; - // S::m1 - fn m1(self) -> Self::AssociatedType { - AT + // MyTraitAssoc2::put + fn put(&self, a: A) -> Self::GenericAssociatedType; + + // MyTraitAssoc2::put_two + fn put_two(&self, a: A, b: A) -> Self::GenericAssociatedType { + self.put(a); // $ target=MyTraitAssoc2::put + self.put(b) // $ target=MyTraitAssoc2::put } } @@ -74,38 +146,41 @@ mod associated_type_in_trait { // S::put fn put(&self, a: A) -> Wrapper { - Wrapper { field: a } + Wrapper(a) } } - impl MyTrait for S2 { - // Associated type definition with a type argument - type AssociatedType = Wrapper; + pub fn test() { + let s = S; + // Call to the method in `impl` block + let _g1 = s.put(1i32); // $ target=S::put type=_g1:A.i32 - fn m1(self) -> Self::AssociatedType { - Wrapper { field: self } - } + // Call to default implementation in `trait` block + let _g2 = s.put_two(true, false); // $ target=MyTraitAssoc2::put_two MISSING: type=_g2:A.bool } +} - // NOTE: This implementation is just to make it possible to call `m2` on `S2.` - impl Default for Wrapper { - fn default() -> Self { - Wrapper { field: S2 } - } - } +mod multiple_associated_types { + use super::*; - // Function that returns an associated type from a trait bound + // A generic trait with multiple associated types. + trait TraitMultipleAssoc { + type Assoc1; + type Assoc2; - fn g(thing: T) -> ::AssociatedType { - thing.m1() // $ target=MyTrait::m1 + fn get_zero(&self) -> TrG; + + fn get_one(&self) -> Self::Assoc1; + + fn get_two(&self) -> Self::Assoc2; } - impl TraitMultipleAssoc for AT { + impl TraitMultipleAssoc for S3 { type Assoc1 = S; type Assoc2 = S2; - fn get_zero(&self) -> AT { - AT + fn get_zero(&self) -> S3 { + S3 } fn get_one(&self) -> Self::Assoc1 { @@ -118,82 +193,59 @@ mod associated_type_in_trait { } pub fn test() { - let x1 = S; - // Call to method in `impl` block - println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT - - let x2 = S; - // Call to default method in `trait` block - let y = x2.m2(); // $ target=m2 type=y:AT - println!("{:?}", y); - - let x3 = S; - // Call to the method in `impl` block - println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap - - // Call to default implementation in `trait` block - println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap - - let x4 = g(S); // $ target=g $ MISSING: type=x4:AT - println!("{:?}", x4); - - let x5 = S2; - println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 - let x6 = S2; - println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 - - let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT - let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S - let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 + let _assoc_zero = S3.get_zero(); // $ target=get_zero type=_assoc_zero:S3 + let _assoc_one = S3.get_one(); // $ target=get_one type=_assoc_one:S + let _assoc_two = S3.get_two(); // $ target=get_two type=_assoc_two:S2 } } mod associated_type_in_supertrait { - trait Supertrait { - type Content; - // Supertrait::insert - fn insert(&self, content: Self::Content); - } + use super::*; - trait Subtrait: Supertrait { + trait Subtrait: GetSet { // Subtrait::get_content - fn get_content(&self) -> Self::Content; + fn get_content(&self) -> Self::Output; } // A subtrait declared using a `where` clause. trait Subtrait2 where - Self: Supertrait, + Self: GetSet, { // Subtrait2::insert_two - fn insert_two(&self, c1: Self::Content, c2: Self::Content) { - self.insert(c1); // $ target=Supertrait::insert - self.insert(c2); // $ target=Supertrait::insert + fn insert_two(&self, c1: Self::Output, c2: Self::Output) { + self.set(c1); // $ target=GetSet::set + self.set(c2); // $ target=GetSet::set } } struct MyType(T); - impl Supertrait for MyType { - type Content = T; - fn insert(&self, _content: Self::Content) { + impl GetSet for MyType { + type Output = T; + + fn get(&self) -> Self::Output { + self.0 // $ fieldof=MyType + } + + fn set(&self, _content: Self::Output) { println!("Inserting content: "); } } - impl Subtrait for MyType { + impl Subtrait for MyType { // MyType::get_content - fn get_content(&self) -> Self::Content { - (*self).0.clone() // $ fieldof=MyType target=clone target=deref + fn get_content(&self) -> Self::Output { + (*self).0 // $ fieldof=MyType target=deref } } - fn get_content(item: &T) -> T::Content { + fn get_content(item: &T) -> T::Output { item.get_content() // $ target=Subtrait::get_content } - fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { - item.insert(c1); // $ target=Supertrait::insert + fn insert_three(item: &T, c1: T::Output, c2: T::Output, c3: T::Output) { + item.set(c1); // $ target=GetSet::set item.insert_two(c2, c3); // $ target=Subtrait2::insert_two } @@ -207,30 +259,30 @@ mod associated_type_in_supertrait { } mod generic_associated_type_name_clash { - struct GenS(GenT); + use super::*; - trait TraitWithAssocType { - type Output; - fn get_input(self) -> Self::Output; - } + struct ST(T); - impl TraitWithAssocType for GenS { + impl GetSet for ST { // This is not a recursive type, the `Output` on the right-hand side // refers to the type parameter of the impl block just above. type Output = Result; - fn get_input(self) -> Self::Output { - Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output + fn get(&self) -> Self::Output { + Ok(self.0) // $ fieldof=ST type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output } } pub fn test() { - let _y = GenS(true).get_input(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get_input + let _y = ST(true).get(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get } } pub fn test() { - associated_type_in_trait::test(); // $ target=test + default_method_using_associated_type::test(); // $ target=test + type_param_access_associated_type::test(); // $ target=test + generic_associated_type::test(); // $ target=test + multiple_associated_types::test(); // $ target=test associated_type_in_supertrait::test(); // $ target=test generic_associated_type_name_clash::test(); // $ target=test } 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 422e691ddf90a..24b8ea7a0676b 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,146 +1,163 @@ inferCertainType -| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | -| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | -| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | -| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | -| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | -| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:5:26:7:5 | { ... } | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:12 | self | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:6:9:6:12 | self | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:23:12:23:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | +| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | +| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | +| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4543,247 +4560,263 @@ inferCertainType | raw_pointer.rs:59:5:59:30 | raw_type_from_deref(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:59:25:59:29 | false | | {EXTERNAL LOCATION} | bool | inferType -| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:22 | self.field | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:24:13:24:21 | self.m1() | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:25:13:25:43 | ...::default(...) | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | -| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:36:13:36:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:37:13:37:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:67:13:67:14 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:77:13:77:32 | Wrapper {...} | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:86:13:86:35 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:93:13:93:33 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:30:93:31 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:108:13:108:14 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:112:13:112:13 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:116:13:116:14 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:121:13:121:14 | x1 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:121:18:121:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:123:9:123:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:26:123:27 | x1 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:123:26:123:32 | x1.m1() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:125:13:125:14 | x2 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:125:18:125:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:127:13:127:13 | y | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:127:17:127:18 | x2 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:127:17:127:23 | x2.m2() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:128:9:128:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:26:128:26 | y | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:130:13:130:14 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:130:18:130:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:132:9:132:44 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:26:132:27 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:132:26:132:34 | x3.put(...) | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:132:26:132:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:132:26:132:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:132:33:132:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:135:9:135:50 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:26:135:27 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:135:26:135:40 | x3.putTwo(...) | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:135:36:135:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:135:39:135:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:137:20:137:20 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:138:9:138:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:140:13:140:14 | x5 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:140:18:140:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:141:9:141:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:26:141:27 | x5 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:141:26:141:32 | x5.m1() | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:141:26:141:32 | x5.m1() | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:142:13:142:14 | x6 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:142:18:142:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:143:9:143:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:26:143:27 | x6 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:143:26:143:32 | x6.m2() | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:143:26:143:32 | x6.m2() | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:145:13:145:22 | assoc_zero | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:145:26:145:27 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:145:26:145:38 | AT.get_zero() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:146:13:146:21 | assoc_one | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:146:25:146:26 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:146:25:146:36 | AT.get_one() | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:147:13:147:21 | assoc_two | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:147:25:147:26 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:147:25:147:36 | AT.get_two() | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | -| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | -| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | -| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:170:13:170:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:171:13:171:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:13:180:43 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:186:48:188:9 | { ... } | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:19 | (...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:13:187:19 | (...) | T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:21 | ... .0 | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:29 | ... .clone() | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:14:187:18 | * ... | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:14:187:18 | * ... | T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:196:9:196:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:197:9:197:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:201:13:201:17 | item1 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:201:13:201:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:201:21:201:33 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:201:21:201:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:202:25:202:29 | item1 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:202:25:202:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:204:13:204:17 | item2 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:204:13:204:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:204:21:204:32 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:204:21:204:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:205:37:205:42 | &item2 | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:205:37:205:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:38:205:42 | item2 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:205:38:205:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | -| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:13:223:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:223:13:223:22 | Ok(...) | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:13:223:22 | Ok(...) | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:21 | self.0 | | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:228:13:228:14 | _y | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:228:13:228:14 | _y | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:13:228:14 | _y | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:27 | GenS(...) | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:228:18:228:27 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:39 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:228:18:228:39 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:39 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:5:26:7:5 | { ... } | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:12 | self | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:6:9:6:12 | self | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:14 | self.0 | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:23:12:23:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | +| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:41:9:41:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:14 | self.0 | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:68:13:68:21 | self.m1() | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:70:13:70:43 | ...::default(...) | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:79:13:79:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:13:88:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:88:13:88:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:93:13:93:14 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:93:18:93:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:95:9:95:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:26:95:27 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:95:26:95:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:97:13:97:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:97:18:97:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:13:99:13 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:99:17:99:18 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:17:99:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:100:9:100:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:26:100:26 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:102:13:102:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:102:18:102:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:103:9:103:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:26:103:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:103:26:103:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:103:26:103:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:104:13:104:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:104:18:104:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:105:9:105:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:26:105:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:105:26:105:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:105:26:105:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:122:30:122:30 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:123:33:123:33 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | +| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:138:13:138:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:139:13:139:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:13:149:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:149:13:149:22 | Wrapper(...) | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:154:13:154:13 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:154:17:154:17 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:156:13:156:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:156:13:156:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:156:19:156:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:156:19:156:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:156:19:156:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:13:159:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:159:19:159:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:159:19:159:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:183:13:183:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:187:13:187:13 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:191:13:191:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:13:196:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:196:27:196:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:196:27:196:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:197:13:197:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:197:26:197:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:197:26:197:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:198:13:198:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:198:26:198:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:198:26:198:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | +| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:217:13:217:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:218:13:218:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:18 | self.0 | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:13:232:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:238:47:240:9 | { ... } | | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:13:239:19 | (...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:13:239:19 | (...) | T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:13:239:21 | ... .0 | | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:14:239:18 | * ... | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:14:239:18 | * ... | T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:248:9:248:20 | item.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:249:9:249:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:253:13:253:17 | item1 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:253:13:253:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:253:21:253:33 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:253:21:253:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:254:25:254:29 | item1 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:254:25:254:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:256:13:256:17 | item2 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:256:13:256:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:256:21:256:32 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:256:21:256:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:257:37:257:42 | &item2 | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:257:37:257:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:38:257:42 | item2 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:257:38:257:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:13:272:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:272:13:272:22 | Ok(...) | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:13:272:22 | Ok(...) | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:21 | self.0 | | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:277:13:277:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:277:13:277:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:13:277:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:25 | ST(...) | | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:277:18:277:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:31 | ... .get() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:277:18:277:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | From 62193540f75b50dd50fb8fdbe51fe37c62c4bc9c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 11:10:22 +0100 Subject: [PATCH 44/63] Rust: Add additional tests for associated types --- .../type-inference/associated_types.rs | 76 ++ .../type-inference/type-inference.expected | 937 ++++++++++-------- 2 files changed, 621 insertions(+), 392 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index 85de0e05aa0a9..d62df911745e7 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -26,6 +26,10 @@ trait GetSet { fn set(&self, _a: Self::Output) {} } +fn get + ?Sized>(item: &T) -> O { + item.get() // $ target=GetSet::get +} + trait AnotherGet: GetSet { type AnotherOutput; @@ -124,6 +128,55 @@ mod type_param_access_associated_type { } } +// Tests for specifying associated types using equalities, e.g., `Trait` +mod equality_on_associated_type { + use super::*; + + fn _in_same_trait(x: T) + where + T: GetSet, + { + let _a = x.get(); // $ target=GetSet::get type=_a:char + } + + // Here we specify `Output` from `GetSet` through the subtrait `AnotherGet`. + fn _in_subtrait(x: T) + where + T: AnotherGet, + { + let _a1 = x.get(); // $ target=GetSet::get MISSING: type=_a1:i32 + let _a2 = get(&x); // $ target=get MISSING: type=_a2:i32 + let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another + } + + // Here we specify the associated types as two separate trait bounds + fn _two_bounds(x: T) + where + T: AnotherGet, + T: GetSet, + { + let _a1 = x.get(); // $ target=GetSet::get type=_a1:i32 + let _a2 = get(&x); // $ target=get type=_a2:i32 + let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another + } + + trait AssocNameClash: GetSet { + type Output; // This name clashes with GetSet::Output + + // AssocNameClash::get2 + fn get2(&self) -> ::Output; + } + + fn _two_bounds_name_clash(x: T) + where + T: AssocNameClash, + T: GetSet, + { + let _a = x.get(); // $ type=_a:i32 target=GetSet::get + let _b = x.get2(); // $ target=AssocNameClash::get2 MISSING: type=_b:char + } +} + mod generic_associated_type { use super::*; @@ -278,6 +331,29 @@ mod generic_associated_type_name_clash { } } +// Tests for associated types in `dyn` trait objects +mod dyn_trait { + use super::*; + + fn _assoc_type_from_trait(t: &dyn GetSet) { + // Explicit deref + let _a1 = (*t).get(); // $ target=deref target=GetSet::get type=_a1:i32 + + // Auto-deref + let _a2 = t.get(); // $ target=GetSet::get type=_a2:i32 + + let _a3 = get(t); // $ target=get type=_a3:i32 + } + + fn _assoc_type_from_supertrait(t: &dyn AnotherGet) { + let _a1 = (*t).get(); // $ target=deref target=GetSet::get MISSING: type=_a1:i32 + let _a2 = t.get(); // $ target=GetSet::get MISSING: type=_a2:i32 + let _a3 = get(t); // $ target=get MISSING: type=_a3:i32 + let _b1 = (*t).get_another(); // $ target=deref target=AnotherGet::get_another type=_b1:bool + let _b2 = t.get_another(); // $ target=AnotherGet::get_another type=_b2:bool + } +} + pub fn test() { default_method_using_associated_type::test(); // $ target=test type_param_access_associated_type::test(); // $ target=test 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 24b8ea7a0676b..83e07dd6ed61e 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -10,154 +10,212 @@ inferCertainType | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | -| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | -| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | -| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:29:58:31:1 | { ... } | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:30:5:30:8 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:30:5:30:8 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:37:20:37:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:20:37:24 | SelfParam | TRef | associated_types.rs:33:1:38:1 | Self [trait AnotherGet] | +| associated_types.rs:44:12:44:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:44:12:44:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:44:35:46:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:53:12:53:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:53:12:53:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:53:12:53:16 | SelfParam | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:53:35:55:5 | { ... } | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:54:9:54:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:91:15:91:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:91:45:93:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:91:45:93:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:21:92:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:96:19:110:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:117:30:117:34 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:121:33:121:37 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:122:9:122:13 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:125:19:128:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:26:135:26 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:138:5:140:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:139:18:139:18 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:18:149:18 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:153:23:153:23 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:157:5:161:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:158:19:158:19 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:159:23:159:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:159:24:159:24 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:18:160:18 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:167:17:167:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:167:17:167:21 | SelfParam | TRef | associated_types.rs:163:5:168:5 | Self [trait AssocNameClash] | +| associated_types.rs:170:34:170:34 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:174:5:177:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:175:18:175:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:176:18:176:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:187:19:187:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:19:187:23 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:187:26:187:26 | a | | associated_types.rs:187:16:187:16 | A | +| associated_types.rs:190:23:190:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:201:26:201:26 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:201:46:203:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:201:46:203:9 | { ... } | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:21:202:21 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:206:19:213:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:209:25:209:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:212:29:212:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:212:35:212:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:224:21:224:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:224:21:224:25 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:226:20:226:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:226:20:226:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:228:20:228:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:20:228:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:235:21:235:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:235:21:235:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:235:34:237:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:20:239:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:20:239:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:43:241:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:243:20:243:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:20:243:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:243:43:245:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:248:19:252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:260:24:260:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | +| associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:280:39:282:9 | { ... } | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:281:13:281:16 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:281:13:281:16 | self | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:16:284:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:284:16:284:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:284:16:284:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:23:284:30 | _content | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:47:286:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:15:292:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:292:15:292:18 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:15:292:18 | self | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:296:33:296:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:296:33:296:36 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:297:9:297:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:297:9:297:12 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:300:35:300:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:300:35:300:38 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:300:90:303:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:301:9:301:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:301:9:301:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:302:9:302:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:302:9:302:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:305:19:311:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:306:28:306:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:309:28:309:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:37:310:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:324:16:324:20 | SelfParam | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:324:39:326:9 | { ... } | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:325:16:325:19 | self | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:325:16:325:19 | self | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:329:19:331:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:330:21:330:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:338:31:338:31 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:338:31:338:31 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:338:31:338:31 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:338:61:346:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:340:21:340:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:340:21:340:21 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:21:340:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:343:19:343:19 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:343:19:343:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:23:345:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:345:23:345:23 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:345:23:345:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:360:5:360:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:361:5:361:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:362:5:362:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:363:5:363:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4572,251 +4630,346 @@ inferType | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | -| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:41:9:41:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:14 | self.0 | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:68:13:68:21 | self.m1() | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:70:13:70:43 | ...::default(...) | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:79:13:79:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:13:88:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:88:13:88:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:93:13:93:14 | x1 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:93:18:93:18 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:95:9:95:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:26:95:27 | x1 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:95:26:95:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:97:13:97:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:29:58:31:1 | { ... } | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:30:5:30:8 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:30:5:30:8 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:30:5:30:14 | item.get() | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:37:20:37:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:20:37:24 | SelfParam | TRef | associated_types.rs:33:1:38:1 | Self [trait AnotherGet] | +| associated_types.rs:44:12:44:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:44:12:44:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:44:35:46:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:45:9:45:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:53:12:53:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:53:12:53:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:53:12:53:16 | SelfParam | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:53:35:55:5 | { ... } | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:54:9:54:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:14 | self.0 | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:83:13:83:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:91:15:91:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:91:45:93:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:91:45:93:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:13:92:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:92:13:92:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:21:92:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:96:19:110:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:97:13:97:14 | x1 | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:97:18:97:18 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:99:13:99:13 | y | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:99:17:99:18 | x2 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:99:17:99:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:100:9:100:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:26:100:26 | y | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:102:13:102:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:102:18:102:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:103:9:103:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:26:103:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:103:26:103:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:103:26:103:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:104:13:104:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:104:18:104:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:105:9:105:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:26:105:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:105:26:105:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:105:26:105:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:122:30:122:30 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:123:33:123:33 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | -| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:138:13:138:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:139:13:139:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:13:149:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:149:13:149:22 | Wrapper(...) | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:154:13:154:13 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:154:17:154:17 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:156:13:156:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:156:13:156:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:156:19:156:19 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:156:19:156:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:156:19:156:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:159:13:159:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:159:19:159:19 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:159:19:159:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:183:13:183:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:187:13:187:13 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:191:13:191:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:13:196:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:196:27:196:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:196:27:196:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:197:13:197:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:197:26:197:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:197:26:197:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:198:13:198:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:198:26:198:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:198:26:198:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | -| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:217:13:217:24 | self.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:218:13:218:24 | self.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:18 | self.0 | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:13:232:43 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:238:47:240:9 | { ... } | | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:13:239:19 | (...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:13:239:19 | (...) | T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:13:239:21 | ... .0 | | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:14:239:18 | * ... | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:14:239:18 | * ... | T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:248:9:248:20 | item.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:249:9:249:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:253:13:253:17 | item1 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:253:13:253:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:253:21:253:33 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:253:21:253:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:254:25:254:29 | item1 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:254:25:254:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:256:13:256:17 | item2 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:256:13:256:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:256:21:256:32 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:256:21:256:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:257:37:257:42 | &item2 | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:257:37:257:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:38:257:42 | item2 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:257:38:257:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:13:272:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:272:13:272:22 | Ok(...) | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:13:272:22 | Ok(...) | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:21 | self.0 | | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:277:13:277:14 | _y | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:277:13:277:14 | _y | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:13:277:14 | _y | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:25 | ST(...) | | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:277:18:277:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:31 | ... .get() | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:277:18:277:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:9:99:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:26:99:27 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:26:99:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:101:13:101:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:101:18:101:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:103:13:103:13 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:103:17:103:18 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:103:17:103:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:104:9:104:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:26:104:26 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:106:13:106:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:106:18:106:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:107:9:107:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:26:107:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:107:26:107:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:107:26:107:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:108:13:108:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:108:18:108:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:109:9:109:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:26:109:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:109:26:109:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:109:26:109:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:117:30:117:34 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:121:33:121:37 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:122:9:122:13 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:125:19:128:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:126:30:126:30 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:127:33:127:33 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:135:26:135:26 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:138:5:140:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:139:13:139:14 | _a | | {EXTERNAL LOCATION} | char | +| associated_types.rs:139:18:139:18 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:139:18:139:24 | x.get() | | {EXTERNAL LOCATION} | char | +| associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:23:148:24 | &x | TRef | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:13:149:14 | _b | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:149:18:149:18 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:18:149:32 | x.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:153:23:153:23 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:157:5:161:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:158:13:158:15 | _a1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:158:19:158:19 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:158:19:158:25 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:13:159:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:19:159:25 | get(...) | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:23:159:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:159:23:159:24 | &x | TRef | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:159:24:159:24 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:13:160:14 | _b | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:160:18:160:18 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:18:160:32 | x.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:167:17:167:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:167:17:167:21 | SelfParam | TRef | associated_types.rs:163:5:168:5 | Self [trait AssocNameClash] | +| associated_types.rs:170:34:170:34 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:174:5:177:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:175:13:175:14 | _a | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:175:18:175:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:175:18:175:24 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:176:18:176:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:187:19:187:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:19:187:23 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:187:26:187:26 | a | | associated_types.rs:187:16:187:16 | A | +| associated_types.rs:190:23:190:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:201:26:201:26 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:201:46:203:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:201:46:203:9 | { ... } | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:13:202:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:202:13:202:22 | Wrapper(...) | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:21:202:21 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:206:19:213:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:207:13:207:13 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:207:17:207:17 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:209:13:209:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:209:13:209:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:209:19:209:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:209:19:209:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:209:19:209:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:209:25:209:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:212:13:212:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:212:19:212:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:212:19:212:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:212:29:212:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:212:35:212:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:224:21:224:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:224:21:224:25 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:226:20:226:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:226:20:226:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:228:20:228:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:20:228:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:235:21:235:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:235:21:235:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:235:34:237:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:236:13:236:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:20:239:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:20:239:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:43:241:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:240:13:240:13 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:243:20:243:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:20:243:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:243:43:245:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:244:13:244:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:248:19:252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:249:13:249:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:249:27:249:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:249:27:249:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:250:13:250:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:250:26:250:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:250:26:250:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:251:13:251:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:251:26:251:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:251:26:251:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:260:24:260:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | +| associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:270:13:270:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:13:271:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:280:39:282:9 | { ... } | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:281:13:281:16 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:281:13:281:16 | self | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:18 | self.0 | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:16:284:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:284:16:284:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:284:16:284:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:23:284:30 | _content | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:47:286:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:13:285:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:291:47:293:9 | { ... } | | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:13:292:19 | (...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:13:292:19 | (...) | T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:13:292:21 | ... .0 | | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:14:292:18 | * ... | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:14:292:18 | * ... | T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:15:292:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:292:15:292:18 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:15:292:18 | self | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:296:33:296:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:296:33:296:36 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:297:9:297:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:297:9:297:12 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:300:35:300:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:300:35:300:38 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:300:90:303:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:301:9:301:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:301:9:301:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:301:9:301:20 | item.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:302:9:302:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:302:9:302:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:302:9:302:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:305:19:311:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:306:13:306:17 | item1 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:306:13:306:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:306:21:306:33 | MyType(...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:306:21:306:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:306:28:306:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:307:25:307:29 | item1 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:307:25:307:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:309:13:309:17 | item2 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:309:13:309:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:309:21:309:32 | MyType(...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:309:21:309:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:309:28:309:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:37:310:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:310:37:310:42 | &item2 | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:310:37:310:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:38:310:42 | item2 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:310:38:310:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:324:16:324:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:324:16:324:20 | SelfParam | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:324:39:326:9 | { ... } | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:13:325:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:325:13:325:22 | Ok(...) | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:13:325:22 | Ok(...) | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:325:16:325:19 | self | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:325:16:325:19 | self | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:21 | self.0 | | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:329:19:331:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:330:13:330:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:330:13:330:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:13:330:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:25 | ST(...) | | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:330:18:330:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:31 | ... .get() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:330:18:330:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:21:330:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:338:31:338:31 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:338:31:338:31 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:338:31:338:31 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:338:61:346:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:340:13:340:15 | _a1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:19:340:22 | (...) | | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:19:340:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:19:340:28 | ... .get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:20:340:21 | * ... | | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:20:340:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:21:340:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:340:21:340:21 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:21:340:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:13:343:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:343:19:343:19 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:343:19:343:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:25 | t.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:13:345:15 | _a3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:19:345:24 | get(...) | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:23:345:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:345:23:345:23 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:345:23:345:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:19:349:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:19:349:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:20:349:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:20:349:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:13:352:15 | _b1 | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:19:352:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:36 | ... .get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:20:352:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:20:352:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:13:353:15 | _b2 | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:33 | t.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:360:5:360:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:361:5:361:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:362:5:362:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:363:5:363:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | From a19ad5e557811528a22521fe3f5a871af3ff96e5 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 14:24:45 +0100 Subject: [PATCH 45/63] Rust: Associated types are inherited as type parameters by traits and dyn traits --- .../rust/elements/internal/TraitImpl.qll | 7 ++ .../rust/internal/typeinference/Type.qll | 73 ++++++++++++------- .../internal/typeinference/TypeInference.qll | 19 +++-- .../internal/typeinference/TypeMention.qll | 60 ++++++++------- .../type-inference/associated_types.rs | 12 +-- .../type-inference/type-inference.expected | 54 +++++++++++--- 6 files changed, 148 insertions(+), 77 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll index 83ba43020d78f..bb9ffa83244f6 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll @@ -5,6 +5,7 @@ */ private import codeql.rust.elements.internal.generated.Trait +private import codeql.rust.internal.PathResolution as PathResolution /** * INTERNAL: This module contains the customizable definition of `Trait` and should not @@ -67,5 +68,11 @@ module Impl { * `where` clauses for `Self`. */ TypeBound getATypeBound() { result = this.getTypeBound(_) } + + /** Gets a direct supertrait of this trait, if any. */ + Trait getSupertrait() { + result = + PathResolution::resolvePath(this.getATypeBound().getTypeRepr().(PathTypeRepr).getPath()) + } } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index df08d84edd032..a37baf92311d1 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -9,10 +9,17 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.frameworks.stdlib.Builtins as Builtins +/** Gets a type alias of `trait` or of a supertrait of `trait`. */ +private TypeAlias getTraitTypeAlias(Trait trait) { + result = trait.getSupertrait*().getAssocItemList().getAnAssocItem() +} + /** - * Holds if a dyn trait type should have a type parameter associated with `n`. A - * dyn trait type inherits the type parameters of the trait it implements. That - * includes the type parameters corresponding to associated types. + * Holds if a dyn trait type for the trait `trait` should have a type parameter + * associated with `n`. + * + * A dyn trait type inherits the type parameters of the trait it implements. + * That includes the type parameters corresponding to associated types. * * For instance in * ```rust @@ -24,10 +31,7 @@ private import codeql.rust.frameworks.stdlib.Builtins as Builtins */ private predicate dynTraitTypeParameter(Trait trait, AstNode n) { trait = any(DynTraitTypeRepr dt).getTrait() and - ( - n = trait.getGenericParamList().getATypeParam() or - n = trait.(TraitItemNode).getAnAssocItem().(TypeAlias) - ) + n = [trait.getGenericParamList().getATypeParam().(AstNode), getTraitTypeAlias(trait)] } cached @@ -39,8 +43,10 @@ newtype TType = TNeverType() or TUnknownType() or TTypeParamTypeParameter(TypeParam t) or - TAssociatedTypeTypeParameter(TypeAlias t) { any(TraitItemNode trait).getAnAssocItem() = t } or - TDynTraitTypeParameter(AstNode n) { dynTraitTypeParameter(_, n) } or + TAssociatedTypeTypeParameter(Trait trait, TypeAlias typeAlias) { + getTraitTypeAlias(trait) = typeAlias + } or + TDynTraitTypeParameter(Trait trait, AstNode n) { dynTraitTypeParameter(trait, n) } or TImplTraitTypeParameter(ImplTraitTypeRepr implTrait, TypeParam tp) { implTraitTypeParam(implTrait, _, tp) } or @@ -270,17 +276,10 @@ class DynTraitType extends Type, TDynTraitType { DynTraitType() { this = TDynTraitType(trait) } override DynTraitTypeParameter getPositionalTypeParameter(int i) { - result = TDynTraitTypeParameter(trait.getGenericParamList().getTypeParam(i)) + result.getTypeParam() = trait.getGenericParamList().getTypeParam(i) } - override TypeParameter getATypeParameter() { - result = super.getATypeParameter() - or - exists(AstNode n | - dynTraitTypeParameter(trait, n) and - result = TDynTraitTypeParameter(n) - ) - } + override DynTraitTypeParameter getATypeParameter() { result.getTrait() = trait } Trait getTrait() { result = trait } @@ -427,30 +426,54 @@ class TypeParamTypeParameter extends TypeParameter, TTypeParamTypeParameter { * // ... * } * ``` + * Furthermore, associated types of a supertrait induce a corresponding type + * parameter in any subtraits. E.g., if we have a trait `SubTrait: ATrait` then + * `SubTrait` also has a type parameter for the associated type + * `AssociatedType`. */ class AssociatedTypeTypeParameter extends TypeParameter, TAssociatedTypeTypeParameter { + private Trait trait; private TypeAlias typeAlias; - AssociatedTypeTypeParameter() { this = TAssociatedTypeTypeParameter(typeAlias) } + AssociatedTypeTypeParameter() { this = TAssociatedTypeTypeParameter(trait, typeAlias) } TypeAlias getTypeAlias() { result = typeAlias } /** Gets the trait that contains this associated type declaration. */ - TraitItemNode getTrait() { result.getAnAssocItem() = typeAlias } + TraitItemNode getTrait() { result = trait } - override ItemNode getDeclaringItem() { result = this.getTrait() } + /** + * Holds if this associated type type parameter corresponds directly its + * trait, that is, it is not inherited from a supertrait. + */ + predicate isDirect() { trait.(TraitItemNode).getAnAssocItem() = typeAlias } + + override ItemNode getDeclaringItem() { result = trait } - override string toString() { result = typeAlias.getName().getText() } + override string toString() { + result = typeAlias.getName().getText() + "[" + trait.getName().toString() + "]" + } override Location getLocation() { result = typeAlias.getLocation() } } +/** Gets the associated type type parameter corresponding directly to `typeAlias`. */ +AssociatedTypeTypeParameter getAssociatedTypeTypeParameter(TypeAlias typeAlias) { + result.isDirect() and result.getTypeAlias() = typeAlias +} + +/** Gets the dyn type type parameter corresponding directly to `typeAlias`. */ +DynTraitTypeParameter getDynTraitTypeParameter(TypeAlias typeAlias) { + result.getTraitTypeParameter() = getAssociatedTypeTypeParameter(typeAlias) +} + class DynTraitTypeParameter extends TypeParameter, TDynTraitTypeParameter { + private Trait trait; private AstNode n; - DynTraitTypeParameter() { this = TDynTraitTypeParameter(n) } + DynTraitTypeParameter() { this = TDynTraitTypeParameter(trait, n) } - Trait getTrait() { dynTraitTypeParameter(result, n) } + Trait getTrait() { result = trait } /** Gets the dyn trait type that this type parameter belongs to. */ DynTraitType getDynTraitType() { result.getTrait() = this.getTrait() } @@ -465,7 +488,7 @@ class DynTraitTypeParameter extends TypeParameter, TDynTraitTypeParameter { TypeParameter getTraitTypeParameter() { result.(TypeParamTypeParameter).getTypeParam() = n or - result.(AssociatedTypeTypeParameter).getTypeAlias() = n + result = TAssociatedTypeTypeParameter(trait, n) } private string toStringInner() { diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 46454ec88b096..3be7565ebaa15 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -90,7 +90,7 @@ private module Input1 implements InputSig1 { tp = rank[result](TypeParameter tp0, int kind, int id1, int id2 | kind = 1 and - id1 = 0 and + id1 = idOfTypeParameterAstNode(tp0.(DynTraitTypeParameter).getTrait()) and id2 = idOfTypeParameterAstNode([ tp0.(DynTraitTypeParameter).getTypeParam().(AstNode), @@ -102,10 +102,13 @@ private module Input1 implements InputSig1 { id2 = idOfTypeParameterAstNode(tp0.(ImplTraitTypeParameter).getTypeParam()) or kind = 3 and + id1 = idOfTypeParameterAstNode(tp0.(AssociatedTypeTypeParameter).getTrait()) and + id2 = idOfTypeParameterAstNode(tp0.(AssociatedTypeTypeParameter).getTypeAlias()) + or + kind = 4 and id1 = 0 and exists(AstNode node | id2 = idOfTypeParameterAstNode(node) | node = tp0.(TypeParamTypeParameter).getTypeParam() or - node = tp0.(AssociatedTypeTypeParameter).getTypeAlias() or node = tp0.(SelfTypeParameter).getTrait() or node = tp0.(ImplTraitTypeTypeParameter).getImplTraitTypeRepr() ) @@ -3507,12 +3510,12 @@ private DynTraitType getFutureTraitType() { result.getTrait() instanceof FutureT pragma[nomagic] private AssociatedTypeTypeParameter getFutureOutputTypeParameter() { - result.getTypeAlias() = any(FutureTrait ft).getOutputType() + result = getAssociatedTypeTypeParameter(any(FutureTrait ft).getOutputType()) } pragma[nomagic] private DynTraitTypeParameter getDynFutureOutputTypeParameter() { - result = TDynTraitTypeParameter(any(FutureTrait ft).getOutputType()) + result.getTraitTypeParameter() = getFutureOutputTypeParameter() } pragma[nomagic] @@ -3824,20 +3827,20 @@ private Type invokedClosureFnTypeAt(InvokedClosureExpr ce, TypePath path) { /** Gets the path to a closure's return type. */ private TypePath closureReturnPath() { - result = TypePath::singleton(TDynTraitTypeParameter(any(FnOnceTrait t).getOutputType())) + result = TypePath::singleton(getDynTraitTypeParameter(any(FnOnceTrait t).getOutputType())) } /** Gets the path to a closure with arity `arity`s `index`th parameter type. */ pragma[nomagic] private TypePath closureParameterPath(int arity, int index) { result = - TypePath::cons(TDynTraitTypeParameter(any(FnOnceTrait t).getTypeParam()), + TypePath::cons(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam()), TypePath::singleton(getTupleTypeParameter(arity, index))) } /** Gets the path to the return type of the `FnOnce` trait. */ private TypePath fnReturnPath() { - result = TypePath::singleton(TAssociatedTypeTypeParameter(any(FnOnceTrait t).getOutputType())) + result = TypePath::singleton(getAssociatedTypeTypeParameter(any(FnOnceTrait t).getOutputType())) } /** @@ -3898,7 +3901,7 @@ private Type inferClosureExprType(AstNode n, TypePath path) { result = TDynTraitType(any(FnOnceTrait t)) // always exists because of the mention in `builtins/mentions.rs` or n = ce and - path = TypePath::singleton(TDynTraitTypeParameter(any(FnOnceTrait t).getTypeParam())) and + path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam())) and result.(TupleType).getArity() = ce.getNumberOfParams() or // Propagate return type annotation to body diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 41146e22c1b67..1e2ca53b9cda0 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -148,30 +148,11 @@ class NonAliasPathTypeMention extends PathTypeMention { TypeItemNode getResolved() { result = resolved } - /** - * Gets a type alias with the name `name` of the trait that this path resolves - * to, if any. - */ - pragma[nomagic] - private TypeAlias getResolvedTraitAlias(string name) { - result = resolved.(TraitItemNode).getAnAssocItem() and - name = result.getName().getText() - } - pragma[nomagic] private TypeRepr getAssocTypeArg(string name) { result = this.getSegment().getGenericArgList().getAssocTypeArg(name) } - /** Gets the type argument for the associated type `alias`, if any. */ - pragma[nomagic] - private TypeRepr getAnAssocTypeArgument(TypeAlias alias) { - exists(string name | - alias = this.getResolvedTraitAlias(name) and - result = this.getAssocTypeArg(name) - ) - } - /** * Gets the type mention that instantiates the implicit `Self` type parameter * for this path, if it occurs in the position of a trait bound. @@ -239,7 +220,7 @@ class NonAliasPathTypeMention extends PathTypeMention { tp = TTypeParamTypeParameter(t.getTypeParam()) and result = s.getParenthesizedArgList().(TypeMention).resolveTypeAt(path) or - tp = TAssociatedTypeTypeParameter(t.getOutputType()) and + tp = TAssociatedTypeTypeParameter(t, t.getOutputType()) and ( result = s.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) or @@ -249,6 +230,28 @@ class NonAliasPathTypeMention extends PathTypeMention { path.isEmpty() ) ) + or + // If `path` is the supertrait of a trait block then any associated types + // of the supertrait should be instantiated with the subtrait's + // corresponding copies. + // + // As an example, for + // ```rust + // trait Sub: Super { + // // ^^^^^ this + // ``` + // we do something to the effect of: + // ```rust + // trait Sub: Super + // ``` + // Where `Assoc` is an associated type of `Super` and `Assoc[Sub]` denotes + // the copy of the type parameter inherited into `Sub`. + exists(Trait subtrait, TypeAlias alias | + subtrait.getATypeBound().getTypeRepr().(PathTypeRepr).getPath() = this and + result = TAssociatedTypeTypeParameter(subtrait, alias) and + tp = TAssociatedTypeTypeParameter(resolved, alias) and + path.isEmpty() + ) } pragma[nomagic] @@ -259,9 +262,10 @@ class NonAliasPathTypeMention extends PathTypeMention { /** Gets the type mention in this path for the type parameter `tp`, if any. */ pragma[nomagic] private TypeMention getTypeMentionForTypeParameter(TypeParameter tp) { - exists(TypeAlias alias | - result = this.getAnAssocTypeArgument(alias) and - tp = TAssociatedTypeTypeParameter(alias) + exists(TypeAlias alias, string name | + result = this.getAssocTypeArg(name) and + tp = TAssociatedTypeTypeParameter(resolved, alias) and + alias = resolved.(TraitItemNode).getASuccessor(name) ) or // If `path` is the trait of an `impl` block then any associated types @@ -281,7 +285,8 @@ class NonAliasPathTypeMention extends PathTypeMention { this = impl.getTraitPath() and alias = impl.getASuccessor(pragma[only_bind_into](name)) and result = alias.getTypeRepr() and - tp = TAssociatedTypeTypeParameter(this.getResolvedAlias(pragma[only_bind_into](name))) + tp = + TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(pragma[only_bind_into](name))) ) } @@ -299,7 +304,7 @@ class NonAliasPathTypeMention extends PathTypeMention { or result = TTypeParamTypeParameter(resolved) or - result = TAssociatedTypeTypeParameter(resolved) + result = TAssociatedTypeTypeParameter(resolvePath(this.getQualifier()), resolved) } override Type resolvePathTypeAt(TypePath typePath) { @@ -384,9 +389,8 @@ class TraitMention extends TypeMention instanceof TraitItemNode { result = TSelfTypeParameter(this) or exists(TypeAlias alias | - alias = super.getAnAssocItem() and typePath = TypePath::singleton(result) and - result = TAssociatedTypeTypeParameter(alias) + result = TAssociatedTypeTypeParameter(this, alias) ) or exists(TypeParam tp | @@ -540,7 +544,7 @@ class DynTraitTypeReprMention extends TypeMention instanceof DynTraitTypeRepr { // impl Trait for (dyn Trait) // ``` // To achieve this: -// - `DynTypeAbstraction` is an abstraction over type parameters of the trait. +// - `DynTypeAbstraction` is an abstraction over the type parameters of the trait. // - `DynTypeBoundListMention` (this class) is a type mention which has `dyn // Trait` at the root and which for every type parameter of `dyn Trait` has the // corresponding type parameter of the trait. diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index d62df911745e7..b08be0264a040 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -69,7 +69,7 @@ mod default_method_using_associated_type { Self::AssociatedType: Default, Self: Sized, { - self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType + self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType[MyTrait] let _default = Self::AssociatedType::default(); // $ MISSING: target=default _default:AssociatedType Self::AssociatedType::default() // $ MISSING: target=default } @@ -144,8 +144,8 @@ mod equality_on_associated_type { where T: AnotherGet, { - let _a1 = x.get(); // $ target=GetSet::get MISSING: type=_a1:i32 - let _a2 = get(&x); // $ target=get MISSING: type=_a2:i32 + let _a1 = x.get(); // $ target=GetSet::get type=_a1:i32 + let _a2 = get(&x); // $ target=get type=_a2:i32 let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another } @@ -346,9 +346,9 @@ mod dyn_trait { } fn _assoc_type_from_supertrait(t: &dyn AnotherGet) { - let _a1 = (*t).get(); // $ target=deref target=GetSet::get MISSING: type=_a1:i32 - let _a2 = t.get(); // $ target=GetSet::get MISSING: type=_a2:i32 - let _a3 = get(t); // $ target=get MISSING: type=_a3:i32 + let _a1 = (*t).get(); // $ target=deref target=GetSet::get type=_a1:i32 + let _a2 = t.get(); // $ target=GetSet::get type=_a2:i32 + let _a3 = get(t); // $ target=get type=_a3:i32 let _b1 = (*t).get_another(); // $ target=deref target=AnotherGet::get_another type=_b1:bool let _b2 = t.get_another(); // $ target=AnotherGet::get_another type=_b2:bool } 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 83e07dd6ed61e..8be31b1b9d196 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -8,7 +8,7 @@ inferCertainType | associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | -| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output[GetSet] | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | | associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | @@ -29,7 +29,7 @@ inferCertainType | associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | | associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | @@ -87,7 +87,7 @@ inferCertainType | associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | -| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | @@ -124,11 +124,15 @@ inferCertainType | associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | | associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:30:269:31 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | +| associated_types.rs:269:48:269:49 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:270:22:270:23 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:22:271:23 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | @@ -193,22 +197,28 @@ inferCertainType | associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | @@ -4628,7 +4638,7 @@ inferType | associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | -| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output[GetSet] | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | | associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | @@ -4652,10 +4662,10 @@ inferType | associated_types.rs:54:9:54:14 | self.0 | | associated_types.rs:49:6:49:12 | T | | associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType | -| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | +| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:83:13:83:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | @@ -4720,7 +4730,11 @@ inferType | associated_types.rs:139:18:139:24 | x.get() | | {EXTERNAL LOCATION} | char | | associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | | associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:13:147:15 | _a1 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:147:19:147:25 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:148:13:148:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:148:19:148:25 | get(...) | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | | associated_types.rs:148:23:148:24 | &x | TRef | associated_types.rs:143:21:143:21 | T | | associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | @@ -4755,14 +4769,14 @@ inferType | associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | -| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | @@ -4818,13 +4832,17 @@ inferType | associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | | associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:30:269:31 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | +| associated_types.rs:269:48:269:49 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | | associated_types.rs:270:13:270:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:22:270:23 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | | associated_types.rs:271:13:271:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:271:22:271:23 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | @@ -4935,33 +4953,49 @@ inferType | associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:13:349:15 | _a1 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:19:349:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:19:349:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:19:349:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:349:19:349:28 | ... .get() | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:20:349:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:20:349:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:20:349:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:350:13:350:15 | _a2 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:350:19:350:25 | t.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:351:13:351:15 | _a3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:351:19:351:24 | get(...) | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:13:352:15 | _b1 | | {EXTERNAL LOCATION} | bool | | associated_types.rs:352:19:352:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:19:352:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:19:352:36 | ... .get_another() | | {EXTERNAL LOCATION} | bool | | associated_types.rs:352:20:352:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:20:352:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:20:352:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:13:353:15 | _b2 | | {EXTERNAL LOCATION} | bool | | associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:19:353:33 | t.get_another() | | {EXTERNAL LOCATION} | bool | | associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | From 465400115f64e5afc1116d68ca21f03703810943 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 15:36:35 +0100 Subject: [PATCH 46/63] Rust: Adapt type inference consistency query exceptions --- .../rust/internal/typeinference/TypeInferenceConsistency.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll index 11ad9bef2a21c..cde873f3685bc 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll @@ -18,6 +18,8 @@ query predicate illFormedTypeMention(TypeMention tm) { any(PathTypeMention ptm | exists(ptm.resolvePathTypeAt(TypePath::nil())) and not exists(ptm.resolveType()) + or + ptm.(NonAliasPathTypeMention).getResolved() instanceof TypeAlias ) and // Only include inconsistencies in the source, as we otherwise get // inconsistencies from library code in every project. From ca3e2db2174967efad5fdebb9d7c20b00b903f3a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 16:00:59 +0100 Subject: [PATCH 47/63] Rust: Accept changes to expected files --- .../PathResolutionConsistency.expected | 2 +- .../type-inference/type-inference.expected | 226 ++++++++++++++++++ 2 files changed, 227 insertions(+), 1 deletion(-) 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 28242d86a7b23..8dba0e3cf276d 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ multipleResolvedTargets -| main.rs:3087:13:3087:17 | x.f() | +| main.rs:2860:13:2860:17 | x.f() | 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 8be31b1b9d196..b4edd40f0f79d 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -4683,6 +4683,7 @@ inferType | associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:99:26:99:27 | x1 | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:99:26:99:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:101:13:101:14 | x2 | | associated_types.rs:10:1:11:9 | S | @@ -4695,6 +4696,7 @@ inferType | associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:104:26:104:26 | y | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:106:13:106:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:106:18:106:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | @@ -4703,6 +4705,7 @@ inferType | associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:107:26:107:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:107:26:107:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | | associated_types.rs:107:26:107:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | @@ -4713,6 +4716,7 @@ inferType | associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:109:26:109:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:109:26:109:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | | associated_types.rs:109:26:109:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | @@ -4861,6 +4865,7 @@ inferType | associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | @@ -5036,6 +5041,7 @@ inferType | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:20:47:21 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:13:48:14 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:18:48:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5049,6 +5055,7 @@ inferType | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:49:18:49:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:20:49:21 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:13:50:14 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | @@ -5058,6 +5065,7 @@ inferType | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:51:18:51:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:20:51:21 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:13:52:14 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:18:52:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5071,6 +5079,7 @@ inferType | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:53:18:53:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:20:53:21 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:13:54:14 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:18:54:35 | ...::duplicate(...) | | blanket_impl.rs:6:5:7:14 | S1 | @@ -5082,6 +5091,7 @@ inferType | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:55:18:55:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:20:55:21 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:13:56:14 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:18:56:19 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | @@ -5091,6 +5101,7 @@ inferType | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:57:18:57:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:20:57:21 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:13:58:14 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:18:58:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5104,6 +5115,7 @@ inferType | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:59:18:59:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:20:59:21 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:68:24:68:24 | x | | {EXTERNAL LOCATION} | i64 | | blanket_impl.rs:68:32:68:32 | y | | blanket_impl.rs:67:5:69:5 | Self [trait Trait1] | @@ -5129,6 +5141,7 @@ inferType | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:91:18:91:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:20:91:21 | x1 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:13:92:14 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:18:92:43 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5139,6 +5152,7 @@ inferType | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:93:18:93:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:20:93:21 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:13:94:14 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:18:94:39 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5149,6 +5163,7 @@ inferType | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:95:18:95:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:20:95:21 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:13:96:14 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:18:96:43 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5159,6 +5174,7 @@ inferType | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:97:18:97:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:20:97:21 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:108:22:108:26 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:108:22:108:26 | SelfParam | TRef | blanket_impl.rs:107:5:109:5 | Self [trait Flag] | @@ -5313,6 +5329,7 @@ inferType | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:278:22:278:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:281:24:281:28 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:281:24:281:28 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | @@ -5322,6 +5339,7 @@ inferType | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:282:22:282:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:290:16:300:5 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:291:13:291:13 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | | blanket_impl.rs:291:17:291:34 | MySqlConnection {...} | | blanket_impl.rs:286:5:286:29 | MySqlConnection | @@ -5934,6 +5952,7 @@ inferType | dereference.rs:214:22:214:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:214:22:214:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | +| dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:220:16:220:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:220:16:220:20 | SelfParam | TRef | dereference.rs:205:5:205:17 | Foo | | dereference.rs:220:23:222:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5942,6 +5961,7 @@ inferType | dereference.rs:221:22:221:37 | "In trait impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:221:22:221:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | +| dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:225:19:228:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:226:17:226:17 | f | | dereference.rs:205:5:205:17 | Foo | | dereference.rs:226:21:226:26 | Foo {...} | | dereference.rs:205:5:205:17 | Foo | @@ -5971,6 +5991,7 @@ inferType | dyn_type.rs:29:17:29:42 | ...::format(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | +| dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:33:29:36 | self | | {EXTERNAL LOCATION} | & | | dyn_type.rs:29:33:29:36 | self | TRef | dyn_type.rs:21:1:24:1 | MyStruct | | dyn_type.rs:29:33:29:42 | self.value | | {EXTERNAL LOCATION} | i32 | @@ -6228,6 +6249,7 @@ inferType | main.rs:27:18:27:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:27:18:27:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:3:5:4:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | @@ -6242,6 +6264,7 @@ inferType | main.rs:32:18:32:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:32:18:32:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:35:31:63:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -6254,6 +6277,7 @@ inferType | main.rs:38:18:38:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:38:18:38:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:38:26:38:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:38:26:38:28 | x.a | | main.rs:3:5:4:13 | S | @@ -6267,6 +6291,7 @@ inferType | main.rs:42:18:42:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:42:18:42:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:42:26:42:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:42:26:42:28 | x.a | | main.rs:3:5:4:13 | S | @@ -6279,6 +6304,7 @@ inferType | main.rs:49:18:49:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:49:18:49:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:49:26:49:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:49:26:49:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:49:26:49:28 | x.a | T | main.rs:3:5:4:13 | S | @@ -6295,6 +6321,7 @@ inferType | main.rs:55:18:55:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:55:18:55:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:55:26:55:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:55:26:55:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:55:26:55:26 | x | A.T | main.rs:3:5:4:13 | S | @@ -6320,6 +6347,7 @@ inferType | main.rs:62:18:62:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:62:18:62:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:62:26:62:26 | a | T | main.rs:3:5:4:13 | S | | main.rs:65:16:68:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6337,6 +6365,7 @@ inferType | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:85:18:85:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:86:13:86:13 | x | | main.rs:72:5:72:21 | Foo | | main.rs:86:17:86:22 | Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:87:13:87:13 | y | | main.rs:72:5:72:21 | Foo | @@ -6350,6 +6379,7 @@ inferType | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:92:18:92:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:93:9:93:9 | x | | main.rs:72:5:72:21 | Foo | | main.rs:93:9:93:14 | x.m1() | | main.rs:72:5:72:21 | Foo | | main.rs:94:9:94:9 | y | | main.rs:72:5:72:21 | Foo | @@ -6380,6 +6410,7 @@ inferType | main.rs:131:26:131:31 | "foo!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:131:26:131:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:137:25:137:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:137:25:137:29 | SelfParam | TRef | main.rs:135:9:140:9 | Self [trait Bar] | | main.rs:137:32:139:13 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6388,6 +6419,7 @@ inferType | main.rs:138:26:138:31 | "bar!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:138:26:138:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:149:15:170:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:150:13:150:13 | x | | main.rs:142:9:142:21 | X | | main.rs:150:17:150:17 | X | | main.rs:142:9:142:21 | X | @@ -6446,6 +6478,7 @@ inferType | main.rs:209:18:209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:209:18:209:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:209:26:209:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:209:26:209:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:209:26:209:28 | x.a | | main.rs:179:5:180:14 | S1 | @@ -6454,6 +6487,7 @@ inferType | main.rs:210:18:210:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:210:18:210:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:210:26:210:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:210:26:210:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:210:26:210:28 | y.a | | main.rs:181:5:182:14 | S2 | @@ -6462,6 +6496,7 @@ inferType | main.rs:212:18:212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:212:18:212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:212:26:212:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:212:26:212:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:212:26:212:31 | x.m1() | | main.rs:179:5:180:14 | S1 | @@ -6470,6 +6505,7 @@ inferType | main.rs:213:18:213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:213:18:213:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:213:26:213:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:213:26:213:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:213:26:213:31 | y.m1() | | main.rs:174:5:177:5 | MyThing | @@ -6490,6 +6526,7 @@ inferType | main.rs:218:18:218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:218:18:218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:218:26:218:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:218:26:218:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:218:26:218:31 | x.m2() | | main.rs:179:5:180:14 | S1 | @@ -6498,6 +6535,7 @@ inferType | main.rs:219:18:219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:219:18:219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:219:26:219:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:219:26:219:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:219:26:219:31 | y.m2() | | main.rs:181:5:182:14 | S2 | @@ -6642,6 +6680,7 @@ inferType | main.rs:378:18:378:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:378:18:378:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:378:26:378:33 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:378:26:378:33 | thing_s1 | A | main.rs:235:5:236:14 | S1 | | main.rs:378:26:378:38 | thing_s1.m1() | | main.rs:235:5:236:14 | S1 | @@ -6650,6 +6689,7 @@ inferType | main.rs:379:18:379:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:379:18:379:40 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:379:26:379:33 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:379:26:379:33 | thing_s2 | A | main.rs:237:5:238:14 | S2 | | main.rs:379:26:379:38 | thing_s2.m1() | | main.rs:224:5:227:5 | MyThing | @@ -6664,6 +6704,7 @@ inferType | main.rs:381:18:381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:381:18:381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:381:26:381:27 | s3 | | main.rs:239:5:240:14 | S3 | | main.rs:383:13:383:14 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:383:13:383:14 | p1 | P1 | main.rs:235:5:236:14 | S1 | @@ -6678,6 +6719,7 @@ inferType | main.rs:384:18:384:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:384:18:384:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:384:26:384:27 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:384:26:384:27 | p1 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:384:26:384:27 | p1 | P2 | main.rs:235:5:236:14 | S1 | @@ -6695,6 +6737,7 @@ inferType | main.rs:387:18:387:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:387:18:387:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:387:26:387:27 | p2 | | main.rs:229:5:233:5 | MyPair | | main.rs:387:26:387:27 | p2 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:387:26:387:27 | p2 | P2 | main.rs:237:5:238:14 | S2 | @@ -6716,6 +6759,7 @@ inferType | main.rs:393:18:393:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:393:18:393:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:393:26:393:27 | p3 | | main.rs:229:5:233:5 | MyPair | | main.rs:393:26:393:27 | p3 | P1 | main.rs:224:5:227:5 | MyThing | | main.rs:393:26:393:27 | p3 | P1.A | main.rs:235:5:236:14 | S1 | @@ -6739,6 +6783,7 @@ inferType | main.rs:398:18:398:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:398:18:398:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:398:26:398:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:399:13:399:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | | main.rs:229:5:233:5 | MyPair | @@ -6750,6 +6795,7 @@ inferType | main.rs:400:18:400:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:400:18:400:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:400:26:400:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:406:13:406:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:406:13:406:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6769,6 +6815,7 @@ inferType | main.rs:408:18:408:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:408:18:408:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:408:26:408:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:409:13:409:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | | main.rs:229:5:233:5 | MyPair | @@ -6780,6 +6827,7 @@ inferType | main.rs:410:18:410:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:410:18:410:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:410:26:410:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:414:13:414:13 | x | | main.rs:235:5:236:14 | S1 | | main.rs:414:17:414:39 | call_trait_m1(...) | | main.rs:235:5:236:14 | S1 | @@ -6790,6 +6838,7 @@ inferType | main.rs:415:18:415:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:415:18:415:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:415:26:415:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:416:13:416:13 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:416:13:416:13 | y | A | main.rs:237:5:238:14 | S2 | @@ -6802,6 +6851,7 @@ inferType | main.rs:417:18:417:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:417:18:417:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:417:26:417:26 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:417:26:417:26 | y | A | main.rs:237:5:238:14 | S2 | | main.rs:417:26:417:28 | y.a | | main.rs:237:5:238:14 | S2 | @@ -6823,6 +6873,7 @@ inferType | main.rs:422:18:422:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:422:18:422:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:422:26:422:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:423:13:423:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:423:17:423:26 | get_snd(...) | | main.rs:235:5:236:14 | S1 | @@ -6834,6 +6885,7 @@ inferType | main.rs:424:18:424:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:424:18:424:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:424:26:424:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:427:13:427:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:427:13:427:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6853,6 +6905,7 @@ inferType | main.rs:429:18:429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:429:18:429:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:429:26:429:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:430:13:430:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:430:17:430:26 | get_snd(...) | | main.rs:237:5:238:14 | S2 | @@ -6864,6 +6917,7 @@ inferType | main.rs:431:18:431:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:431:18:431:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:431:26:431:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:433:13:433:13 | c | | main.rs:229:5:233:5 | MyPair | | main.rs:433:13:433:13 | c | P1 | main.rs:239:5:240:14 | S3 | @@ -6986,6 +7040,7 @@ inferType | main.rs:571:18:571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:571:18:571:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:571:26:571:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:571:26:571:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | | main.rs:572:9:572:46 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6993,6 +7048,7 @@ inferType | main.rs:572:18:572:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:572:18:572:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:572:26:572:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:572:44:572:44 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:9:573:45 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -7000,6 +7056,7 @@ inferType | main.rs:573:18:573:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:573:18:573:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:573:26:573:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:26:573:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | | main.rs:574:9:574:48 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -7007,6 +7064,7 @@ inferType | main.rs:574:18:574:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:574:18:574:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:574:26:574:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | | main.rs:574:46:574:46 | x | | main.rs:446:5:447:14 | S1 | | main.rs:576:13:576:13 | y | | main.rs:479:5:479:22 | S2 | @@ -7019,6 +7077,7 @@ inferType | main.rs:577:18:577:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:577:18:577:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:577:26:577:26 | y | | main.rs:479:5:479:22 | S2 | | main.rs:577:26:577:26 | y | T2 | main.rs:446:5:447:14 | S1 | | main.rs:577:26:577:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | @@ -7027,6 +7086,7 @@ inferType | main.rs:578:18:578:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:578:18:578:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:578:26:578:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:578:50:578:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:578:50:578:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | @@ -7041,6 +7101,7 @@ inferType | main.rs:581:18:581:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:581:18:581:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:581:26:581:26 | z | | main.rs:479:5:479:22 | S2 | | main.rs:581:26:581:26 | z | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:581:26:581:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | @@ -7049,6 +7110,7 @@ inferType | main.rs:582:18:582:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:582:18:582:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:582:26:582:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:582:44:582:48 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:582:44:582:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -7058,6 +7120,7 @@ inferType | main.rs:583:18:583:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:583:18:583:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:583:26:583:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:583:51:583:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:583:51:583:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -7072,6 +7135,7 @@ inferType | main.rs:586:18:586:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:586:18:586:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:586:26:586:26 | w | | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:26 | w | T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:26:586:31 | w.m(...) | | {EXTERNAL LOCATION} | & | @@ -7083,6 +7147,7 @@ inferType | main.rs:587:18:587:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:587:18:587:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:587:26:587:37 | ...::m(...) | | {EXTERNAL LOCATION} | & | | main.rs:587:26:587:37 | ...::m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:587:26:587:37 | ...::m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | @@ -7132,6 +7197,7 @@ inferType | main.rs:622:18:622:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:622:18:622:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:622:26:622:27 | s1 | | main.rs:619:35:619:42 | I | | main.rs:625:65:625:65 | x | | main.rs:625:46:625:62 | T | | main.rs:625:71:629:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7143,6 +7209,7 @@ inferType | main.rs:628:18:628:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:628:18:628:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:628:26:628:27 | s2 | | main.rs:625:36:625:43 | I | | main.rs:631:49:631:49 | x | | main.rs:631:30:631:46 | T | | main.rs:631:55:634:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7154,6 +7221,7 @@ inferType | main.rs:633:18:633:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:633:18:633:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:633:26:633:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:636:53:636:53 | x | | main.rs:636:34:636:50 | T | | main.rs:636:59:639:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7165,6 +7233,7 @@ inferType | main.rs:638:18:638:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:638:18:638:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:638:26:638:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:641:43:641:43 | x | | main.rs:641:40:641:40 | T | | main.rs:644:5:647:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7176,6 +7245,7 @@ inferType | main.rs:646:18:646:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:646:18:646:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:646:26:646:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:650:16:650:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | | main.rs:652:16:652:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | @@ -7202,6 +7272,7 @@ inferType | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:668:18:668:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:668:32:668:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:668:36:668:37 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:671:69:671:69 | x | | main.rs:671:52:671:66 | T | @@ -7218,6 +7289,7 @@ inferType | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:675:18:675:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:675:32:675:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:675:36:675:37 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:678:50:678:50 | x | | main.rs:678:41:678:47 | T | @@ -7234,6 +7306,7 @@ inferType | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:682:18:682:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:682:32:682:33 | s1 | | {EXTERNAL LOCATION} | bool | | main.rs:682:36:682:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:685:54:685:54 | x | | main.rs:685:41:685:51 | T | @@ -7250,6 +7323,7 @@ inferType | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:689:18:689:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:689:32:689:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:689:36:689:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:697:18:697:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -7416,6 +7490,7 @@ inferType | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:31 | { ... } | | {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 | @@ -7424,6 +7499,7 @@ inferType | 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: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 | @@ -7442,6 +7518,7 @@ inferType | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:31 | { ... } | | {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 | @@ -7450,6 +7527,7 @@ inferType | 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: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 | @@ -7472,6 +7550,7 @@ inferType | 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: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 | @@ -7482,6 +7561,7 @@ inferType | 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: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 | @@ -7492,6 +7572,7 @@ inferType | 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: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 | @@ -7502,6 +7583,7 @@ inferType | 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: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 | @@ -7512,6 +7594,7 @@ inferType | 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: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 | @@ -7522,6 +7605,7 @@ inferType | 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: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 | @@ -7532,6 +7616,7 @@ inferType | 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: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 | @@ -7542,6 +7627,7 @@ inferType | 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: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 | @@ -7552,6 +7638,7 @@ inferType | 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: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 | @@ -7562,6 +7649,7 @@ inferType | 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: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 | @@ -7591,6 +7679,7 @@ inferType | 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: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 | @@ -7602,6 +7691,7 @@ inferType | 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: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 | @@ -7613,6 +7703,7 @@ inferType | 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: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 | @@ -7624,6 +7715,7 @@ inferType | 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: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 | @@ -7635,6 +7727,7 @@ inferType | 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: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 | @@ -7646,6 +7739,7 @@ inferType | 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: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 | @@ -7683,6 +7777,7 @@ inferType | main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:931:26:931:26 | x | | main.rs:907:5:911:5 | MyEnum | | main.rs:931:26:931:26 | x | A | main.rs:913:5:914:14 | S1 | | main.rs:931:26:931:31 | x.m1() | | main.rs:913:5:914:14 | S1 | @@ -7691,6 +7786,7 @@ inferType | main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | | main.rs:932:26:932:26 | y | A | main.rs:915:5:916:14 | S2 | | main.rs:932:26:932:31 | y.m1() | | main.rs:915:5:916:14 | S2 | @@ -7760,6 +7856,7 @@ inferType | main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1012:26:1012:26 | a | | main.rs:937:5:940:5 | MyThing | | main.rs:1012:26:1012:26 | a | A | main.rs:947:5:948:14 | S1 | | main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7778,6 +7875,7 @@ inferType | main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | | main.rs:1019:26:1019:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1019:26:1019:31 | x.m1() | | main.rs:947:5:948:14 | S1 | @@ -7786,6 +7884,7 @@ inferType | main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | | main.rs:1020:26:1020:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1020:26:1020:31 | y.m1() | | main.rs:949:5:950:14 | S2 | @@ -7804,6 +7903,7 @@ inferType | main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1025:18:1025:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | | main.rs:1025:26:1025:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1025:26:1025:31 | x.m2() | | main.rs:947:5:948:14 | S1 | @@ -7812,6 +7912,7 @@ inferType | main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | | main.rs:1026:26:1026:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1026:26:1026:31 | y.m2() | | main.rs:949:5:950:14 | S2 | @@ -7830,6 +7931,7 @@ inferType | main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1031:18:1031:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | | main.rs:1031:26:1031:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1031:26:1031:31 | x.m3() | | main.rs:947:5:948:14 | S1 | @@ -7838,6 +7940,7 @@ inferType | main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | | main.rs:1032:26:1032:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1032:26:1032:31 | y.m3() | | main.rs:949:5:950:14 | S2 | @@ -7882,6 +7985,7 @@ inferType | main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | | main.rs:1074:26:1074:31 | id(...) | TRef | main.rs:1045:5:1046:14 | S1 | | main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | @@ -7894,6 +7998,7 @@ inferType | main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | | main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | @@ -7906,6 +8011,7 @@ inferType | main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | | main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | @@ -7980,6 +8086,7 @@ inferType | main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1134:26:1134:26 | x | | main.rs:1117:5:1118:14 | S3 | | main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | @@ -7995,6 +8102,7 @@ inferType | main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | | main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | @@ -8009,6 +8117,7 @@ inferType | main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | | main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | @@ -8024,6 +8133,7 @@ inferType | main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | | main.rs:1156:26:1156:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | @@ -8038,6 +8148,7 @@ inferType | main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | | main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | @@ -8109,6 +8220,7 @@ inferType | main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | | main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | @@ -8124,6 +8236,7 @@ inferType | main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1213:18:1213:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1213:26:1213:27 | x2 | T | main.rs:1204:5:1205:13 | S | | main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | @@ -8139,6 +8252,7 @@ inferType | main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1217:26:1217:27 | x3 | T | main.rs:1204:5:1205:13 | S | | main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | @@ -8157,6 +8271,7 @@ inferType | main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1221:26:1221:27 | x4 | T | main.rs:1204:5:1205:13 | S | | main.rs:1223:13:1223:14 | x5 | | main.rs:1169:5:1173:5 | MyOption | @@ -8172,6 +8287,7 @@ inferType | main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1224:18:1224:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1224:26:1224:27 | x5 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1224:26:1224:27 | x5 | T | main.rs:1169:5:1173:5 | MyOption | | main.rs:1224:26:1224:27 | x5 | T.T | main.rs:1204:5:1205:13 | S | @@ -8190,6 +8306,7 @@ inferType | main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | | main.rs:1227:59:1227:60 | x6 | | main.rs:1169:5:1173:5 | MyOption | @@ -8216,6 +8333,7 @@ inferType | main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1235:26:1235:32 | from_if | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1235:26:1235:32 | from_if | T | main.rs:1204:5:1205:13 | S | | main.rs:1238:13:1238:22 | from_match | | main.rs:1169:5:1173:5 | MyOption | @@ -8237,6 +8355,7 @@ inferType | main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1242:26:1242:35 | from_match | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1242:26:1242:35 | from_match | T | main.rs:1204:5:1205:13 | S | | main.rs:1245:13:1245:21 | from_loop | | main.rs:1169:5:1173:5 | MyOption | @@ -8259,6 +8378,7 @@ inferType | main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1251:26:1251:34 | from_loop | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1251:26:1251:34 | from_loop | T | main.rs:1204:5:1205:13 | S | | main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | @@ -8325,6 +8445,7 @@ inferType | main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1302:26:1302:27 | x1 | | main.rs:1257:5:1258:19 | S | | main.rs:1302:26:1302:27 | x1 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1302:26:1302:32 | x1.m1() | | main.rs:1260:5:1261:14 | S2 | @@ -8338,6 +8459,7 @@ inferType | main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1306:26:1306:27 | x2 | | main.rs:1257:5:1258:19 | S | | main.rs:1306:26:1306:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1306:26:1306:32 | x2.m2() | | {EXTERNAL LOCATION} | & | @@ -8347,6 +8469,7 @@ inferType | main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1307:26:1307:27 | x2 | | main.rs:1257:5:1258:19 | S | | main.rs:1307:26:1307:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1307:26:1307:32 | x2.m3() | | {EXTERNAL LOCATION} | & | @@ -8361,6 +8484,7 @@ inferType | main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | | main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | | main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8373,6 +8497,7 @@ inferType | main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | | main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | | main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8394,6 +8519,7 @@ inferType | main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1316:26:1316:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1316:26:1316:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8404,6 +8530,7 @@ inferType | main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1317:26:1317:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1317:26:1317:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8423,6 +8550,7 @@ inferType | main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1321:26:1321:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1321:26:1321:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8432,6 +8560,7 @@ inferType | main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1322:26:1322:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1322:26:1322:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8450,6 +8579,7 @@ inferType | main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1327:18:1327:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1327:26:1327:30 | (...) | | main.rs:1257:5:1258:19 | S | | main.rs:1327:26:1327:30 | (...) | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1327:26:1327:35 | ... .m1() | | main.rs:1260:5:1261:14 | S2 | @@ -8479,6 +8609,7 @@ inferType | main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1333:26:1333:27 | x7 | | main.rs:1257:5:1258:19 | S | | main.rs:1333:26:1333:27 | x7 | T | {EXTERNAL LOCATION} | & | | main.rs:1333:26:1333:27 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | @@ -8506,6 +8637,7 @@ inferType | main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1344:26:1344:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | | main.rs:1347:13:1347:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | @@ -8522,6 +8654,7 @@ inferType | main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1349:26:1349:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | @@ -8705,6 +8838,7 @@ inferType | main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1447:18:1447:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1447:26:1447:29 | flag | | main.rs:1404:5:1407:5 | MyFlag | | main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | @@ -8786,6 +8920,7 @@ inferType | main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | E | main.rs:1454:5:1455:14 | S1 | | main.rs:1492:9:1492:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | @@ -8807,6 +8942,7 @@ inferType | main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1498:30:1498:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1501:16:1501:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8822,6 +8958,7 @@ inferType | main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1502:30:1502:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1505:16:1505:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8837,6 +8974,7 @@ inferType | main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1506:30:1506:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1509:16:1509:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8856,6 +8994,7 @@ inferType | main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1510:30:1510:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | @@ -11103,6 +11242,7 @@ inferType | main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2620:13:2620:17 | box ... | | {EXTERNAL LOCATION} | Box | | main.rs:2620:13:2620:17 | box ... | A | {EXTERNAL LOCATION} | Global | | main.rs:2620:13:2620:17 | box ... | T | {EXTERNAL LOCATION} | i32 | @@ -11112,6 +11252,7 @@ inferType | main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | | main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | | main.rs:2627:13:2627:22 | nested_box | T | {EXTERNAL LOCATION} | Box | @@ -11143,6 +11284,7 @@ inferType | main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | | main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | | main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -11328,6 +11470,7 @@ inferType | main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2756:9:2756:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | | main.rs:2760:16:2760:16 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -11344,6 +11487,7 @@ inferType | main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | | main.rs:2771:9:2771:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11606,6 +11750,7 @@ inferType | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:17:18:17:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:20:17:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:19:5:25:5 | match value { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:19:11:19:15 | value | | {EXTERNAL LOCATION} | Option | @@ -11621,6 +11766,7 @@ inferType | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:22:22:22:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:24:22:27 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:24:9:24:12 | None | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:24:9:24:12 | None | T | {EXTERNAL LOCATION} | i32 | @@ -11636,6 +11782,7 @@ inferType | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:28:14:28:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:16:28:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:9:29:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:20 | value | | {EXTERNAL LOCATION} | Option | @@ -11646,6 +11793,7 @@ inferType | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:30:14:30:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:16:30:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:32:9:32:14 | value2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:32:9:32:14 | value2 | TRef | {EXTERNAL LOCATION} | Option | @@ -11674,6 +11822,7 @@ inferType | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:35:18:35:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:20:35:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:9:38:14 | value3 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:18:38:19 | 42 | | {EXTERNAL LOCATION} | i32 | @@ -11691,6 +11840,7 @@ inferType | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:41:18:41:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:20:41:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:20:41:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:44:9:44:14 | value4 | | {EXTERNAL LOCATION} | Option | @@ -11715,6 +11865,7 @@ inferType | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:20:47:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:20:47:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:50:13:50:18 | value5 | | {EXTERNAL LOCATION} | & | @@ -11920,6 +12071,7 @@ inferType | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:175:22:175:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:45:175:57 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:10:177:10 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:15:180:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11930,6 +12082,7 @@ inferType | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:179:22:179:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:46:179:61 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:9:181:9 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:14:184:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11940,6 +12093,7 @@ inferType | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:183:22:183:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:42:183:53 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:9:185:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:14:185:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11956,6 +12110,7 @@ inferType | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:192:22:192:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:40:192:47 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:9:194:9 | _ | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:14:194:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11978,6 +12133,7 @@ inferType | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:201:22:201:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:44:201:54 | hello_match | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:44:201:54 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:203:9:203:9 | _ | | {EXTERNAL LOCATION} | & | @@ -11996,6 +12152,7 @@ inferType | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:210:22:210:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:42:210:51 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:9:212:13 | false | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:18:215:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12006,6 +12163,7 @@ inferType | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:214:22:214:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:43:214:53 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:219:30:277:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:220:9:220:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12021,6 +12179,7 @@ inferType | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:226:22:226:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:48:226:58 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:231:5:236:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:231:11:231:16 | &value | | {EXTERNAL LOCATION} | & | @@ -12041,6 +12200,7 @@ inferType | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:234:22:234:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:52:234:60 | ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12060,6 +12220,7 @@ inferType | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:244:22:244:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:48:244:56 | mut_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:249:9:249:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:249:9:249:20 | option_value | T | {EXTERNAL LOCATION} | i32 | @@ -12081,6 +12242,7 @@ inferType | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:253:22:253:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:52:253:59 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12095,6 +12257,7 @@ inferType | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:257:22:257:63 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:50:257:63 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12107,6 +12270,7 @@ inferType | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:261:22:261:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:40:261:49 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:9:263:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:263:9:263:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | @@ -12116,6 +12280,7 @@ inferType | pattern_matching.rs:264:22:264:33 | "None value\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:264:22:264:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | +| 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:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12145,6 +12310,7 @@ inferType | 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} | () | | pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:279:28:290:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:280:9:280:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:280:17:280:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12165,6 +12331,7 @@ inferType | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:287:22:287:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:50:287:65 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:292:25:324:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:293:9:293:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12182,6 +12349,7 @@ inferType | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:299:22:299:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:45:299:59 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:10 | 11 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:12 | RangePat | | {EXTERNAL LOCATION} | i32 | @@ -12193,6 +12361,7 @@ inferType | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:303:22:303:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:43:303:52 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:9:305:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:12:305:12 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -12204,6 +12373,7 @@ inferType | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:307:22:307:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:50:307:67 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:9:309:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:14:309:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12222,6 +12392,7 @@ inferType | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:316:22:316:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:44:316:57 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:11 | 'A' | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:17 | RangePat | | {EXTERNAL LOCATION} | char | @@ -12234,6 +12405,7 @@ inferType | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:320:22:320:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:44:320:57 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:9:322:9 | _ | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:14:322:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12257,6 +12429,7 @@ inferType | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:334:22:334:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:48:334:58 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:336:9:336:10 | &... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:336:9:336:10 | &... | TRef | {EXTERNAL LOCATION} | i32 | @@ -12269,6 +12442,7 @@ inferType | 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: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} | &mut | @@ -12288,6 +12462,7 @@ inferType | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:345:22:345:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:349:5:354:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12309,6 +12484,7 @@ inferType | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:352:22:352:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:47:352:57 | ref_pattern | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12330,6 +12506,7 @@ inferType | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:364:22:364:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:44:364:49 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:9:366:25 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:17:366:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12344,6 +12521,7 @@ inferType | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:369:22:369:80 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:59:369:66 | x_axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:369:69:369:80 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:371:9:371:27 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | @@ -12356,6 +12534,7 @@ inferType | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:373:22:373:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:47:373:57 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:9:375:22 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:17:375:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12370,6 +12549,7 @@ inferType | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:378:22:378:68 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:49:378:57 | general_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:378:60:378:68 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:383:9:383:13 | shape | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12391,6 +12571,7 @@ inferType | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:394:22:394:64 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:42:394:51 | rect_width | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:394:54:394:64 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:396:9:396:9 | _ | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12418,6 +12599,7 @@ inferType | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:407:22:407:48 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:40:407:48 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:9:409:22 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:15:409:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12435,6 +12617,7 @@ inferType | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:414:17:415:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:415:17:415:29 | red_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:32:415:46 | green_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:49:415:62 | blue_component | | {EXTERNAL LOCATION} | u8 | @@ -12452,6 +12635,7 @@ inferType | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:424:22:424:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:45:424:57 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:9:426:20 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:15:426:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12464,6 +12648,7 @@ inferType | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:428:22:428:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:48:428:54 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:434:9:434:15 | wrapper | | pattern_matching.rs:432:5:433:24 | Wrapper | | pattern_matching.rs:434:19:434:29 | Wrapper(...) | | pattern_matching.rs:432:5:433:24 | Wrapper | @@ -12480,6 +12665,7 @@ inferType | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:438:22:438:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:37:438:49 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:443:25:498:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:444:9:444:13 | tuple | | {EXTERNAL LOCATION} | (T_3) | @@ -12533,6 +12719,7 @@ inferType | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:450:22:450:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:43:450:53 | exact_tuple | | {EXTERNAL LOCATION} | (T_3) | | pattern_matching.rs:450:43:450:53 | exact_tuple | T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:450:43:450:53 | exact_tuple | T1 | {EXTERNAL LOCATION} | i32 | @@ -12566,6 +12753,7 @@ inferType | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:456:22:456:79 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:45:456:54 | first_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i64 | @@ -12590,6 +12778,7 @@ inferType | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:464:22:464:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:9:469:12 | unit | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:16:469:17 | TupleExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:470:5:475:5 | match unit { ... } | | {EXTERNAL LOCATION} | () | @@ -12603,6 +12792,7 @@ inferType | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:473:22:473:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:42:473:51 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:478:9:478:14 | single | | {EXTERNAL LOCATION} | (T_1) | | pattern_matching.rs:478:9:478:14 | single | T0 | {EXTERNAL LOCATION} | i32 | @@ -12623,6 +12813,7 @@ inferType | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:482:22:482:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:50:482:60 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | TRef | {EXTERNAL LOCATION} | (T_2) | @@ -12649,11 +12840,13 @@ inferType | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:489:18:489:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:9:490:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:490:18:490:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | @@ -12677,11 +12870,13 @@ inferType | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:496:14:496:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:5:497:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:497:14:497:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:500:33:520:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:501:9:501:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:501:17:501:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12697,6 +12892,7 @@ inferType | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:507:22:507:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:51:507:61 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:512:9:512:13 | tuple | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:512:9:512:13 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12726,6 +12922,7 @@ inferType | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:517:22:517:71 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:56:517:62 | paren_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:517:65:517:71 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:522:25:563:1 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12763,6 +12960,7 @@ inferType | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:529:22:529:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:43:529:53 | empty_slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12775,6 +12973,7 @@ inferType | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:533:22:533:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:535:9:535:23 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12784,6 +12983,7 @@ inferType | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:538:22:538:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:540:9:540:34 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12793,6 +12993,7 @@ inferType | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:545:17:548:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:554:9:554:13 | array | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:554:9:554:13 | array | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:554:17:554:28 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -12811,6 +13012,7 @@ inferType | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:560:22:560:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:565:24:601:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:567:27:567:28 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:568:9:568:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12826,6 +13028,7 @@ inferType | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:573:22:573:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:46:573:56 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:9:575:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:14:575:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12845,6 +13048,7 @@ inferType | pattern_matching.rs:582:22:582:35 | "None variant\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:582:22:582:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:24:584:24 | x | | {EXTERNAL LOCATION} | i32 | @@ -12856,6 +13060,7 @@ inferType | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:586:22:586:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:40:586:49 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:591:5:600:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:591:11:591:51 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | @@ -12874,6 +13079,7 @@ inferType | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:594:22:594:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:38:594:45 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | E | {EXTERNAL LOCATION} | usize | @@ -12887,6 +13093,7 @@ inferType | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:598:22:598:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:35:598:43 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:603:22:638:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:604:9:604:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12905,6 +13112,7 @@ inferType | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:610:22:610:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:42:610:50 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:10 | 10 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:15 | 10 \| 20 | | {EXTERNAL LOCATION} | i32 | @@ -12917,6 +13125,7 @@ inferType | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:614:22:614:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:42:614:50 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:9:616:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:14:616:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12945,6 +13154,7 @@ inferType | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:625:22:625:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:49:625:54 | axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:625:57:625:62 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:627:9:627:9 | _ | | pattern_matching.rs:135:1:140:1 | Point | @@ -12966,6 +13176,7 @@ inferType | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:634:22:634:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:38:634:51 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:9:636:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:14:636:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -13001,6 +13212,7 @@ inferType | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:647:22:647:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:5:656:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:11:651:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:651:11:651:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13018,6 +13230,7 @@ inferType | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:654:22:654:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:5:664:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:11:658:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:658:11:658:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13035,6 +13248,7 @@ inferType | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:662:22:662:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:667:9:667:13 | point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:17:667:38 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:28:667:29 | 10 | | {EXTERNAL LOCATION} | i32 | @@ -13051,25 +13265,30 @@ inferType | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:671:22:671:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:42:671:47 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:676:25:696:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:5:678:19 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:17:678:18 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:678:17:678:18 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:678:17:678:18 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:5:679:18 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:679:17:679:17 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:5:694:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:29 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:694:21:694:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:28:694:29 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:5:695:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:28 | match 10i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:695:21:695:28 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:28:695:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:698:34:724:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:700:9:700:20 | complex_data | | {EXTERNAL LOCATION} | (T_2) | @@ -13120,6 +13339,7 @@ inferType | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:709:17:710:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:710:17:710:24 | nested_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:710:27:710:34 | nested_g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:710:37:710:44 | nested_b | | {EXTERNAL LOCATION} | u8 | @@ -13152,6 +13372,7 @@ inferType | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:716:22:716:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:53:716:65 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:719:9:719:13 | other | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:719:9:719:13 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | @@ -13171,6 +13392,7 @@ inferType | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:721:22:721:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:50:721:62 | other_complex | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:721:50:721:62 | other_complex | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:721:50:721:62 | other_complex | T1 | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13367,6 +13589,7 @@ inferType | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:798:18:798:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:45:798:50 | loop_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:798:53:798:58 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:802:9:802:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13389,6 +13612,7 @@ inferType | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:805:18:805:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:47:805:54 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:809:13:809:17 | stack | | {EXTERNAL LOCATION} | Vec | | pattern_matching.rs:809:13:809:17 | stack | A | {EXTERNAL LOCATION} | Global | @@ -13416,6 +13640,7 @@ inferType | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:812:18:812:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:32:812:42 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:9:816:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:17:816:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -13433,6 +13658,7 @@ inferType | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:820:22:820:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:38:820:44 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:9:822:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:14:822:15 | { ... } | | {EXTERNAL LOCATION} | () | From 8cbe17a62b5541816633af3452faf0ffa9848bef Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 07:23:34 +0100 Subject: [PATCH 48/63] Rust: Fix bad join on name column --- .../rust/internal/typeinference/TypeMention.qll | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 1e2ca53b9cda0..b38be2a9711df 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -149,7 +149,7 @@ class NonAliasPathTypeMention extends PathTypeMention { TypeItemNode getResolved() { result = resolved } pragma[nomagic] - private TypeRepr getAssocTypeArg(string name) { + private TypeMention getAssocTypeArg(string name) { result = this.getSegment().getGenericArgList().getAssocTypeArg(name) } @@ -254,18 +254,23 @@ class NonAliasPathTypeMention extends PathTypeMention { ) } - pragma[nomagic] + bindingset[name] private TypeAlias getResolvedAlias(string name) { result = resolved.(TraitItemNode).getAssocItem(name) } + bindingset[name] + private TypeAlias getResolvedTraitAssocType(string name) { + result = resolved.(TraitItemNode).getASuccessor(name) + } + /** Gets the type mention in this path for the type parameter `tp`, if any. */ pragma[nomagic] private TypeMention getTypeMentionForTypeParameter(TypeParameter tp) { exists(TypeAlias alias, string name | result = this.getAssocTypeArg(name) and tp = TAssociatedTypeTypeParameter(resolved, alias) and - alias = resolved.(TraitItemNode).getASuccessor(name) + alias = this.getResolvedTraitAssocType(name) ) or // If `path` is the trait of an `impl` block then any associated types @@ -283,10 +288,9 @@ class NonAliasPathTypeMention extends PathTypeMention { // the rhs. of the type alias is a type argument to the trait. exists(ImplItemNode impl, TypeAlias alias, string name | this = impl.getTraitPath() and - alias = impl.getASuccessor(pragma[only_bind_into](name)) and + alias = impl.getASuccessor(name) and result = alias.getTypeRepr() and - tp = - TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(pragma[only_bind_into](name))) + tp = TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(name)) ) } From 6e0a1ba233540fff836fbc481477a8ddca82800e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 Jan 2026 07:05:33 +0000 Subject: [PATCH 49/63] List more covered java frameworks explicitly --- .../library-coverage/coverage.rst | 22 +++++++++++++++++-- .../library-coverage/frameworks.csv | 20 ++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 93a10c9d294f3..faddc4e427290 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -15,13 +15,31 @@ Java framework & library support `Apache Commons Text `_,``org.apache.commons.text``,,272,,,,,,, `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,183,122,,3,,,,119 `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, + `Apache Struts `_,"``org.apache.struts2``, ``org.apache.struts.beanvalidation.validation.interceptor``",,3877,14,,,,,, + `Apache Velocity `_,"``org.apache.velocity.app``, ``org.apache.velocity.runtime``",,,8,,,,,, + `Couchbase `_,``com.couchbase.client.*``,,,,,,,,, + `FreeMarker `_,"``freemarker.cache``, ``freemarker.template``",,,8,,,,,, + `Google Gson `_,``com.google.gson``,,52,,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, - JBoss Logging,``org.jboss.logging``,,,324,,,,,, + `Groovy `_,"``groovy.lang``, ``groovy.text``, ``groovy.util``, ``org.codehaus.groovy.control``",,,33,,,,,, + `Hibernate `_,``org.hibernate``,,,7,,,7,,, + `JBoss Logging `_,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, + `Jackson `_,``com.fasterxml.jackson.*``,,9,2,2,,,,, Java Standard Library,``java.*``,10,4628,260,99,,9,,,26 Java extensions,"``javax.*``, ``jakarta.*``",101,4185,90,10,4,2,1,1,4 + `Jetty `_,``org.eclipse.jetty.client``,,,2,,,,,,2 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 + `MongoDB `_,``com.mongodb``,,,10,,,,,, + `Netty `_,``io.netty.*``,15,490,23,7,,,,,16 + `OkHttp `_,``okhttp3``,,50,4,,,,,,4 + `RabbitMQ `_,``com.rabbitmq.client``,21,7,,,,,,, + `Retrofit `_,``retrofit2``,,1,1,,,,,,1 + `SLF4J `_,``org.slf4j``,,6,55,,,,,, + `SnakeYAML `_,``org.yaml.snakeyaml``,,1,,,,,,, `Spring `_,``org.springframework.*``,46,492,143,26,,28,14,,35 - Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",144,10529,927,140,6,22,18,,208 + `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, + `jOOQ `_,``org.jooq``,,,1,,,1,,, + Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 Totals,,363,26371,2656,404,16,128,33,1,409 diff --git a/java/documentation/library-coverage/frameworks.csv b/java/documentation/library-coverage/frameworks.csv index 61ba9db6195cd..c2862f93b2820 100644 --- a/java/documentation/library-coverage/frameworks.csv +++ b/java/documentation/library-coverage/frameworks.csv @@ -10,7 +10,25 @@ Apache Commons Lang,https://commons.apache.org/proper/commons-lang/,org.apache.c Apache Commons Text,https://commons.apache.org/proper/commons-text/,org.apache.commons.text Apache HttpComponents,https://hc.apache.org/,org.apache.hc.core5.* org.apache.http Apache Log4j 2,https://logging.apache.org/log4j/2.0/,org.apache.logging.log4j +Apache Struts,https://struts.apache.org/,org.apache.struts2 org.apache.struts.beanvalidation.validation.interceptor +Apache Velocity,https://velocity.apache.org/,org.apache.velocity.app org.apache.velocity.runtime +Couchbase,https://couchbase.com/,com.couchbase.client.* +FreeMarker,https://freemarker.apache.org/,freemarker.cache freemarker.template +Google Gson,https://github.com/google/gson,com.google.gson Google Guava,https://guava.dev/,com.google.common.* -JBoss Logging,,org.jboss.logging +Groovy,https://groovy-lang.org/,groovy.lang groovy.text groovy.util org.codehaus.groovy.control +Hibernate,https://hibernate.org/,org.hibernate +Jackson,https://github.com/FasterXML/jackson,com.fasterxml.jackson.* +JBoss Logging,https://github.com/jboss-logging/jboss-logging,org.jboss.logging +Jetty,https://eclipse.dev/jetty/,org.eclipse.jetty.client +jOOQ,https://www.jooq.org/,org.jooq JSON-java,https://github.com/stleary/JSON-java,org.json +MongoDB,https://www.mongodb.com/,com.mongodb +Netty,https://netty.io/,io.netty.* +OkHttp,https://square.github.io/okhttp/,okhttp3 +RabbitMQ,https://www.rabbitmq.com/,com.rabbitmq.client +Retrofit,https://square.github.io/retrofit/,retrofit2 +SLF4J,https://www.slf4j.org/,org.slf4j +SnakeYAML,https://github.com/snakeyaml/snakeyaml,org.yaml.snakeyaml Spring,https://spring.io/,org.springframework.* +Thymeleaf,https://www.thymeleaf.org/,org.thymeleaf From b4bbafa96f4e0d341bcee202f13157b1bcc50982 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 15 Jan 2026 10:19:33 +0100 Subject: [PATCH 50/63] Make `compile-queries.yml` sharded based on language --- .github/workflows/compile-queries.yml | 42 +++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/.github/workflows/compile-queries.yml b/.github/workflows/compile-queries.yml index 36171543cac45..c8f6301bb531e 100644 --- a/.github/workflows/compile-queries.yml +++ b/.github/workflows/compile-queries.yml @@ -17,9 +17,41 @@ permissions: contents: read jobs: - compile-queries: + detect-changes: if: github.repository_owner == 'github' + runs-on: ubuntu-latest + outputs: + languages: ${{ steps.detect.outputs.languages }} + steps: + - uses: actions/checkout@v5 + - name: Detect changed languages + id: detect + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + # For PRs, detect which languages have changes + changed_files=$(gh pr view ${{ github.event.pull_request.number }} --json files --jq '.files.[].path') + languages=() + for lang in actions cpp csharp go java javascript python ql ruby rust swift; do + if echo "$changed_files" | grep -qE "^($lang/|shared/)" ; then + languages+=("$lang") + fi + done + echo "languages=$(jq -c -n '$ARGS.positional' --args "${languages[@]}")" >> $GITHUB_OUTPUT + else + # For pushes to main/rc branches, run all languages + echo 'languages=["actions","cpp","csharp","go","java","javascript","python","ql","ruby","rust","swift"]' >> $GITHUB_OUTPUT + fi + env: + GH_TOKEN: ${{ github.token }} + + compile-queries: + needs: detect-changes + if: github.repository_owner == 'github' && needs.detect-changes.outputs.languages != '[]' runs-on: ubuntu-latest-xl + strategy: + fail-fast: false + matrix: + language: ${{ fromJson(needs.detect-changes.outputs.languages) }} steps: - uses: actions/checkout@v5 @@ -31,16 +63,16 @@ jobs: id: query-cache uses: ./.github/actions/cache-query-compilation with: - key: all-queries + key: ${{ matrix.language }}-queries - name: check formatting - run: find shared */ql -type f \( -name "*.qll" -o -name "*.ql" \) -print0 | xargs -0 -n 3000 -P 10 codeql query format -q --check-only + run: find shared ${{ matrix.language }}/ql -type f \( -name "*.qll" -o -name "*.ql" \) -print0 | xargs -0 -n 3000 -P 10 codeql query format -q --check-only - name: compile queries - check-only # run with --check-only if running in a PR (github.sha != main) if : ${{ github.event_name == 'pull_request' }} shell: bash - run: codeql query compile -q -j0 */ql/{src,examples} --keep-going --warnings=error --check-only --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 + run: codeql query compile -q -j0 ${{ matrix.language }}/ql/{src,examples} --keep-going --warnings=error --check-only --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 - name: compile queries - full # do full compile if running on main - this populates the cache if : ${{ github.event_name != 'pull_request' }} shell: bash - run: codeql query compile -q -j0 */ql/{src,examples} --keep-going --warnings=error --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 + run: codeql query compile -q -j0 ${{ matrix.language }}/ql/{src,examples} --keep-going --warnings=error --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 From 15f3c38041e5c8ca53375cf6ede3b60e4bc8a4a6 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 11:34:58 +0100 Subject: [PATCH 51/63] Rust: QLDoc fixes --- rust/ql/lib/codeql/rust/internal/typeinference/Type.qll | 4 ++-- .../ql/lib/codeql/rust/internal/typeinference/TypeMention.qll | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index a37baf92311d1..acf20905b6a51 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -457,12 +457,12 @@ class AssociatedTypeTypeParameter extends TypeParameter, TAssociatedTypeTypePara override Location getLocation() { result = typeAlias.getLocation() } } -/** Gets the associated type type parameter corresponding directly to `typeAlias`. */ +/** Gets the associated type type-parameter corresponding directly to `typeAlias`. */ AssociatedTypeTypeParameter getAssociatedTypeTypeParameter(TypeAlias typeAlias) { result.isDirect() and result.getTypeAlias() = typeAlias } -/** Gets the dyn type type parameter corresponding directly to `typeAlias`. */ +/** Gets the dyn type type-parameter corresponding directly to `typeAlias`. */ DynTraitTypeParameter getDynTraitTypeParameter(TypeAlias typeAlias) { result.getTraitTypeParameter() = getAssociatedTypeTypeParameter(typeAlias) } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index b38be2a9711df..840e5198f9cb0 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -245,7 +245,7 @@ class NonAliasPathTypeMention extends PathTypeMention { // trait Sub: Super // ``` // Where `Assoc` is an associated type of `Super` and `Assoc[Sub]` denotes - // the copy of the type parameter inherited into `Sub`. + // the copy of the type parameter inherited by `Sub`. exists(Trait subtrait, TypeAlias alias | subtrait.getATypeBound().getTypeRepr().(PathTypeRepr).getPath() = this and result = TAssociatedTypeTypeParameter(subtrait, alias) and From 97e0b4e9fd0aa47f8313d0ef3f6c5997f7c636d7 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 Jan 2026 10:33:35 +0000 Subject: [PATCH 52/63] Use parameter name to only select correct overloads --- .../frameworks/spring/SpringWebClient.qll | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 991a1c7298146..64c00f830edeb 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -42,31 +42,7 @@ private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { SpringRestTemplateMethodWithUriVariablesParameter() { this.getDeclaringType() instanceof SpringRestTemplate and - ( - this.hasName("delete") and pos = 1 - or - this.hasName("exchange") and pos = 4 - or - this.hasName("execute") and pos = 4 - or - this.hasName("getForEntity") and pos = 2 - or - this.hasName("getForObject") and pos = 2 - or - this.hasName("headForHeaders") and pos = 1 - or - this.hasName("optionsForAllow") and pos = 1 - or - this.hasName("patchForObject") and pos = 3 - or - this.hasName("postForEntity") and pos = 3 - or - this.hasName("postForLocation") and pos = 2 - or - this.hasName("postForObject") and pos = 3 - or - this.hasName("put") and pos = 2 - ) + this.getParameter(pos).getName() = "uriVariables" } int getUriVariablesPosition() { result = pos } From 549307a6bd19a831d87a7ff9be3f68a720b41ca6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 00:26:48 +0000 Subject: [PATCH 53/63] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 2 ++ java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 2da774f260fa5..c0cac724f9340 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -24,6 +24,8 @@ com.azure.identity,3,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, com.caucho.burlap.io,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, com.caucho.hessian.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, com.cedarsoftware.util.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +com.couchbase.client.core.env,15,,1,,,,9,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.couchbase.client.java,10,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,, com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.esotericsoftware.yamlbeans,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index faddc4e427290..fc3b041d08e04 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -17,7 +17,7 @@ Java framework & library support `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, `Apache Struts `_,"``org.apache.struts2``, ``org.apache.struts.beanvalidation.validation.interceptor``",,3877,14,,,,,, `Apache Velocity `_,"``org.apache.velocity.app``, ``org.apache.velocity.runtime``",,,8,,,,,, - `Couchbase `_,``com.couchbase.client.*``,,,,,,,,, + `Couchbase `_,``com.couchbase.client.*``,,1,25,,,6,,, `FreeMarker `_,"``freemarker.cache``, ``freemarker.template``",,,8,,,,,, `Google Gson `_,``com.google.gson``,,52,,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, @@ -41,5 +41,5 @@ Java framework & library support `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, `jOOQ `_,``org.jooq``,,,1,,,1,,, Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 - Totals,,363,26371,2656,404,16,128,33,1,409 + Totals,,363,26372,2681,404,16,134,33,1,409 From c0b35694734e4eed6ff0d2f376851a2fdd2e55bf Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 10:28:09 +0100 Subject: [PATCH 54/63] Rust: Move `TypeAbstraction` into separate file --- .../typeinference/FunctionOverloading.qll | 1 + .../internal/typeinference/FunctionType.qll | 3 +- .../rust/internal/typeinference/Type.qll | 52 ----------------- .../typeinference/TypeAbstraction.qll | 56 +++++++++++++++++++ .../internal/typeinference/TypeInference.qll | 4 +- 5 files changed, 62 insertions(+), 54 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index e67fb05485f56..5814493c38915 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -8,6 +8,7 @@ private import rust private import codeql.rust.internal.PathResolution private import Type +private import TypeAbstraction private import TypeMention private import TypeInference private import FunctionType diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index 8a72c967867d6..e32578656195f 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -1,8 +1,9 @@ private import rust private import codeql.rust.internal.PathResolution -private import TypeInference private import Type +private import TypeAbstraction private import TypeMention +private import TypeInference private newtype TFunctionPosition = TArgumentFunctionPosition(ArgumentPosition pos) or diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index acf20905b6a51..9a31782caf222 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -569,58 +569,6 @@ class ImplTraitTypeTypeParameter extends ImplTraitType, TypeParameter { override TypeParameter getPositionalTypeParameter(int i) { none() } } -/** - * A type abstraction. I.e., a place in the program where type variables are - * introduced. - * - * Example: - * ```rust - * impl Foo { } - * // ^^^^^^ a type abstraction - * ``` - */ -abstract class TypeAbstraction extends AstNode { - abstract TypeParameter getATypeParameter(); -} - -final class ImplTypeAbstraction extends TypeAbstraction, Impl { - override TypeParamTypeParameter getATypeParameter() { - result.getTypeParam() = this.getGenericParamList().getATypeParam() - } -} - -final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { - override TypeParameter getATypeParameter() { - result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() - } -} - -final class TraitTypeAbstraction extends TypeAbstraction, Trait { - override TypeParameter getATypeParameter() { - result.(TypeParamTypeParameter).getTypeParam() = this.getGenericParamList().getATypeParam() - or - result.(AssociatedTypeTypeParameter).getTrait() = this - or - result.(SelfTypeParameter).getTrait() = this - } -} - -final class TypeBoundTypeAbstraction extends TypeAbstraction, TypeBound { - override TypeParameter getATypeParameter() { none() } -} - -final class SelfTypeBoundTypeAbstraction extends TypeAbstraction, Name { - SelfTypeBoundTypeAbstraction() { any(TraitTypeAbstraction trait).getName() = this } - - override TypeParameter getATypeParameter() { none() } -} - -final class ImplTraitTypeReprAbstraction extends TypeAbstraction, ImplTraitTypeRepr { - override TypeParameter getATypeParameter() { - implTraitTypeParam(this, _, result.(TypeParamTypeParameter).getTypeParam()) - } -} - /** * Holds if `t` is a valid complex [`self` root type][1]. * diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll new file mode 100644 index 0000000000000..6a9dba92b8320 --- /dev/null +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -0,0 +1,56 @@ +private import rust +private import codeql.rust.elements.internal.generated.Raw +private import codeql.rust.elements.internal.generated.Synth +private import Type + +/** + * A type abstraction. I.e., a place in the program where type variables are + * introduced. + * + * Example: + * ```rust + * impl Foo { } + * // ^^^^^^ a type abstraction + * ``` + */ +abstract class TypeAbstraction extends AstNode { + abstract TypeParameter getATypeParameter(); +} + +final class ImplTypeAbstraction extends TypeAbstraction, Impl { + override TypeParamTypeParameter getATypeParameter() { + result.getTypeParam() = this.getGenericParamList().getATypeParam() + } +} + +final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { + override TypeParameter getATypeParameter() { + result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() + } +} + +final class TraitTypeAbstraction extends TypeAbstraction, Trait { + override TypeParameter getATypeParameter() { + result.(TypeParamTypeParameter).getTypeParam() = this.getGenericParamList().getATypeParam() + or + result.(AssociatedTypeTypeParameter).getTrait() = this + or + result.(SelfTypeParameter).getTrait() = this + } +} + +final class TypeBoundTypeAbstraction extends TypeAbstraction, TypeBound { + override TypeParameter getATypeParameter() { none() } +} + +final class SelfTypeBoundTypeAbstraction extends TypeAbstraction, Name { + SelfTypeBoundTypeAbstraction() { any(TraitTypeAbstraction trait).getName() = this } + + override TypeParameter getATypeParameter() { none() } +} + +final class ImplTraitTypeReprAbstraction extends TypeAbstraction, ImplTraitTypeRepr { + override TypeParamTypeParameter getATypeParameter() { + exists(TImplTraitTypeParameter(this, result.getTypeParam())) + } +} diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 3be7565ebaa15..c579a4168d8fb 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -5,6 +5,8 @@ private import codeql.util.Option private import rust private import codeql.rust.internal.PathResolution private import Type +private import TypeAbstraction +private import TypeAbstraction as TA private import Type as T private import TypeMention private import codeql.rust.internal.typeinference.DerefChain @@ -37,7 +39,7 @@ private module Input1 implements InputSig1 { class TypeParameter = T::TypeParameter; - class TypeAbstraction = T::TypeAbstraction; + class TypeAbstraction = TA::TypeAbstraction; class TypeArgumentPosition extends TTypeArgumentPosition { int asMethodTypeArgumentPosition() { this = TMethodTypeArgumentPosition(result) } From a11693268ba01ba2120dc53dd4237ed9f8ccaeea Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 10:36:24 +0100 Subject: [PATCH 55/63] Rust: Avoid duplicated entries in `conditionSatisfiesConstraint` for dyn trait types --- .../typeinference/TypeAbstraction.qll | 21 +++++++++++++++++++ .../internal/typeinference/TypeMention.qll | 10 ++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll index 6a9dba92b8320..1f9dd0b44b076 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -23,7 +23,28 @@ final class ImplTypeAbstraction extends TypeAbstraction, Impl { } } +private predicate idDynTraitTypeRepr(Raw::DynTraitTypeRepr x, Raw::DynTraitTypeRepr y) { x = y } + +private predicate idOfDynTraitTypeRepr(Raw::DynTraitTypeRepr x, int y) = + equivalenceRelation(idDynTraitTypeRepr/2)(x, y) + +private int idOfDynTraitTypeRepr(DynTraitTypeRepr node) { + idOfDynTraitTypeRepr(Synth::convertAstNodeToRaw(node), result) +} + +/** Holds if `dt` is the (arbitrarily chosen) canonical dyn trait type abstraction for `trait`. */ +private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt, Trait trait) { + dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) +} + final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { + DynTypeAbstraction() { + // We pick a "canonical" `dyn Trait` in order to avoid including multiple + // entries in `conditionSatisfiesConstraint` with the exact same effect when + // `dyn Trait` occurs multiple times for the same trait. + canonicalDynTraitTypeAbstraction(this, this.getTrait()) + } + override TypeParameter getATypeParameter() { result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 840e5198f9cb0..25cb28a7ac422 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -4,6 +4,7 @@ private import rust private import codeql.rust.internal.PathResolution private import codeql.rust.frameworks.stdlib.Stdlib private import Type +private import TypeAbstraction private import TypeInference /** An AST node that may mention a type. */ @@ -563,7 +564,14 @@ class DynTypeBoundListMention extends TypeMention instanceof TypeBoundList { private Trait trait; DynTypeBoundListMention() { - exists(DynTraitTypeRepr dyn | this = dyn.getTypeBoundList() and trait = dyn.getTrait()) + exists(DynTraitTypeRepr dyn | + // We only need this type mention when the `dyn Trait` is a type + // abstraction, that is, when it's "canonical" and used in + // `conditionSatisfiesConstraint`. + dyn instanceof DynTypeAbstraction and + this = dyn.getTypeBoundList() and + trait = dyn.getTrait() + ) } override Type resolveTypeAt(TypePath path) { From 6b3d863f700fde77f777cc68e21b0626a5f3f8ce Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 11:11:50 +0100 Subject: [PATCH 56/63] Rust: Remove trait parameter from `canonicalDynTraitTypeAbstraction` --- .../rust/internal/typeinference/TypeAbstraction.qll | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll index 1f9dd0b44b076..d5163be1b6e06 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -33,8 +33,10 @@ private int idOfDynTraitTypeRepr(DynTraitTypeRepr node) { } /** Holds if `dt` is the (arbitrarily chosen) canonical dyn trait type abstraction for `trait`. */ -private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt, Trait trait) { - dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) +private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt) { + exists(Trait trait | + dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) + ) } final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { @@ -42,7 +44,7 @@ final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { // We pick a "canonical" `dyn Trait` in order to avoid including multiple // entries in `conditionSatisfiesConstraint` with the exact same effect when // `dyn Trait` occurs multiple times for the same trait. - canonicalDynTraitTypeAbstraction(this, this.getTrait()) + canonicalDynTraitTypeAbstraction(this) } override TypeParameter getATypeParameter() { From d356f3880135c3c89356e4d1ced89946494548af Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 2 Jan 2026 06:27:03 +0000 Subject: [PATCH 57/63] Ignore the content of the subtypes column for MaD models and default it to true --- shared/mad/codeql/mad/static/ModelsAsData.qll | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/shared/mad/codeql/mad/static/ModelsAsData.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll index 84daaa9b6c867..7d24b04745d1d 100644 --- a/shared/mad/codeql/mad/static/ModelsAsData.qll +++ b/shared/mad/codeql/mad/static/ModelsAsData.qll @@ -194,15 +194,16 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string output, string kind, string provenance, string model ) { + subtypes = true and exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | exists(QlBuiltins::ExtensionId madId | - Extensions::sourceModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, - kind, provenance, madId) and + Extensions::sourceModel(namespaceOrGroup, type, _, 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) + Input::additionalSourceModel(namespaceOrGroup, type, _, name, signature, ext, output, kind, + provenance, model) ) } @@ -213,15 +214,16 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string kind, string provenance, string model ) { + subtypes = true and exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | exists(QlBuiltins::ExtensionId madId | - Extensions::sinkModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, kind, + Extensions::sinkModel(namespaceOrGroup, type, _, 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) + Input::additionalSinkModel(namespaceOrGroup, type, _, name, signature, ext, input, kind, + provenance, model) ) } @@ -230,9 +232,10 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string output, string kind, string provenance, string model ) { + subtypes = true and exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | namespace = getNamespace(namespaceOrGroup) and - Extensions::barrierModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, kind, + Extensions::barrierModel(namespaceOrGroup, type, _, name, signature, ext, output, kind, provenance, madId) and model = "MaD:" + madId.toString() ) @@ -243,9 +246,10 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string acceptingvalue, string kind, string provenance, string model ) { + subtypes = true and exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | namespace = getNamespace(namespaceOrGroup) and - Extensions::barrierGuardModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + Extensions::barrierGuardModel(namespaceOrGroup, type, _, name, signature, ext, input, acceptingvalue, kind, provenance, madId) and model = "MaD:" + madId.toString() ) @@ -258,15 +262,16 @@ module ModelsAsData { string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance, string model ) { + subtypes = true and exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | exists(QlBuiltins::ExtensionId madId | - Extensions::summaryModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, - output, kind, provenance, madId) and + Extensions::summaryModel(namespaceOrGroup, type, _, 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) + Input::additionalSummaryModel(namespaceOrGroup, type, _, name, signature, ext, input, output, + kind, provenance, model) ) } From f946b36e661d89481beb711d04b67ba49ae914c0 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 Jan 2026 10:10:20 +0000 Subject: [PATCH 58/63] Cpp: do not require subtypes = false for any models --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 7232326f1b3d6..474270e5a6585 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -742,7 +742,7 @@ private Function getFunction(string namespace, string type, boolean subtypes, st elementSpec(namespace, type, subtypes, name, _, _) and ( funcHasQualifiedName(result, namespace, name) and - subtypes = false and + subtypes = [true, false] and type = "" or exists(Class namedClass, Class classWithMethod | @@ -990,7 +990,7 @@ private Element interpretElement0( elementSpec(namespace, type, subtypes, name, signature, _) and signature = "" and type = "" and - subtypes = false and + subtypes = [true, false] and result = any(GlobalOrNamespaceVariable v | v.hasQualifiedName(namespace, name)) } From 7951e61a7e5004ba272c65fbc34aa1896988adaf Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 2 Jan 2026 22:53:27 +0000 Subject: [PATCH 59/63] Accept go test result changes --- .../mad_I1_subtypes_false.expected | 29 ++++++++++++++++++- .../mad_I2_subtypes_false.expected | 12 +++++++- .../mad_S1_subtypes_false.expected | 16 +++++++++- .../dataflow/ExternalTaintFlow/srcs.expected | 2 ++ .../dataflow/ExternalValueFlow/srcs.expected | 2 ++ 5 files changed, 58 insertions(+), 3 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected index 55e9aed2e93c8..c0de881cdffb3 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected @@ -1,2 +1,29 @@ -testFailures invalidModelRow +testFailures +| test_methods.go:16:9:16:9 | y | Unexpected result: I1[f] | +| test_methods.go:22:9:22:9 | y | Unexpected result: I1[f] | +| test_methods.go:28:9:28:9 | y | Unexpected result: I1[f] | +| test_methods.go:34:9:34:9 | y | Unexpected result: I1[f] | +| test_methods.go:40:9:40:9 | y | Unexpected result: I1[f] | +| test_methods.go:46:9:46:9 | y | Unexpected result: I1[f] | +| test_methods.go:52:9:52:9 | y | Unexpected result: I1[f] | +| test_methods.go:58:9:58:9 | y | Unexpected result: I1[f] | +| test_methods.go:64:9:64:9 | y | Unexpected result: I1[f] | +| test_methods.go:70:9:70:9 | y | Unexpected result: I1[f] | +| test_methods.go:76:9:76:9 | y | Unexpected result: I1[f] | +| test_methods.go:82:9:82:9 | y | Unexpected result: I1[f] | +| test_methods.go:88:9:88:9 | y | Unexpected result: I1[f] | +| test_methods.go:94:9:94:9 | y | Unexpected result: I1[f] | +| test_methods.go:100:9:100:9 | y | Unexpected result: I1[f] | +| test_methods.go:106:9:106:9 | y | Unexpected result: I1[f] | +| test_methods.go:112:9:112:9 | y | Unexpected result: I1[f] | +| test_methods.go:118:9:118:9 | y | Unexpected result: I1[f] | +| test_methods.go:124:9:124:9 | y | Unexpected result: I1[f] | +| test_methods.go:130:9:130:9 | y | Unexpected result: I1[f] | +| test_methods.go:136:9:136:9 | y | Unexpected result: I1[f] | +| test_methods.go:142:9:142:9 | y | Unexpected result: I1[f] | +| test_methods.go:148:9:148:9 | y | Unexpected result: I1[f] | +| test_methods.go:154:9:154:9 | y | Unexpected result: I1[f] | +| test_methods.go:160:9:160:9 | y | Unexpected result: I1[f] | +| test_methods.go:166:9:166:9 | y | Unexpected result: I1[f] | +| test_methods.go:172:9:172:9 | y | Unexpected result: I1[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected index 55e9aed2e93c8..8f64cc3f03f31 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected @@ -1,2 +1,12 @@ -testFailures invalidModelRow +testFailures +| test_methods.go:34:9:34:9 | y | Unexpected result: I2[f] | +| test_methods.go:40:9:40:9 | y | Unexpected result: I2[f] | +| test_methods.go:52:9:52:9 | y | Unexpected result: I2[f] | +| test_methods.go:64:9:64:9 | y | Unexpected result: I2[f] | +| test_methods.go:76:9:76:9 | y | Unexpected result: I2[f] | +| test_methods.go:88:9:88:9 | y | Unexpected result: I2[f] | +| test_methods.go:100:9:100:9 | y | Unexpected result: I2[f] | +| test_methods.go:112:9:112:9 | y | Unexpected result: I2[f] | +| test_methods.go:124:9:124:9 | y | Unexpected result: I2[f] | +| test_methods.go:136:9:136:9 | y | Unexpected result: I2[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected index 55e9aed2e93c8..af92186fcd032 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected @@ -1,2 +1,16 @@ -testFailures invalidModelRow +testFailures +| test_fields.go:39:16:39:16 | a | Unexpected result: S1[f] | +| test_fields.go:49:16:49:16 | a | Unexpected result: S1[f] | +| test_fields.go:64:16:64:16 | a | Unexpected result: S1[f] | +| test_fields.go:69:16:69:16 | a | Unexpected result: S1[f] | +| test_fields.go:74:16:74:16 | a | Unexpected result: S1[f] | +| test_fields.go:79:16:79:16 | a | Unexpected result: S1[f] | +| test_fields.go:84:16:84:16 | a | Unexpected result: S1[f] | +| test_methods.go:94:9:94:9 | y | Unexpected result: S1[f] | +| test_methods.go:106:9:106:9 | y | Unexpected result: S1[f] | +| test_methods.go:148:9:148:9 | y | Unexpected result: S1[f] | +| test_methods.go:154:9:154:9 | y | Unexpected result: S1[f] | +| test_methods.go:160:9:160:9 | y | Unexpected result: S1[f] | +| test_methods.go:166:9:166:9 | y | Unexpected result: S1[f] | +| test_methods.go:172:9:172:9 | y | Unexpected result: S1[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected index f99ee92a49286..627f5d63b03f1 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected @@ -3,9 +3,11 @@ invalidModelRow | test.go:39:8:39:15 | call to Src1 | qltest | | test.go:40:8:40:15 | call to Src2 | qltest | | test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes | +| test.go:41:8:41:16 | call to Src2 | qltest | | test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes | | test.go:42:2:42:21 | ... = ...[0] | qltest | | test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes | +| test.go:43:2:43:22 | ... = ...[0] | qltest | | test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes | | test.go:44:11:44:13 | arg [postupdate] | qltest-arg | | test.go:59:9:59:16 | call to Src1 | qltest | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected index 009238baa4d8e..ad67c1440a383 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected @@ -3,9 +3,11 @@ invalidModelRow | test.go:39:8:39:15 | call to Src1 | qltest | | test.go:40:8:40:15 | call to Src2 | qltest | | test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes | +| test.go:41:8:41:16 | call to Src2 | qltest | | test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes | | test.go:42:2:42:21 | ... = ...[0] | qltest | | test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes | +| test.go:43:2:43:22 | ... = ...[0] | qltest | | test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes | | test.go:44:11:44:13 | arg [postupdate] | qltest-arg | | test.go:59:9:59:16 | call to Src1 | qltest | From 2c784a7e86952ade479074b99a02ee038a32aff5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 2 Jan 2026 22:53:42 +0000 Subject: [PATCH 60/63] Accept java test result changes --- .../library-tests/dataflow/external-models/srcs.expected | 1 + .../CWE-094/GroovyInjection/GroovyInjectionTest.expected | 9 +++++++++ .../CWE-094/MvelInjection/MvelInjectionTest.expected | 2 ++ 3 files changed, 12 insertions(+) diff --git a/java/ql/test/library-tests/dataflow/external-models/srcs.expected b/java/ql/test/library-tests/dataflow/external-models/srcs.expected index 637deb94fba78..b358414460a57 100644 --- a/java/ql/test/library-tests/dataflow/external-models/srcs.expected +++ b/java/ql/test/library-tests/dataflow/external-models/srcs.expected @@ -7,6 +7,7 @@ invalidModelRow | A.java:7:9:7:16 | src1(...) | qltest-alt | | A.java:10:9:10:18 | src2(...) | qltest | | A.java:10:9:10:18 | src2(...) | qltest-w-subtypes | +| A.java:11:9:11:18 | src3(...) | qltest | | A.java:11:9:11:18 | src3(...) | qltest-w-subtypes | | A.java:13:5:13:13 | this <.method> [post update] | qltest-argany | | A.java:13:12:13:12 | x [post update] | qltest-argany | diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected index 3a00c80a70430..7f7cc32905e7d 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected @@ -14,6 +14,7 @@ | GroovyCompilationUnitTest.java:72:13:72:14 | cu | GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:72:13:72:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) | user-provided value | | GroovyCompilationUnitTest.java:78:13:78:14 | cu | GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:78:13:78:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) | user-provided value | | GroovyCompilationUnitTest.java:89:13:89:14 | cu | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:89:13:89:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:94:13:94:14 | cu | GroovyCompilationUnitTest.java:93:34:93:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:94:13:94:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:93:34:93:63 | getParameter(...) | user-provided value | | GroovyEvalTest.java:15:21:15:26 | script | GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | GroovyEvalTest.java:15:21:15:26 | script | Groovy script depends on a $@. | GroovyEvalTest.java:14:29:14:58 | getParameter(...) | user-provided value | | GroovyEvalTest.java:20:39:20:44 | script | GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | GroovyEvalTest.java:20:39:20:44 | script | Groovy script depends on a $@. | GroovyEvalTest.java:19:29:19:58 | getParameter(...) | user-provided value | | GroovyEvalTest.java:25:31:25:36 | script | GroovyEvalTest.java:24:29:24:58 | getParameter(...) : String | GroovyEvalTest.java:25:31:25:36 | script | Groovy script depends on a $@. | GroovyEvalTest.java:24:29:24:58 | getParameter(...) | user-provided value | @@ -93,6 +94,8 @@ edges | GroovyCompilationUnitTest.java:77:26:77:27 | su : SourceUnit | GroovyCompilationUnitTest.java:77:13:77:14 | cu [post update] : CompilationUnit | provenance | Config | | GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | GroovyCompilationUnitTest.java:89:13:89:14 | cu | provenance | Sink:MaD:32 | | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:93:13:93:14 | cu [post update] : JavaStubCompilationUnit | GroovyCompilationUnitTest.java:94:13:94:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:93:34:93:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:93:13:93:14 | cu [post update] : JavaStubCompilationUnit | provenance | Src:MaD:33 Config | | GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | GroovyEvalTest.java:15:21:15:26 | script | provenance | Src:MaD:33 Sink:MaD:27 | | GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | GroovyEvalTest.java:20:39:20:44 | script | provenance | Src:MaD:33 Sink:MaD:28 | | GroovyEvalTest.java:24:29:24:58 | getParameter(...) : String | GroovyEvalTest.java:25:31:25:36 | script | provenance | Src:MaD:33 Sink:MaD:29 | @@ -246,6 +249,9 @@ nodes | GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | semmle.label | cu [post update] : JavaAwareCompilationUnit | | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | | GroovyCompilationUnitTest.java:89:13:89:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:93:13:93:14 | cu [post update] : JavaStubCompilationUnit | semmle.label | cu [post update] : JavaStubCompilationUnit | +| GroovyCompilationUnitTest.java:93:34:93:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:94:13:94:14 | cu | semmle.label | cu | | GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | | GroovyEvalTest.java:15:21:15:26 | script | semmle.label | script | | GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | @@ -325,3 +331,6 @@ nodes | TemplateEngineTest.java:24:35:24:49 | (...)... | semmle.label | (...)... | | TemplateEngineTest.java:25:35:25:46 | (...)... | semmle.label | (...)... | subpaths +testFailures +| GroovyCompilationUnitTest.java:93:34:93:63 | getParameter(...) : String | Unexpected result: Source | +| GroovyCompilationUnitTest.java:94:13:94:14 | cu | Unexpected result: Alert | diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected index eb2034ab06de8..f4fd695172b92 100644 --- a/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected @@ -25,6 +25,7 @@ edges | MvelInjectionTest.java:41:37:41:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:41:37:41:54 | compile(...) : CompiledExpression | provenance | Config | | MvelInjectionTest.java:41:37:41:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:42:5:42:14 | expression | provenance | Sink:MaD:4 | | MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | MvelInjectionTest.java:48:5:48:14 | expression | provenance | Sink:MaD:3 | +| MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | MvelInjectionTest.java:48:5:48:14 | expression | provenance | Sink:MaD:5 | | MvelInjectionTest.java:47:35:47:46 | read(...) : String | MvelInjectionTest.java:47:35:47:60 | toCharArray(...) : char[] | provenance | MaD:16 | | MvelInjectionTest.java:47:35:47:60 | toCharArray(...) : char[] | MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | provenance | Config | | MvelInjectionTest.java:52:20:52:31 | read(...) : String | MvelInjectionTest.java:55:52:55:56 | input : String | provenance | | @@ -37,6 +38,7 @@ edges | MvelInjectionTest.java:64:58:64:69 | read(...) : String | MvelInjectionTest.java:64:35:64:70 | new ExpressionCompiler(...) : ExpressionCompiler | provenance | Config | | MvelInjectionTest.java:65:37:65:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:65:37:65:54 | compile(...) : CompiledExpression | provenance | Config | | MvelInjectionTest.java:65:37:65:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:66:64:66:72 | statement : CompiledExpression | provenance | | +| MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | MvelInjectionTest.java:67:5:67:10 | script | provenance | Sink:MaD:1 | | MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | MvelInjectionTest.java:67:5:67:10 | script | provenance | Sink:MaD:6 | | MvelInjectionTest.java:66:64:66:72 | statement : CompiledExpression | MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | provenance | Config | | MvelInjectionTest.java:75:62:75:73 | read(...) : String | MvelInjectionTest.java:75:29:75:74 | compileTemplate(...) | provenance | Config Sink:MaD:9 | From 18ab9863d6ef316fa953f573e6777b8e89cad5a4 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 Jan 2026 11:48:42 +0000 Subject: [PATCH 61/63] Accept cpp test result changes --- .../dataflow/models-as-data/interpretElement.expected | 1 + cpp/ql/test/library-tests/dataflow/models-as-data/taint.expected | 1 + .../dataflow/taint-tests/test_mad-signatures.expected | 1 + 3 files changed, 3 insertions(+) diff --git a/cpp/ql/test/library-tests/dataflow/models-as-data/interpretElement.expected b/cpp/ql/test/library-tests/dataflow/models-as-data/interpretElement.expected index e69de29bb2d1d..72e39d88868a8 100644 --- a/cpp/ql/test/library-tests/dataflow/models-as-data/interpretElement.expected +++ b/cpp/ql/test/library-tests/dataflow/models-as-data/interpretElement.expected @@ -0,0 +1 @@ +| tests.cpp:296:6:296:21 | subtypeNonSource | Unexpected result: interpretElement | diff --git a/cpp/ql/test/library-tests/dataflow/models-as-data/taint.expected b/cpp/ql/test/library-tests/dataflow/models-as-data/taint.expected index e69de29bb2d1d..6a4419f21ee26 100644 --- a/cpp/ql/test/library-tests/dataflow/models-as-data/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/models-as-data/taint.expected @@ -0,0 +1 @@ +| tests.cpp:340:11:340:26 | call to subtypeNonSource | Unexpected result: ir | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected index e0002aa9c03fb..d1e3a14e3f716 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected @@ -135,6 +135,7 @@ signatureMatches | stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 0 | | stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 1 | | stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 1 | +| taint.cpp:735:7:735:12 | malloc | | (size_t) | | malloc | 0 | | taint.cpp:847:5:847:11 | toupper | | (int) | | toupper | 0 | | taint.cpp:848:5:848:11 | tolower | | (int) | | tolower | 0 | getSignatureParameterName From b7d1d4c337a12c7c101252e0e92b5cb396f7538e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 Jan 2026 11:48:54 +0000 Subject: [PATCH 62/63] Accept c# test result changes --- .../dataflow/library/FlowSummaries.expected | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 1a067f2644bdc..6ee082771ba8a 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -3632,6 +3632,7 @@ summary | Microsoft.SqlServer.Server;SqlDataRecord;get_Item;(System.Int32);Argument[this];ReturnValue;taint;manual | | Microsoft.SqlServer.Server;SqlDataRecord;get_Item;(System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.VisualBasic.FileIO;MalformedLineException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| Microsoft.VisualBasic.FileIO;MalformedLineException;ToString;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.VisualBasic;Collection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | Microsoft.VisualBasic;Collection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | Microsoft.VisualBasic;Collection;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -3773,6 +3774,7 @@ summary | Newtonsoft.Json.Linq;JToken;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JValue;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | Newtonsoft.Json.Linq;JValue;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | +| Newtonsoft.Json.Linq;JValue;ToString;();Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JValue;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | Newtonsoft.Json.Linq;JValue;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | Newtonsoft.Json.Linq;JValue;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -5352,6 +5354,7 @@ summary | ServiceStack.Script;Lisp+Interpreter;Def;(System.String,System.Int32,ServiceStack.Script.Lisp+BuiltInFuncBody);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | ServiceStack.Script;Lisp+Interpreter;Def;(System.String,System.Int32,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | ServiceStack.Script;Lisp+Sym;New;(System.String,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| ServiceStack.Script;LispEvalException;ToString;();Argument[this];ReturnValue;taint;df-generated | | ServiceStack.Script;PageFormat;set_EncodeValue;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack.Script;PageFormat;set_OnExpressionException;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack.Script;PageFormat;set_OnViewException;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -5470,6 +5473,7 @@ summary | ServiceStack.Text;RecyclableMemoryStream;GetBuffer;();Argument[this];ReturnValue;taint;df-generated | | ServiceStack.Text;RecyclableMemoryStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | | ServiceStack.Text;RecyclableMemoryStream;Read;(System.Span);Argument[this];Argument[0];taint;manual | +| ServiceStack.Text;RecyclableMemoryStream;ToArray;();Argument[this];ReturnValue;taint;manual | | ServiceStack.Text;RecyclableMemoryStream;TryGetBuffer;(System.ArraySegment);Argument[this];Argument[0].Element;taint;df-generated | | ServiceStack.Text;RecyclableMemoryStream;Write;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;manual | | ServiceStack.Text;RecyclableMemoryStream;Write;(System.ReadOnlySpan);Argument[0].Element;Argument[this];taint;manual | @@ -5943,6 +5947,7 @@ summary | ServiceStack;IEventSubscription;set_OnUnsubscribe;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack;IEventSubscription;set_OnUnsubscribeAsync;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack;IServerEvents;QueueAsyncTask;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| ServiceStack;InfoException;ToString;();Argument[this];ReturnValue;taint;df-generated | | ServiceStack;Inspect+Config;set_DumpTableFilter;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack;Inspect+Config;set_VarsFilter;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack;InstanceMapper;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -6181,6 +6186,7 @@ summary | ServiceStack;UploadLocation;set_ValidateUpload;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack;UrlExtensions;ToUrl;(System.Object,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | ServiceStack;UrlResolverDelegate;BeginInvoke;(ServiceStack.IServiceClientMeta,System.String,System.String,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| ServiceStack;WebServiceException;ToString;();Argument[this];ReturnValue;taint;df-generated | | ServiceStack;WebServiceException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | ServiceStack;WriteComplexTypeDelegate;BeginInvoke;(System.IO.TextWriter,System.String,System.Object,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | ServiceStack;X;Apply;(T,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -9610,6 +9616,7 @@ summary | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];value;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];value;dfc-generated | | System.ComponentModel;Win32Exception;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.ComponentModel;Win32Exception;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration.Internal;DelegatingConfigHost;CreateConfigurationContext;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration.Internal;DelegatingConfigHost;GetStreamName;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration.Internal;DelegatingConfigHost;GetStreamNameForConfigSource;(System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | @@ -9759,6 +9766,7 @@ summary | System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlWhitespace._filename];value;dfc-generated | | System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;dfc-generated | +| System.Configuration;ConfigXmlDocument;Load;(System.String);Argument[0];Argument[this];taint;manual | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];value;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._reader];taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this];taint;dfc-generated | @@ -10459,7 +10467,10 @@ summary | System.Data.Entity.Core.EntityClient;EntityConnection;get_ServerVersion;();Argument[this];ReturnValue;taint;df-generated | | System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;TryGetValue;(System.String,System.Object);Argument[this];Argument[1];taint;df-generated | +| System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;get_Item;(System.String);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | +| System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;set_Item;(System.String,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | +| System.Data.Entity.Core.EntityClient;EntityConnectionStringBuilder;set_Item;(System.String,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Data.Entity.Core.EntityClient;EntityDataReader;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data.Entity.Core.EntityClient;EntityDataReader;GetProviderSpecificValue;(System.Int32);Argument[this];ReturnValue;taint;dfc-generated | | System.Data.Entity.Core.EntityClient;EntityDataReader;GetProviderSpecificValues;(System.Object[]);Argument[this];Argument[0].Element;taint;dfc-generated | @@ -10951,8 +10962,11 @@ summary | System.Data.SqlClient;SqlConnection;remove_InfoMessage;(System.Data.SqlClient.SqlInfoMessageEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.SqlClient;SqlConnectionStringBuilder;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Data.SqlClient;SqlConnectionStringBuilder;TryGetValue;(System.String,System.Object);Argument[this];Argument[1];taint;df-generated | +| System.Data.SqlClient;SqlConnectionStringBuilder;get_Item;(System.String);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Data.SqlClient;SqlConnectionStringBuilder;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | | System.Data.SqlClient;SqlConnectionStringBuilder;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | +| System.Data.SqlClient;SqlConnectionStringBuilder;set_Item;(System.String,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | +| System.Data.SqlClient;SqlConnectionStringBuilder;set_Item;(System.String,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Data.SqlClient;SqlDataAdapter;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.SqlClient;SqlDataAdapter;add_RowUpdated;(System.Data.SqlClient.SqlRowUpdatedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.SqlClient;SqlDataAdapter;add_RowUpdating;(System.Data.SqlClient.SqlRowUpdatingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -10976,6 +10990,7 @@ summary | System.Data.SqlClient;SqlErrorCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data.SqlClient;SqlErrorCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.SqlClient;SqlException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.Data.SqlClient;SqlException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Data.SqlClient;SqlInfoMessageEventHandler;BeginInvoke;(System.Object,System.Data.SqlClient.SqlInfoMessageEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data.SqlClient;SqlParameter;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.SqlClient;SqlParameterCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | @@ -11081,6 +11096,7 @@ summary | System.Data;DBConcurrencyException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Data;DataColumn;DataColumn;(System.String,System.Type,System.String,System.Data.MappingType);Argument[0];Argument[this];taint;df-generated | | System.Data;DataColumn;DataColumn;(System.String,System.Type,System.String,System.Data.MappingType);Argument[2];Argument[this];taint;df-generated | +| System.Data;DataColumn;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumn;get_Table;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnChangeEventArgs;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);Argument[0];Argument[this].Property[System.Data.DataColumnChangeEventArgs.Row];value;dfc-generated | | System.Data;DataColumnChangeEventArgs;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);Argument[1];Argument[this].SyntheticField[System.Data.DataColumnChangeEventArgs._column];value;dfc-generated | @@ -11242,6 +11258,7 @@ summary | System.Data;DataTable;Select;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;Select;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;Select;(System.String,System.String,System.Data.DataViewRowState);Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTable;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;WriteXml;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Data;DataTable;add_ColumnChanged;(System.Data.DataColumnChangeEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;add_ColumnChanging;(System.Data.DataColumnChangeEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11826,6 +11843,7 @@ summary | System.Diagnostics;Process;Start;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;Start;(System.String,System.String);Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;Start;(System.String,System.String);Argument[1];ReturnValue;taint;df-generated | +| System.Diagnostics;Process;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;add_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;add_Exited;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;add_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11841,7 +11859,10 @@ summary | System.Diagnostics;Process;remove_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;remove_Exited;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;remove_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ProcessModule;ToString;();Argument[this].Property[System.Diagnostics.ProcessModule.ModuleName];ReturnValue;taint;df-generated | | System.Diagnostics;ProcessModule;ToString;();Argument[this].Property[System.Diagnostics.ProcessModule.ModuleName];ReturnValue;taint;dfc-generated | +| System.Diagnostics;ProcessModule;ToString;();Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;ProcessModule;ToString;();Argument[this];ReturnValue;taint;dfc-generated | | System.Diagnostics;ProcessModule;get_FileName;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;ProcessModule;get_ModuleName;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;ProcessModuleCollection;CopyTo;(System.Diagnostics.ProcessModule[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | @@ -11970,6 +11991,7 @@ summary | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PageSettings;Clone;();Argument[this];ReturnValue;value;dfc-generated | +| System.Drawing.Printing;PrintDocument;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Drawing.Printing;PrintDocument;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_PrintPage;(System.Drawing.Printing.PrintPageEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -12716,9 +12738,11 @@ summary | System.IO;FileInfo;get_DirectoryName;();Argument[this].Field[System.IO.FileSystemInfo.FullPath];ReturnValue;value;dfc-generated | | System.IO;FileInfo;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.IO;FileLoadException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.IO;FileLoadException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.IO;FileLoadException;get_Message;();Argument[this].Property[System.IO.FileLoadException.FileName];Argument[this].SyntheticField[System.Exception._message];taint;dfc-generated | | System.IO;FileLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.IO;FileNotFoundException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.IO;FileNotFoundException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.IO;FileNotFoundException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.IO;FileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;FileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | @@ -15639,6 +15663,8 @@ summary | System.Net.Http.Headers;NameValueHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.NameValueHeaderValue._value];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;NameValueHeaderValue;get_Name;();Argument[this].SyntheticField[System.Net.Http.Headers.NameValueHeaderValue._name];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;NameValueWithParametersHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | +| System.Net.Http.Headers;NameValueWithParametersHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.NameValueHeaderValue._name];ReturnValue;value;dfc-generated | +| System.Net.Http.Headers;NameValueWithParametersHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.NameValueHeaderValue._value];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | @@ -16913,6 +16939,7 @@ summary | System.Reflection.Emit;GenericTypeParameterBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Emit;GenericTypeParameterBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | | System.Reflection.Emit;GenericTypeParameterBuilder;SetInterfaceConstraintsCore;(System.Type[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Reflection.Emit;GenericTypeParameterBuilder;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;GenericTypeParameterBuilder;get_Assembly;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;GenericTypeParameterBuilder;get_AssemblyQualifiedName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;GenericTypeParameterBuilder;get_BaseType;();Argument[this];ReturnValue;taint;df-generated | @@ -17040,11 +17067,17 @@ summary | System.Reflection.Emit;ParameterBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Emit;ParameterBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | | System.Reflection.Emit;ParameterBuilder;get_Name;();Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;DefineDynamicModuleCore;(System.String);Argument[0];ReturnValue.SyntheticField[System.Reflection.Emit.ModuleBuilderImpl._name];value;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;DefineDynamicModuleCore;(System.String);Argument[0];ReturnValue.SyntheticField[System.Reflection.Emit.ModuleBuilderImpl._name];value;dfc-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;DefineDynamicModuleCore;(System.String);Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;DefineDynamicModuleCore;(System.String);Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;GenerateMetadata;(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;GenerateMetadata;(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataBuilder);Argument[this];Argument[2];taint;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;GenerateMetadata;(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataBuilder);Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;GetDynamicModuleCore;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;PersistedAssemblyBuilder;(System.Reflection.AssemblyName,System.Reflection.Assembly,System.Collections.Generic.IEnumerable);Argument[1];Argument[this];taint;df-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | +| System.Reflection.Emit;PersistedAssemblyBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;PersistedAssemblyBuilder;get_ManifestModule;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;PropertyBuilder;AddOtherMethodCore;(System.Reflection.Emit.MethodBuilder);Argument[0];Argument[this];taint;df-generated | @@ -17162,6 +17195,7 @@ summary | System.Reflection.Emit;TypeBuilder;MakePointerType;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Emit;TypeBuilder;SetCustomAttributeCore;(System.Reflection.ConstructorInfo,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | +| System.Reflection.Emit;TypeBuilder;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;get_Assembly;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;get_AssemblyQualifiedName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;get_BaseType;();Argument[this];ReturnValue;taint;df-generated | @@ -17937,6 +17971,7 @@ summary | System.Reflection;ReflectionContext;MapAssembly;(System.Reflection.Assembly);Argument[0];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionContext;MapType;(System.Reflection.TypeInfo);Argument[0];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.Reflection;ReflectionTypeLoadException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetMethodInfo;(System.Delegate);Argument[0].Property[System.Delegate.Method];ReturnValue;value;dfc-generated | @@ -18249,6 +18284,7 @@ summary | System.Runtime.InteropServices;ArrayWithOffset;GetArray;();Argument[this].SyntheticField[System.Runtime.InteropServices.ArrayWithOffset.m_array];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;CLong;CLong;(System.IntPtr);Argument[0];Argument[this].SyntheticField[System.Runtime.InteropServices.CLong._value];value;dfc-generated | | System.Runtime.InteropServices;CLong;get_Value;();Argument[this].SyntheticField[System.Runtime.InteropServices.CLong._value];ReturnValue;value;dfc-generated | +| System.Runtime.InteropServices;COMException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;CULong;CULong;(System.UIntPtr);Argument[0];Argument[this].SyntheticField[System.Runtime.InteropServices.CULong._value];value;dfc-generated | | System.Runtime.InteropServices;CULong;get_Value;();Argument[this].SyntheticField[System.Runtime.InteropServices.CULong._value];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;CollectionsMarshal;AsBytes;(System.Collections.BitArray);Argument[0].Element;ReturnValue;taint;df-generated | @@ -18264,6 +18300,7 @@ summary | System.Runtime.InteropServices;CriticalHandle;CriticalHandle;(System.IntPtr);Argument[0];Argument[this].Field[System.Runtime.InteropServices.CriticalHandle.handle];value;dfc-generated | | System.Runtime.InteropServices;CriticalHandle;SetHandle;(System.IntPtr);Argument[0];Argument[this].Field[System.Runtime.InteropServices.CriticalHandle.handle];value;dfc-generated | | System.Runtime.InteropServices;DllImportResolver;BeginInvoke;(System.String,System.Reflection.Assembly,System.Nullable,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices;ExternalException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;GCHandle;FromIntPtr;(System.IntPtr);Argument[0];ReturnValue.SyntheticField[System.Runtime.InteropServices.GCHandle._handle];value;dfc-generated | | System.Runtime.InteropServices;GCHandle;ToIntPtr;(System.Runtime.InteropServices.GCHandle);Argument[0].SyntheticField[System.Runtime.InteropServices.GCHandle._handle];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;GCHandle;FromIntPtr;(System.IntPtr);Argument[0];ReturnValue.SyntheticField[System.Runtime.InteropServices.GCHandle`1._handle];value;dfc-generated | @@ -19260,6 +19297,7 @@ summary | System.Security;CodeAccessPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Security;CodeAccessPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | | System.Security;HostProtectionException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.Security;HostProtectionException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Security;IPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Security;IPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Security;IPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -19283,6 +19321,7 @@ summary | System.Security;SecurityElement;ToString;();Argument[this].SyntheticField[System.Security.SecurityElement._tag];ReturnValue;taint;dfc-generated | | System.Security;SecurityElement;ToString;();Argument[this].SyntheticField[System.Security.SecurityElement._text];ReturnValue;taint;dfc-generated | | System.Security;SecurityException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System.Security;SecurityException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.ServiceProcess;ServiceControllerPermissionEntryCollection;OnInsert;(System.Int32,System.Object);Argument[1];Argument[this];taint;df-generated | | System.ServiceProcess;ServiceControllerPermissionEntryCollection;OnSet;(System.Int32,System.Object,System.Object);Argument[2];Argument[this];taint;df-generated | | System.Text.Encodings.Web;TextEncoder;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);Argument[1].Element;Argument[0];taint;df-generated | @@ -22116,6 +22155,10 @@ summary | System.Xml;XmlDataDocument;GetElementFromRow;(System.Data.DataRow);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetElementsByTagName;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetRowFromElement;(System.Xml.XmlElement);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlDataDocument;Load;(System.IO.Stream);Argument[0];Argument[this];taint;manual | +| System.Xml;XmlDataDocument;Load;(System.IO.TextReader);Argument[0];Argument[this];taint;manual | +| System.Xml;XmlDataDocument;Load;(System.String);Argument[0];Argument[this];taint;manual | +| System.Xml;XmlDataDocument;Load;(System.Xml.XmlReader);Argument[0];Argument[this];taint;manual | | System.Xml;XmlDataDocument;XmlDataDocument;(System.Data.DataSet);Argument[0];Argument[this].SyntheticField[System.Xml.XmlDataDocument._dataSet];value;dfc-generated | | System.Xml;XmlDataDocument;get_DataSet;();Argument[this].SyntheticField[System.Xml.XmlDataDocument._dataSet];ReturnValue;value;dfc-generated | | System.Xml;XmlDeclaration;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | @@ -22982,6 +23025,7 @@ summary | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;dfc-generated | | System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;hq-generated | +| System;AggregateException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;AggregateException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System;AggregateException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;AppDomain;ApplyPolicy;(System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -23128,6 +23172,7 @@ summary | System;BadImageFormatException;BadImageFormatException;(System.String,System.String);Argument[1];Argument[this].SyntheticField[System.BadImageFormatException._fileName];value;dfc-generated | | System;BadImageFormatException;BadImageFormatException;(System.String,System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.BadImageFormatException._fileName];value;dfc-generated | | System;BadImageFormatException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | +| System;BadImageFormatException;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;BadImageFormatException;get_FileName;();Argument[this].SyntheticField[System.BadImageFormatException._fileName];ReturnValue;value;dfc-generated | | System;BadImageFormatException;get_FusionLog;();Argument[this];ReturnValue;taint;df-generated | | System;BadImageFormatException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | From e726417be5784dde9874ee2169d83ba2a902b397 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 Jan 2026 11:57:27 +0000 Subject: [PATCH 63/63] Go: delete tests for subtypes = false --- .../mad_I1_subtypes_false.expected | 29 ------------------- .../mad_I1_subtypes_false.ext.yml | 16 ---------- .../mad_I1_subtypes_false.ql | 25 ---------------- .../mad_I2_subtypes_false.expected | 12 -------- .../mad_I2_subtypes_false.ext.yml | 16 ---------- .../mad_I2_subtypes_false.ql | 25 ---------------- .../mad_S1_subtypes_false.expected | 16 ---------- .../mad_S1_subtypes_false.ext.yml | 18 ------------ .../mad_S1_subtypes_false.ql | 25 ---------------- 9 files changed, 182 deletions(-) delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ql delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ql delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ql diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected deleted file mode 100644 index c0de881cdffb3..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.expected +++ /dev/null @@ -1,29 +0,0 @@ -invalidModelRow -testFailures -| test_methods.go:16:9:16:9 | y | Unexpected result: I1[f] | -| test_methods.go:22:9:22:9 | y | Unexpected result: I1[f] | -| test_methods.go:28:9:28:9 | y | Unexpected result: I1[f] | -| test_methods.go:34:9:34:9 | y | Unexpected result: I1[f] | -| test_methods.go:40:9:40:9 | y | Unexpected result: I1[f] | -| test_methods.go:46:9:46:9 | y | Unexpected result: I1[f] | -| test_methods.go:52:9:52:9 | y | Unexpected result: I1[f] | -| test_methods.go:58:9:58:9 | y | Unexpected result: I1[f] | -| test_methods.go:64:9:64:9 | y | Unexpected result: I1[f] | -| test_methods.go:70:9:70:9 | y | Unexpected result: I1[f] | -| test_methods.go:76:9:76:9 | y | Unexpected result: I1[f] | -| test_methods.go:82:9:82:9 | y | Unexpected result: I1[f] | -| test_methods.go:88:9:88:9 | y | Unexpected result: I1[f] | -| test_methods.go:94:9:94:9 | y | Unexpected result: I1[f] | -| test_methods.go:100:9:100:9 | y | Unexpected result: I1[f] | -| test_methods.go:106:9:106:9 | y | Unexpected result: I1[f] | -| test_methods.go:112:9:112:9 | y | Unexpected result: I1[f] | -| test_methods.go:118:9:118:9 | y | Unexpected result: I1[f] | -| test_methods.go:124:9:124:9 | y | Unexpected result: I1[f] | -| test_methods.go:130:9:130:9 | y | Unexpected result: I1[f] | -| test_methods.go:136:9:136:9 | y | Unexpected result: I1[f] | -| test_methods.go:142:9:142:9 | y | Unexpected result: I1[f] | -| test_methods.go:148:9:148:9 | y | Unexpected result: I1[f] | -| test_methods.go:154:9:154:9 | y | Unexpected result: I1[f] | -| test_methods.go:160:9:160:9 | y | Unexpected result: I1[f] | -| test_methods.go:166:9:166:9 | y | Unexpected result: I1[f] | -| test_methods.go:172:9:172:9 | y | Unexpected result: I1[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml deleted file mode 100644 index a50fb9449a357..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I1", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I1", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I1", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ql b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ql deleted file mode 100644 index c69cedce6e173..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ql +++ /dev/null @@ -1,25 +0,0 @@ -import go -import ModelValidation -import utils.test.InlineExpectationsTest -import MakeTest - -module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { sourceNode(source, "qltest") } - - predicate isSink(DataFlow::Node sink) { sinkNode(sink, "qltest") } -} - -module Flow = TaintTracking::Global; - -module FlowTest implements TestSig { - string getARelevantTag() { result = "I1[f]" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "I1[f]" and - exists(DataFlow::Node sink | Flow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected deleted file mode 100644 index 8f64cc3f03f31..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.expected +++ /dev/null @@ -1,12 +0,0 @@ -invalidModelRow -testFailures -| test_methods.go:34:9:34:9 | y | Unexpected result: I2[f] | -| test_methods.go:40:9:40:9 | y | Unexpected result: I2[f] | -| test_methods.go:52:9:52:9 | y | Unexpected result: I2[f] | -| test_methods.go:64:9:64:9 | y | Unexpected result: I2[f] | -| test_methods.go:76:9:76:9 | y | Unexpected result: I2[f] | -| test_methods.go:88:9:88:9 | y | Unexpected result: I2[f] | -| test_methods.go:100:9:100:9 | y | Unexpected result: I2[f] | -| test_methods.go:112:9:112:9 | y | Unexpected result: I2[f] | -| test_methods.go:124:9:124:9 | y | Unexpected result: I2[f] | -| test_methods.go:136:9:136:9 | y | Unexpected result: I2[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml deleted file mode 100644 index 660eb326eaafc..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I2", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I2", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I2", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ql b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ql deleted file mode 100644 index 254c75804934d..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ql +++ /dev/null @@ -1,25 +0,0 @@ -import go -import ModelValidation -import utils.test.InlineExpectationsTest -import MakeTest - -module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { sourceNode(source, "qltest") } - - predicate isSink(DataFlow::Node sink) { sinkNode(sink, "qltest") } -} - -module Flow = TaintTracking::Global; - -module FlowTest implements TestSig { - string getARelevantTag() { result = "I2[f]" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "I2[f]" and - exists(DataFlow::Node sink | Flow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected deleted file mode 100644 index af92186fcd032..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.expected +++ /dev/null @@ -1,16 +0,0 @@ -invalidModelRow -testFailures -| test_fields.go:39:16:39:16 | a | Unexpected result: S1[f] | -| test_fields.go:49:16:49:16 | a | Unexpected result: S1[f] | -| test_fields.go:64:16:64:16 | a | Unexpected result: S1[f] | -| test_fields.go:69:16:69:16 | a | Unexpected result: S1[f] | -| test_fields.go:74:16:74:16 | a | Unexpected result: S1[f] | -| test_fields.go:79:16:79:16 | a | Unexpected result: S1[f] | -| test_fields.go:84:16:84:16 | a | Unexpected result: S1[f] | -| test_methods.go:94:9:94:9 | y | Unexpected result: S1[f] | -| test_methods.go:106:9:106:9 | y | Unexpected result: S1[f] | -| test_methods.go:148:9:148:9 | y | Unexpected result: S1[f] | -| test_methods.go:154:9:154:9 | y | Unexpected result: S1[f] | -| test_methods.go:160:9:160:9 | y | Unexpected result: S1[f] | -| test_methods.go:166:9:166:9 | y | Unexpected result: S1[f] | -| test_methods.go:172:9:172:9 | y | Unexpected result: S1[f] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml deleted file mode 100644 index 804a920b32429..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "S1", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", False, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "S1", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "S1", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", False, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ql b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ql deleted file mode 100644 index 62320657df274..0000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ql +++ /dev/null @@ -1,25 +0,0 @@ -import go -import ModelValidation -import utils.test.InlineExpectationsTest -import MakeTest - -module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { sourceNode(source, "qltest") } - - predicate isSink(DataFlow::Node sink) { sinkNode(sink, "qltest") } -} - -module Flow = TaintTracking::Global; - -module FlowTest implements TestSig { - string getARelevantTag() { result = "S1[f]" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "S1[f]" and - exists(DataFlow::Node sink | Flow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -}